/* ============ 基础与主题变量 ============ */
:root{
  --primary:#c0392b;          /* 威海红/庄重红 */
  --primary-d:#962d22;
  --bg:#f4f5f7;
  --card:#ffffff;
  --text:#1a1a1a;
  --text-2:#666;
  --text-3:#999;
  --border:#ececec;
  --tag-bg:#f0f2f5;
  --shadow:0 1px 3px rgba(0,0,0,.06);
  --font-size:18px;
}
[data-theme="dark"]{
  --primary:#c75b50;          /* 柔和砖红：降低饱和度/亮度，深色下不刺眼 */
  --primary-d:#9c4339;        /* 更深的暗红，按压态 */
  --bg:#1a1a1a;
  --card:#262626;
  --text:#e8e8e8;
  --text-2:#aaa;
  --text-3:#777;
  --border:#333;
  --tag-bg:#2f2f2f;
  --shadow:0 1px 3px rgba(0,0,0,.3);
}
/* 深色模式：把硬编码的亮红半透明背景，换成基于柔和砖红的，避免发亮刺眼 */
[data-theme="dark"] .card .layout-badge,
[data-theme="dark"] .tag.topic,
[data-theme="dark"] .chip.more-toggle:active{background:rgba(199,91,80,.15)}
[data-theme="dark"] .tag.region{color:#6ba3d4;background:rgba(107,163,212,.15)}  /* 区域标签蓝也调柔和 */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:var(--font-size);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{max-width:100%;display:block}

/* ============ 顶部导航 ============ */
.header{
  position:sticky;top:0;z-index:100;
  background:var(--primary);color:#fff;
  padding:0 12px;height:52px;
  display:flex;align-items:center;gap:10px;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.header .logo{font-size:19px;font-weight:700;letter-spacing:1px;white-space:nowrap}
.header-logo{width:22px;height:22px;object-fit:contain;filter:brightness(0) invert(1);user-select:none;-webkit-user-drag:none}
.header .search-btn{margin-left:auto;font-size:21px;padding:6px;opacity:.95}
.header .theme-btn{font-size:19px;padding:6px;opacity:.95}

/* ============ 搜索栏 ============ */
.search-wrap{padding:10px 12px;background:var(--card);border-bottom:1px solid var(--border)}
.search-box{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:8px 12px}
.search-box input{flex:1;border:none;background:none;color:var(--text);font-size:16px;outline:none}
.search-box .clear{color:var(--text-3);font-size:18px;padding:4px;display:none}

/* ============ 维度 Tab ============ */
.tabs{display:flex;background:var(--card);border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;position:sticky;top:52px;z-index:99;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;padding:13px 16px;font-size:15px;color:var(--text-2);border-bottom:2px solid transparent;white-space:nowrap}
.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}

/* ============ 主内容区 ============ */
.main{max-width:680px;margin:0 auto;padding:12px;padding-bottom:0;min-height:calc(100vh - 52px);display:flex;flex-direction:column}
.view{display:none}.view.active{display:block;flex:1 0 auto}
/* 底部版权 */
.app-footer{
  margin-top:auto;padding:16px 12px 20px;text-align:center;
  border-top:1px solid var(--border);flex-shrink:0;
}
.app-footer-inner{
  display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;
  justify-content:center;font-size:12px;line-height:1.6;
}
.app-footer-label{color:var(--text-3);letter-spacing:.5px}
.app-footer-name{color:var(--text-2);font-weight:500;letter-spacing:.3px}
/* 回到顶部按钮 */
.to-top{
  position:fixed;right:16px;bottom:84px;width:44px;height:44px;border-radius:50%;
  background:var(--primary);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;
  box-shadow:0 4px 14px rgba(0,0,0,.22);z-index:300;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .25s ease,visibility .25s ease,transform .25s ease;
}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:active{transform:scale(.92)}

/* 维度筛选条（主题/区域等 chips） */
.chip-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{padding:6px 14px;border-radius:16px;background:var(--tag-bg);color:var(--text-2);font-size:14px;border:1px solid transparent}
.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.chip .n{opacity:.6;font-size:12px;margin-left:3px}
.chip.more-toggle{color:var(--primary);border:1px dashed var(--primary);background:transparent;width:100%;margin-top:4px;padding:9px;border-radius:8px;font-size:14px}
.chip.more-toggle:active{background:rgba(192,57,43,.08)}

/* 日期分组标题 */
.day-header{display:flex;align-items:center;gap:10px;margin:18px 0 10px}
.day-header .date{font-size:17px;font-weight:700;color:var(--text)}
.day-header .week{font-size:13px;color:var(--text-3)}
.day-header .count{margin-left:auto;font-size:13px;color:var(--primary);background:var(--tag-bg);padding:2px 10px;border-radius:10px}

/* ============ 文章卡片 ============ */
.card{
  background:var(--card);border-radius:10px;padding:14px 15px;margin-bottom:10px;
  box-shadow:var(--shadow);transition:transform .12s;
}
.card:active{transform:scale(.985)}
.card .layout-badge{display:inline-block;font-size:11px;color:var(--primary);background:rgba(192,57,43,.08);padding:2px 8px;border-radius:4px;margin-bottom:8px}
.card h3{font-size:18px;font-weight:600;line-height:1.45;color:var(--text);margin-bottom:6px}
.card .summary{font-size:14px;color:var(--text-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;color:var(--text-2);background:var(--tag-bg);padding:3px 9px;border-radius:10px}
.tag.region{color:#2980b9;background:rgba(41,128,185,.1)}
.tag.topic{color:var(--primary);background:rgba(192,57,43,.08)}

/* ============ 详情页（全屏覆盖，独立滚动）============ */
#detailPage{
  position:fixed;inset:0;z-index:200;background:var(--bg);
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.detail{padding:0 4px}
/* 详情页顶部条：返回 + 分享 */
.detail .topbar{position:sticky;top:0;z-index:10;background:var(--primary);color:#fff;display:flex;align-items:center;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.detail .back{display:flex;align-items:center;flex:1;min-height:56px;padding:0 4px 0 0;cursor:pointer;-webkit-tap-highlight-color:rgba(255,255,255,.15);transition:background .15s}
.detail .back:active{background:var(--primary-d)}
.detail .back .arrow{font-size:30px;line-height:1;padding:0 14px 0 12px;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;font-weight:300;margin-top:-9px}
.detail .back .t{font-size:16px;font-weight:600}
.detail .back-share{flex:0 0 auto;padding:0 14px;min-height:48px;color:#fff;font-size:14px;display:flex;align-items:center;gap:4px;background:transparent;-webkit-tap-highlight-color:rgba(255,255,255,.15)}
.detail .back-share:active{background:var(--primary-d)}
/* 详情页头部工具按钮组（字号/深色），适配红底白字 */
.detail .topbar-tools{flex:0 0 auto;display:flex;align-items:center;gap:4px;margin-right:4px}
.detail .topbar-tools button{min-width:36px;min-height:36px;padding:0 6px;border-radius:7px;background:rgba(255,255,255,.2);color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:rgba(255,255,255,.15)}
.detail .topbar-tools button:active{background:rgba(255,255,255,.35)}
.detail .body{padding:16px 16px 90px;max-width:680px;margin:0 auto}
.detail h1{font-size:23px;font-weight:700;line-height:1.4;color:var(--text);margin-bottom:12px}
.detail .meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.detail .meta .m{font-size:13px;color:var(--text-3)}
.detail .content{font-size:var(--font-size);line-height:2;color:var(--text);margin-top:18px;white-space:pre-wrap;word-break:break-word}
.detail .content p{margin-bottom:1.2em}
.detail .cover-wrap{margin-top:24px}
.detail .cover-cap{font-size:13px;color:var(--text-3);margin-bottom:8px;padding-left:8px;border-left:3px solid var(--primary)}
.detail .cover{border-radius:8px;border:1px solid var(--border);cursor:zoom-in}
.detail .source-link{margin-top:18px;padding:14px;background:var(--tag-bg);border-radius:8px;font-size:14px;color:var(--text-2)}
.detail .source-link a{color:var(--primary)}

/* 详情页底部悬浮操作条 */
.detail-actions{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--card);border-top:1px solid var(--border);display:flex;max-width:680px;margin:0 auto;padding:10px 12px;gap:10px;box-shadow:0 -2px 8px rgba(0,0,0,.06)}
.detail-actions .da-btn{flex:1;padding:12px 0;border-radius:8px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}
.detail-actions .da-btn.copy{background:var(--tag-bg);color:var(--text)}
.detail-actions .da-btn.link{background:var(--tag-bg);color:var(--primary)}
.detail-actions .da-btn.share{background:var(--primary);color:#fff}
.detail-actions .da-btn:active{opacity:.8;transform:scale(.98)}

/* 卡片上的分享小按钮 */
.card .share-mini{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--tag-bg);color:var(--text-2);font-size:15px;display:flex;align-items:center;justify-content:center;line-height:1;opacity:.7}
.card .share-mini:active{opacity:1;background:var(--primary);color:#fff}
.card{position:relative}

/* Toast 提示 */
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:rgba(0,0,0,.82);color:#fff;padding:10px 20px;border-radius:22px;font-size:14px;z-index:400;opacity:0;transition:opacity .25s,bottom .25s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;bottom:100px}

/* 图片放大层 */
.zoom-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;padding:20px;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:none}
.zoom-overlay img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-out}
.zoom-overlay .hint{position:fixed;bottom:20px;left:0;right:0;text-align:center;color:#fff;font-size:13px;opacity:.7}

/* ============ 每日简报 ============ */
.brief-hero{background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border-radius:12px;padding:18px 16px;margin-bottom:14px}
.brief-hero .b-date{font-size:13px;opacity:.85}
.brief-hero .b-title{font-size:20px;font-weight:700;line-height:1.4;margin:6px 0 8px}
.brief-hero .b-sum{font-size:13px;opacity:.9;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.brief-hero .b-go{display:inline-block;margin-top:10px;font-size:13px;background:rgba(255,255,255,.22);padding:5px 12px;border-radius:14px}

.brief-section{background:var(--card);border-radius:10px;padding:14px 15px;margin-bottom:12px;box-shadow:var(--shadow)}
.brief-section .bs-title{font-size:14px;font-weight:700;color:var(--text-2);margin-bottom:10px;padding-left:8px;border-left:3px solid var(--primary)}
.num-chips{display:flex;flex-wrap:wrap;gap:8px}
.num-chip{background:var(--tag-bg);border-radius:8px;padding:8px 12px;text-align:center;min-width:64px}
.num-chip .v{font-size:17px;font-weight:700;color:var(--primary);display:block}
.num-chip .u{font-size:11px;color:var(--text-3)}
.dist-row{display:flex;align-items:center;gap:8px;padding:5px 0}
.dist-row .n{flex:0 0 78px;font-size:13px}
.dist-row .b{flex:1;height:6px;background:var(--tag-bg);border-radius:3px;overflow:hidden}
.dist-row .b i{display:block;height:100%;background:var(--primary)}
.dist-row .c{flex:0 0 28px;text-align:right;font-size:12px;color:var(--text-2)}
.hl-item{padding:11px 0;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:flex-start}
.hl-item:last-child{border-bottom:none}
.hl-item .seq{flex:0 0 22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:2px}
.hl-item .ct{flex:1;min-width:0}
.hl-item .ct .t{font-size:15px;line-height:1.5;color:var(--text)}
.hl-item .ct .m{font-size:12px;color:var(--text-3);margin-top:3px}
.hl-item .ct .num{color:var(--primary);font-weight:600}
.hl-item:active{opacity:.7}

/* ============ 底部导航 ============ */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;z-index:90;
  background:var(--card);border-top:1px solid var(--border);
  display:flex;max-width:680px;margin:0 auto;
}
.bottom-nav .nav{flex:1;text-align:center;padding:8px 0 10px;color:var(--text-3)}
.bottom-nav .nav .ic{font-size:21px;display:block;line-height:1}
.bottom-nav .nav .lb{font-size:11px;margin-top:3px}
.bottom-nav .nav.active{color:var(--primary)}

/* ============ 空状态 ============ */
.empty{text-align:center;padding:60px 20px;color:var(--text-3)}
.empty .ic{font-size:48px;margin-bottom:12px}

/* ============ 刷新闻（随机一篇）============ */
.shuffle-card{background:var(--card);border-radius:14px;padding:22px 20px;margin-bottom:14px;box-shadow:var(--shadow);animation:shuffleIn .35s ease}
@keyframes shuffleIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.shuffle-card .s-top{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.shuffle-card .s-badge{font-size:12px;color:var(--primary);background:rgba(192,57,43,.08);padding:3px 10px;border-radius:10px}
.shuffle-card .s-date{font-size:12px;color:var(--text-3);margin-left:auto}
.shuffle-card h2{font-size:22px;font-weight:700;line-height:1.45;color:var(--text);margin-bottom:14px}
.shuffle-card .s-summary{font-size:16px;line-height:1.8;color:var(--text-2);margin-bottom:16px}
.shuffle-card .s-body{font-size:15px;line-height:1.9;color:var(--text);max-height:50vh;overflow:hidden;position:relative;margin-bottom:16px}
.shuffle-card .s-body::after{content:'';position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(transparent,var(--card))}
.shuffle-card .s-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.shuffle-card .s-actions{display:flex;gap:10px;align-items:center;border-top:1px solid var(--border);padding-top:14px}
.shuffle-card .s-actions .sa-btn{flex:1;padding:11px 0;border-radius:8px;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:5px}
.shuffle-card .s-actions .sa-next{background:var(--primary);color:#fff}
.shuffle-card .s-actions .sa-detail{background:var(--tag-bg);color:var(--text)}
.shuffle-card .s-actions .sa-btn:active{opacity:.8;transform:scale(.98)}
.shuffle-card .s-count{font-size:12px;color:var(--text-3);text-align:center;margin-top:10px}

/* 字体调节 */
.font-ctrl{display:flex;align-items:center;gap:4px}
.font-ctrl button{min-width:40px;min-height:40px;padding:0 8px;border-radius:8px;background:rgba(255,255,255,.18);color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center}
.font-ctrl button:active{background:rgba(255,255,255,.32)}

/* 高亮搜索词 */
mark{background:#fff3a0;color:inherit;padding:0 2px;border-radius:2px}

/* 看板统计 */
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.stat-card{background:var(--card);border-radius:10px;padding:14px;box-shadow:var(--shadow);text-align:center}
.stat-card .num{font-size:26px;font-weight:700;color:var(--primary)}
.stat-card .lb{font-size:13px;color:var(--text-2);margin-top:4px}
.bar-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}
.bar-row .name{flex:0 0 90px;font-size:14px}
.bar-row .bar{flex:1;height:8px;background:var(--tag-bg);border-radius:4px;overflow:hidden}
.bar-row .bar i{display:block;height:100%;background:var(--primary);border-radius:4px}
.bar-row .val{flex:0 0 40px;text-align:right;font-size:13px;color:var(--text-2)}
.section-title{font-size:16px;font-weight:700;margin:18px 0 10px;color:var(--text)}

/* ============ 首屏 Loading（政务红 · 印章风）============ */
.loading-screen{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(150deg,#c0392b 0%,#a52d20 55%,#8a2519 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px;text-align:center;
  transition:opacity .6s ease,visibility .6s ease;
}
.loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}
/* LOGO 徽章 */
.loading-badge{
  width:92px;height:92px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:30px;position:relative;
  animation:badgePulse 2.4s ease-in-out infinite;
}
.loading-logo{
  width:80px;height:80px;object-fit:contain;display:block;
  filter:brightness(0) invert(1);
  user-select:none;-webkit-user-drag:none;
}
@keyframes badgePulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}
/* 标题 */
.loading-title{
  font-size:28px;font-weight:700;color:#fff;letter-spacing:7px;
  margin-bottom:10px;text-shadow:0 2px 10px rgba(0,0,0,.22);
}
.loading-subtitle{
  font-size:12px;color:rgba(232,200,150,.9);letter-spacing:4px;margin-bottom:54px;
}
/* 进度条 */
.loading-bar{
  width:188px;height:3px;background:rgba(255,255,255,.16);border-radius:2px;overflow:hidden;margin-bottom:16px;
}
.loading-bar i{
  display:block;height:100%;width:0%;
  background:linear-gradient(90deg,#e8c896,#d4a574);
  border-radius:2px;transition:width .5s cubic-bezier(.4,0,.2,1);
}
.loading-status{
  font-size:12px;color:rgba(255,255,255,.72);letter-spacing:2px;min-height:16px;
  transition:opacity .25s ease;
}
/* 底部装饰 */
.loading-footer{position:absolute;bottom:34px;left:0;right:0}
.loading-footer::before{
  content:'';display:block;width:42px;height:1px;margin:0 auto 12px;
  background:linear-gradient(90deg,transparent,rgba(232,200,150,.55),transparent);
}
.loading-footer span{font-size:10px;color:rgba(255,255,255,.42);letter-spacing:4px}
