/* 用户端样式（方向 A「晨报头版」）：米纸 + 墨色 + 方片黄，手机优先，可滚动 */
* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --paper:#FAF6EC; --ink:#1C1A16; --sub:#7A7264; --faint:#9A917F;
  --line:#D8D0BC; --yellow:#fff300;
}
body { background:var(--paper); color:var(--ink); font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; min-height:100vh; }
button { font-family:inherit; font-size:13px; padding:6px 14px; border:1px solid var(--ink); background:none; border-radius:3px; cursor:pointer; font-weight:600; color:var(--ink); }
button.primary { background:var(--ink); color:#fff; }
button.yellow { background:var(--yellow); color:#000; font-weight:800; }
button:disabled { opacity:.45; cursor:not-allowed; }
input { font-family:inherit; font-size:14px; padding:9px 12px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink); width:100%; }
input[type="date"] { width:auto; }
.uwrap { max-width:720px; margin:0 auto; padding:22px 18px 48px; }
@media (min-width:900px){ .uwrap { max-width:880px; padding:36px 32px 64px; } }

/* 报头 */
.umast { display:flex; align-items:baseline; justify-content:space-between; border-bottom:3px double var(--ink); padding-bottom:12px; }
.umast .brand { font-family:"Songti SC","STSong",serif; font-size:20px; font-weight:900; letter-spacing:4px; }
.umast .who { font-size:12px; color:var(--sub); }
.umast .who button { border:none; font-size:12px; color:var(--sub); text-decoration:underline; padding:0 0 0 6px; font-weight:400; }
/* 底部页签（手机）/ 顶部页签（电脑） */
.unav { display:flex; border-bottom:1px solid var(--ink); margin-bottom:4px; }
.unav a { flex:1; text-align:center; padding:10px 0; font-size:14px; color:var(--sub); text-decoration:none; font-weight:600; }
.unav a.on { color:var(--ink); border-bottom:3px solid var(--yellow); font-weight:800; }

/* 初稿印章 */
.ustamp { display:inline-block; border:1.5px solid var(--ink); padding:0 6px; font-size:10px; font-weight:700; transform:rotate(-4deg); border-radius:2px; vertical-align:2px; margin-left:6px; }
/* 日期条 */
.udaterow { display:flex; align-items:center; gap:10px; margin:14px 0 4px; font-size:13px; }
.udaterow b { font-size:14px; }
.udaterow button { font-size:12px; padding:3px 10px; }

/* 头条 */
.uheadline { font-family:"Songti SC","STSong",serif; font-size:26px; font-weight:900; line-height:1.4; text-align:center; margin:24px 0 10px; }
@media (min-width:900px){ .uheadline { font-size:38px; margin:32px 0 14px; } }
.uhsub { font-family:"Songti SC","STSong",serif; font-size:14.5px; line-height:1.8; text-align:center; color:#3A362E; }
@media (min-width:900px){ .uhsub { font-size:17px; } }
.usrc { font-size:11px; color:var(--faint); margin-top:8px; }
.usrc.c { text-align:center; }

/* 小节 */
.usec { margin-top:28px; }
.usect { display:flex; align-items:baseline; gap:8px; border-bottom:1px solid var(--ink); padding-bottom:6px; margin-bottom:12px; }
.usect b { font-family:"Songti SC","STSong",serif; font-size:17px; font-weight:900; letter-spacing:2px; }
.usect span { font-size:11px; color:var(--sub); }

/* 拍板条目 */
.und { margin-bottom:16px; }
.ukind { display:inline-block; background:var(--yellow); padding:1px 7px; font-size:11px; font-weight:800; margin-bottom:5px; }
.und p { font-size:14.5px; line-height:1.75; font-weight:600; }
.uquote { font-size:12.5px; color:#5A5346; margin-top:6px; font-family:"Songti SC","STSong",serif; }
.uno { margin-top:7px; font-size:11px; padding:2px 10px; }
/* 定了的事 */
.udec { list-style:none; }
.udec li { font-size:13.5px; line-height:1.8; margin-bottom:9px; display:flex; gap:8px; }
.udec li i { font-family:"Songti SC","STSong",serif; font-style:normal; font-weight:900; color:var(--sub); flex-shrink:0; }
/* 待办 */
.unums { display:flex; gap:26px; margin:4px 0 12px; }
.unums b { font-family:"Songti SC","STSong",serif; font-size:32px; font-weight:900; }
.unums span { font-size:11px; color:var(--sub); display:block; margin-top:2px; }
.utodo { border-top:1px solid var(--line); padding:11px 0; }
.utodo p { font-size:13.5px; line-height:1.7; font-weight:600; }
.utodo .meta, .umeta { font-size:11px; color:var(--faint); margin-top:3px; }
.uops { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.uops button { font-size:11px; padding:3px 10px; }
.uops button.fill { background:var(--yellow); font-weight:800; }
/* 各场一览 */
.umtg { display:flex; gap:10px; font-size:12.5px; padding:8px 0; border-bottom:1px dotted #C9C0AA; align-items:baseline; }
.umtg b { font-family:"Songti SC","STSong",serif; width:44px; flex-shrink:0; }
.umtg span { flex:1; }
.umtg i { font-style:normal; color:var(--sub); font-size:11px; }
.umtg.sens span { color:var(--faint); }
.ufold { font-size:11px; color:var(--faint); margin-top:10px; }
.ufoot { border-top:3px double var(--ink); margin-top:26px; padding-top:10px; font-size:11px; color:var(--sub); text-align:center; letter-spacing:1px; }
/* 定了的事·带字时间线（2026-11-04）：一行一件，卡住的标红字「还卡着」 */
.utl { display:flex; gap:8px; align-items:baseline; padding:8px 0; border-bottom:1px dotted #C9C0AA; cursor:pointer; font-size:13.5px; }
.utl:hover { background:#F5EFDC; }
.utl .utl-tag { flex-shrink:0; font-size:11px; font-weight:800; padding:1px 7px; border:1.5px solid var(--ink); border-radius:2px; }
.utl .utl-tag.bad { color:#B3402A; border-color:#B3402A; }
.utl .utl-tag.art { color:#1D4ED8; border-color:#1D4ED8; }
.utl .utl-t { flex:1; min-width:0; font-weight:600; line-height:1.6; }
.utl .utl-go { font-style:normal; color:var(--faint); font-size:14px; }
/* 待办推进页分组 */
.ugrp { font-size:13px; font-weight:800; margin:18px 0 4px; display:flex; align-items:baseline; gap:8px; }
.ugrp span { font-size:11px; color:var(--sub); font-weight:600; }
.ugrp .dot { color:#B3402A; }
/* 待办归人（2026-10-22）：按人筛 / 课程小标 / 没人认领折叠 */
.upf { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:14px 0 4px; font-size:12px; color:var(--sub); }
.upf button { font-size:11px; padding:2px 9px; border-color:var(--line); color:var(--sub); }
.upf button.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.utag { display:inline-block; font-size:10px; font-weight:700; padding:0 5px; border:1px solid var(--line); border-radius:2px; color:var(--sub); vertical-align:1px; margin-left:6px; }
.uuncl { margin-top:18px; }
.uuncl summary { font-size:13px; font-weight:800; color:var(--sub); cursor:pointer; }
/* 图谱页 */
.ugraph { background:#fff; border:1px solid var(--line); border-radius:6px; margin-top:14px; }
.ugraph .chart { width:100%; height:52vh; min-height:320px; }
.ulegend { display:flex; gap:14px; font-size:12px; color:var(--sub); margin-top:10px; flex-wrap:wrap; }
.ulegend i { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; }
.unodecard { background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px 16px; margin-top:12px; font-size:13px; line-height:1.7; }
.unodecard h4 { font-size:14px; margin-bottom:6px; }
/* AI 推进草稿 */
.udraft { margin-top:8px; }
.udraft summary { font-size:12px; color:var(--sub); cursor:pointer; font-weight:600; }
.udraft .umsg { font-size:13px; line-height:1.7; background:#fff; border:1px solid var(--line); border-radius:4px; padding:10px 12px; margin-top:6px; }
.udraft .umeta { margin-top:6px; }
/* 登录 */
.ulogin { max-width:360px; margin:12vh auto 0; text-align:center; }
.ulogin .brand { font-family:"Songti SC","STSong",serif; font-size:30px; font-weight:900; letter-spacing:6px; }
.ulogin .sub { font-size:12px; color:var(--sub); margin:8px 0 26px; letter-spacing:2px; }
.ulogin input { margin-bottom:12px; }
.ulogin button { width:100%; padding:10px; font-size:14px; }
.ulogin .err { color:#B3402A; font-size:12px; margin-top:10px; min-height:18px; }
/* 状态 */
.uhint { font-size:12.5px; color:var(--sub); line-height:1.7; }
.uloading { text-align:center; padding:40px 0; }
/* 弹窗 / 提示 */
.utoast { position:fixed; left:50%; transform:translateX(-50%); bottom:30px; background:var(--ink); color:#fff; padding:11px 20px; border-radius:6px; font-size:13px; display:none; max-width:86vw; z-index:9; }
.udlg-mask { position:fixed; inset:0; background:rgba(28,26,22,.45); display:none; align-items:center; justify-content:center; z-index:10; }
.udlg { background:var(--paper); border-radius:8px; padding:22px 24px; width:min(420px, 92vw); border:1px solid var(--ink); }
.udlg h3 { font-size:15px; margin-bottom:12px; font-family:"Songti SC","STSong",serif; font-weight:900; }
.udlg .body { font-size:13px; line-height:1.8; margin-bottom:14px; }
.udlg input { margin-bottom:10px; }
.udlg .ops { display:flex; gap:10px; justify-content:flex-end; }

/* ================= 2026-11-04 用户端重做：像个 App（DESIGN_USER.md 3.1 报纸做法） ================= */
body { padding-bottom:64px; }
.uwrap { padding-bottom:24px; }
/* 底部页签（手机）/ 顶部页签（电脑） */
.utabs { position:fixed; left:0; right:0; bottom:0; display:flex; background:var(--paper); border-top:1px solid var(--ink); z-index:8; padding-bottom:env(safe-area-inset-bottom); }
.utabs a { flex:1; text-align:center; padding:12px 0 13px; font-size:14px; color:var(--sub); text-decoration:none; font-weight:600; }
.utabs a.on { color:var(--ink); font-weight:800; box-shadow:inset 0 3px 0 var(--yellow); }
@media (min-width:900px){
  body { padding-bottom:0; }
  .utabs { position:sticky; top:0; bottom:auto; max-width:880px; margin:0 auto; border-top:none; border-bottom:1px solid var(--ink); }
  .utabs a.on { box-shadow:inset 0 -3px 0 var(--yellow); }
  #uapp { display:flex; flex-direction:column; }
  #uapp .utabs { order:-1; width:100%; }
}
/* 期号行 */
.uissue { display:flex; align-items:center; gap:8px; justify-content:center; font-size:12px; color:var(--sub); margin:12px 0 4px; letter-spacing:.5px; }
.ulink { border:none; background:none; padding:2px 8px; font-size:13px; color:var(--sub); text-decoration:underline; font-weight:600; }
.uissue .ulink { font-size:18px; text-decoration:none; color:var(--ink); }
.uheadline.small { font-size:20px; }
/* 栏目小字 + 区块右侧「全部 ›」 */
.ukicker { font-size:12px; color:var(--sub); letter-spacing:3px; margin-bottom:4px; }
.usect .umore { margin-left:auto; font-size:12px; color:var(--sub); }
/* 事件流两行 */
.uev { padding:10px 0; border-bottom:1px solid var(--line); }
.uev p { font-size:14px; line-height:1.7; font-weight:600; }
.uevm { font-size:12px; color:var(--sub); margin-top:3px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.udot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--faint); }
.udot.bad { background:#B3402A; }
.ubad { color:#B3402A; }
/* 原话：楷体，不加框（中文没有斜体，楷体就是我们的斜体） */
.uquote { font-family:"Kaiti SC","STKaiti","KaiTi",serif; font-size:14px; color:#4A4438; margin-top:6px; line-height:1.7; }
/* 定了的事里的链接行 */
.udec a.urow { color:inherit; text-decoration:none; }
/* 模块格子：两列，细线分格，不加卡片阴影 */
.utiles { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.utile { position:relative; display:block; padding:14px 14px 16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; min-height:72px; }
.utile b { display:block; font-family:"Songti SC","STSong",serif; font-size:17px; font-weight:900; letter-spacing:1px; }
.utile span { display:block; font-size:12px; color:var(--sub); margin-top:6px; }
.utile span.warn { color:#B3402A; font-weight:700; }
.utile i { position:absolute; right:12px; top:14px; font-style:normal; color:var(--faint); }
.utile:active, .umrow:active { background:#F2EBD6; }
/* 会议列表行（能点的带 ›） */
.usearch { display:flex; gap:8px; margin-top:14px; }
.usearch button { flex-shrink:0; }
.umrow { display:flex; gap:10px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; }
.umrow b { font-family:"Songti SC","STSong",serif; width:46px; flex-shrink:0; font-size:13px; }
.umrow span { flex:1; min-width:0; }
.umrow em { font-style:normal; font-size:14px; font-weight:600; line-height:1.6; display:block; }
.umrow small { display:block; font-size:12px; color:var(--sub); margin-top:2px; }
.umrow i { font-style:normal; color:var(--faint); font-size:16px; }
.umrow.off em { color:var(--faint); font-weight:400; }
details.ufold summary { cursor:pointer; padding:8px 0; }
/* 单场详情 */
.uback { display:inline-block; margin-top:14px; font-size:13px; color:var(--sub); text-decoration:none; }
.upriv { margin-top:12px; padding:6px 10px; border:1px solid #B3402A; color:#B3402A; font-size:12px; font-weight:700; }
.umtitle { font-family:"Songti SC","STSong",serif; font-size:22px; font-weight:900; line-height:1.45; margin-top:12px; }
.ulist { padding-left:1.2em; font-size:14px; line-height:1.8; }
.utrans summary { cursor:pointer; font-size:14px; font-weight:800; padding:6px 0; border-bottom:1px solid var(--ink); }
.uline { display:flex; gap:8px; font-size:13px; line-height:1.7; padding:5px 0; border-bottom:1px dotted var(--line); }
.uline span { flex-shrink:0; width:40px; color:var(--faint); font-size:12px; }
.uline b { flex-shrink:0; font-weight:700; }
.uline q { quotes:none; font-family:"Kaiti SC","STKaiti","KaiTi",serif; font-size:14px; }
.uline.priv q, .uline.priv b { color:#B3402A; }
/* 日报：网页版 / 海报 切换 */
.useg { display:inline-flex; border:1px solid var(--ink); border-radius:3px; margin:12px 0 4px; }
.useg button { border:none; border-radius:0; padding:5px 16px; }
.useg button.on { background:var(--ink); color:#fff; }
.udframe { width:100%; height:78vh; border:1px solid var(--line); background:#fff; margin-top:10px; }
.uposter { margin-top:12px; text-align:center; }
.uposter img { max-width:100%; border:1px solid var(--line); }
/* 小字下限 12px（老板手机上看得清） */
.usrc, .usect span, .ufold, .ufoot, .utodo .meta, .umeta, .ugrp span, .uops button, .ukind, .uno, .upf button { font-size:12px; }
@media (min-width:900px){ .uposter img { max-width:560px; } }
