/* ============================================================
   槐隐学园 · 网站页面样式
   ============================================================ */
a { color:#0a4ba0; text-decoration:none; }
a:visited { color:#551a8b; }
a:hover { color:#c00; text-decoration:underline; }

#page-mount { min-height:100%; background:#f5f3ea; }

/* ============ 归档提示页 ============ */
.p-archive {
  min-height:100%; background:#e8e8e4;
  display:flex; align-items:center; justify-content:center;
  padding:30px 20px;
}
.archive-box {
  width:760px; background:#f0f0ec;
  border:1px solid #b0b0a8;
  box-shadow:1px 1px 0 #fff inset;
}
.archive-head {
  background:linear-gradient(to bottom,#3a6ea5,#2b5280);
  color:#fff; font-weight:bold; font-size:14px; padding:5px 10px;
  display:flex; align-items:center; gap:8px;
}
.archive-head::before {
  content:""; width:16px; height:16px; background:#f0f0ec;
  border:1px solid #888;
}
.archive-body { padding:34px 42px 20px; font-size:15px; line-height:1.6; color:#111; }
.archive-line { min-height:26px; }
.archive-line .cur {
  display:inline-block; width:8px; height:16px; background:#111;
  vertical-align:-2px; animation:blink 1s steps(1) infinite;
}
@keyframes blink { 50% { opacity:0; } }
.archive-warn { color:#9a2a18; margin-top:10px; }
.archive-tiny { color:#bbb; font-size:11px; margin-top:26px; }
.archive-foot { padding:14px 42px 30px; display:flex; gap:14px; }
.ie-btn {
  padding:4px 18px; font-size:13px; font-family:inherit;
  border:1px solid #888;
  background:linear-gradient(to bottom,#fff,#d4d0c8);
  box-shadow:1px 1px 0 #fff inset, -1px -1px 0 #888 inset;
  cursor:pointer;
}
.ie-btn:active { box-shadow:inset 1px 1px 3px #999; }
.archive-disconnected {
  width:520px; text-align:center; padding:60px 0; color:#666;
}
.archive-disconnected .big { font-size:20px; color:#444; margin-bottom:20px; }

/* ============ 网站公共框架 ============ */
.site-wrap { width:100%; }
.site-top {
  background:linear-gradient(to bottom,#17428f 0%,#1f56a8 18%,#2b6ac0 55%,#2358a6 82%,#16407f 100%);
  padding:0 0 0 18px;
  display:flex; align-items:center; gap:14px;
  border-bottom:3px solid #b93a2b;
}
.site-crest { width:46px; height:64px; object-fit:contain; margin:8px 0; filter:drop-shadow(1px 1px 0 rgba(0,0,0,.4)); }
.site-name { color:#fff; font-size:28px; font-weight:bold; letter-spacing:8px;
  text-shadow:1px 2px 2px rgba(0,0,0,.55); font-family:"SimSun","宋体",serif; }
.site-sub { color:#ffe8a8; font-size:13px; margin-left:10px; letter-spacing:2px; text-shadow:1px 1px 1px rgba(0,0,0,.6); }
.site-nav {
  background:linear-gradient(to bottom,#e9eef8,#cdd9ee);
  border-bottom:1px solid #8ea6c8;
  display:flex; padding:0 14px; position:relative; z-index:30;
}
.nav-item {
  padding:7px 18px; font-size:14px; font-weight:bold; color:#16407f;
  cursor:pointer; position:relative; border-right:1px solid #c2cee4;
}
.nav-item.first { border-left:1px solid #c2cee4; }
.nav-item:hover { background:#fef5e0; }
.nav-item.active {
  background:linear-gradient(to bottom,#fff,#e8eefb);
  color:#b93a2b;
  border-right:1px solid #8ea6c8;
  border-left:1px solid #8ea6c8;
}
.nav-dropdown {
  position:absolute; left:0; top:100%; min-width:150px;
  background:#fbfcff; border:1px solid #8ea6c8; border-top:none;
  display:none; box-shadow:2px 2px 6px rgba(0,0,0,.25);
}
.nav-item:hover .nav-dropdown, .nav-item.open .nav-dropdown { display:block; }
.nav-dropdown .dd-item {
  padding:6px 14px; font-size:13px; font-weight:normal; white-space:nowrap; color:#16407f;
}
.nav-dropdown .dd-item:hover { background:#fef5e0; }
.dd-item.dd-special { color:#9a9a9a; }
.dd-item.dd-special.unlocked { color:#16407f; }
.dd-item.dd-special.highlight { background:#fff3c0; color:#b93a2b; font-weight:bold; }
.dd-item.dd-special.highlight::after { content:" ▸"; }

.site-body { display:flex; gap:12px; padding:12px 16px; background:#f5f3ea; align-items:flex-start; }
.site-main { flex:1; min-width:0; }
.site-side { width:230px; flex:0 0 230px; }
.site-footer {
  background:#e4e1d4; border-top:1px solid #b5b2a4;
  text-align:center; padding:12px 10px; font-size:12px; color:#555; line-height:2;
}
.footer-tree {
  width:11px; height:11px; vertical-align:-1px; cursor:default;
  opacity:.55;
}
.footer-tree.hot { opacity:1; outline:1px dotted transparent; }
.footer-tree.redstroke { filter:drop-shadow(0 0 1px rgba(150,20,20,.5)); }

/* 面包屑 */
.crumb { font-size:12px; color:#666; padding:8px 16px 0; }
.crumb a { color:#16407f; }
.page-title {
  font-size:22px; font-weight:bold; text-align:center;
  color:#1b3a6b; padding:10px 0 14px;
  font-family:"SimHei","黑体","SimSun",serif;
  letter-spacing:3px;
}

/* 侧栏模块 */
.side-box {
  border:1px solid #b0a890; background:#fbfaf4; margin-bottom:12px;
}
.side-box h3 {
  font-size:14px; color:#fff; padding:5px 10px;
  background:linear-gradient(to bottom,#2b6ac0,#1d4f93);
  font-family:"SimHei","黑体",serif;
}
.side-box .sb-body { padding:8px 10px; font-size:13px; line-height:1.9; }
.side-box .sb-body li { list-style:none; }
.side-box .sb-body li::before { content:"· "; color:#b93a2b; }
.search-box { display:flex; gap:4px; }
.search-box input {
  width:140px; border:1px solid #888; padding:3px 5px; font-size:13px; font-family:inherit;
}
.search-box button {
  border:1px solid #888; background:linear-gradient(to bottom,#fff,#d4d0c8);
  padding:2px 8px; font-size:12px; cursor:pointer; font-family:inherit;
}

/* ============ 首页 ============ */
.h-carousel {
  border:1px solid #b0a890; background:#000; margin-bottom:12px;
  width:100%; height:300px; position:relative; overflow:hidden;
}
.h-carousel .slides { position:relative; height:100%; }
.h-carousel .slide {
  position:absolute; inset:0; opacity:0; transition:opacity .6s;
  background-size:cover; background-position:center;
}
.h-carousel .slide.on { opacity:1; }
.h-carousel .cap {
  position:absolute; left:0; right:0; bottom:0;
  background:rgba(0,0,0,.55); color:#fff; font-size:14px;
  padding:5px 12px;
}
.h-carousel .dots { position:absolute; right:10px; bottom:36px; display:flex; gap:6px; }
.h-carousel .dot {
  width:14px; height:14px; background:#bdbdbd; border:1px solid #555;
  display:flex; align-items:center; justify-content:center; font-size:10px; cursor:pointer;
}
.h-carousel .dot.on { background:#e8b62a; }
.h-corner-hot {
  position:absolute; right:0; bottom:0; width:34px; height:34px;
  z-index:5; cursor:default;
}
.h-two-col { display:flex; gap:12px; }
.h-news { flex:1; border:1px solid #b0a890; background:#fbfaf4; }
.h-news h3, .h-notice h3 {
  font-size:15px; color:#fff; padding:6px 12px;
  background:linear-gradient(to bottom,#2b6ac0,#1d4f93);
  font-family:"SimHei","黑体",serif;
  display:flex; justify-content:space-between;
}
.h-news h3 a { color:#fff; font-size:12px; font-weight:normal; }
.h-news ul, .h-notice ul { padding:8px 14px; }
.h-news li {
  list-style:none; font-size:13px; line-height:2;
  display:flex; justify-content:space-between; gap:8px;
  border-bottom:1px dotted #ccc;
}
.h-news li .n-date { color:#888; font-size:12px; flex:0 0 auto; }
.h-notice { width:260px; flex:0 0 260px; border:1px solid #b0a890; background:#fbfaf4; }
.h-notice li { list-style:none; font-size:13px; line-height:2; }
.h-quick { display:flex; gap:10px; margin:12px 0; }
.h-quick .q-btn {
  flex:1; text-align:center; padding:10px 4px;
  border:1px solid #b0a890; background:linear-gradient(to bottom,#fbfaf4,#e8e4d2);
  font-size:14px; color:#16407f; cursor:pointer;
}
.h-quick .q-btn:hover { border-color:#b93a2b; color:#b93a2b; }
.h-stars { border:1px solid #b0a890; background:#fbfaf4; margin-bottom:12px; }
.h-stars h3 {
  font-size:15px; color:#fff; padding:6px 12px;
  background:linear-gradient(to bottom,#2b6ac0,#1d4f93);
  font-family:"SimHei","黑体",serif;
  display:flex; justify-content:space-between;
}
.h-stars h3 a { color:#fff; font-size:12px; font-weight:normal; }
.h-stars table { width:100%; border-collapse:collapse; font-size:13px; }
.h-stars td { padding:5px 12px; border-bottom:1px dotted #ccc; }
.gray-name { color:#d5d2c6; cursor:default; }
.gray-name:hover { text-decoration:underline; }
.gray-name.stronger { color:#b8b4a4; }

/* ============ 通用表格 ============ */
.data-table {
  width:100%; border-collapse:collapse; background:#fff;
  border:1px solid #8a8a8a; font-size:13px;
}
.data-table th {
  background:linear-gradient(to bottom,#e8edf8,#c9d6ee);
  border:1px solid #9aa8c0; padding:6px 8px; font-weight:bold;
  font-family:"SimHei","黑体",serif;
}
.data-table td { border:1px solid #c2c8d4; padding:6px 8px; }
.data-table tr:nth-child(even) td { background:#f6f8fc; }
.pager { padding:12px 0; text-align:center; display:flex; gap:6px; justify-content:center; align-items:center; }
.pager .pg {
  padding:2px 9px; border:1px solid #888; background:#fff; cursor:pointer; font-size:12px;
}
.pager .pg.on { background:#2b6ac0; color:#fff; border-color:#1d4f93; }
.pager .pg.secret { position:relative; top:1px; }
.pager .pg.secret:hover { color:#b93a2b; border-color:#b93a2b; }
.back-up { margin:16px 0; text-align:center; }
.table-note { font-size:11px; color:#dcdcdc; margin-top:8px; cursor:text; }
.hidden-underlay { color:#b03020; background:#fff; }
.hidden-underlay::selection { background:#ffe9a8; }
.gray-row-name { color:#d5d2c6; cursor:default; }
.gray-row-name.underlined { text-decoration:underline; text-decoration-color:#ccc; }
.ghost-row td { color:rgba(0,0,0,.18); }
.ghost-row td:first-child { color:rgba(0,0,0,.35); }

/* 内容区块 */
.article-box { background:#fff; border:1px solid #d6d2c4; padding:18px 22px; font-size:14px; line-height:2.1; }
.article-box h2 { font-size:18px; text-align:center; margin-bottom:6px; font-family:"SimHei","黑体",serif; }
.article-box .meta { text-align:center; color:#888; font-size:12px; margin-bottom:14px; }
.article-box p { text-indent:2em; margin-bottom:6px; }
.underlay-sel { color:#000; }
.underlay-sel::selection { background:#ffe9a8; color:#b03020; }

/* ============ 学校概况 ============ */
.gallery { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0; }
.gallery .g-item { width:150px; }
.gallery .g-frame {
  width:150px; height:112px; border:1px solid #b0a890; overflow:hidden;
  background:#e6e3d6; position:relative; cursor:pointer;
}
.gallery .g-frame img { width:100%; height:100%; object-fit:cover; }
.gallery .g-cap { font-size:12px; text-align:center; color:#555; margin-top:3px; }
.g-roof-hot { position:absolute; inset:0; cursor:default; }
.section-h { font-size:16px; font-family:"SimHei","黑体",serif; color:#1b3a6b;
  border-left:5px solid #b93a2b; padding-left:10px; margin:18px 0 10px; }
.faint-name { color:#f0eee5; }
.faint-name::selection { background:#ffe9a8; color:#333; }
.teacher-note { font-size:11px; color:#cfcabe; }

/* ============ 新闻中心 ============ */
.news-list { background:#fff; border:1px solid #d6d2c4; }
.news-list .nl-row {
  display:flex; align-items:center; gap:10px; padding:8px 14px;
  border-bottom:1px dotted #ccc; font-size:14px;
}
.news-list .nl-row .nl-date { width:90px; color:#666; flex:0 0 90px; font-size:12px; }
.news-list .nl-row.headline a { color:#b93a2b; font-weight:bold; }
.paperclip {
  position:absolute; width:16px; height:26px; cursor:pointer;
  border:2px solid #b8b2a0; border-radius:50%; opacity:.45;
}
.paperclip:hover { opacity:.9; }
.scratch-pop {
  position:absolute; width:210px; background:#e8e0c8; border:1px solid #b8ad88;
  padding:12px 14px; font-family:"Kaiti SC","楷体",serif; font-size:15px;
  color:#3d3420; box-shadow:3px 4px 12px rgba(0,0,0,.3); transform:rotate(-3deg);
  z-index:20;
}

/* ============ 教学教研 ============ */
.file-row {
  display:flex; align-items:center; gap:8px; padding:6px 10px;
  border-bottom:1px dotted #ccc; font-size:13px;
}
.file-icon { width:16px; height:16px; background:#6a8cc0; display:inline-block; }
.file-icon.xls { background:#4a8a4a; }
.strike-name { position:relative; }
.strike-name::after {
  content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:#999;
}

/* ============ 留言板 ============ */
.board-toolbar {
  display:flex; gap:8px; align-items:center;
  background:#eef2f8; border:1px solid #b9c4d8; padding:8px 10px;
}
.board-toolbar input[type=text] {
  width:220px; border:1px solid #888; padding:3px 6px; font-family:inherit; font-size:13px;
}
.board-cats { display:flex; gap:2px; }
.board-cats .cat {
  padding:4px 14px; border:1px solid #b9c4d8; background:linear-gradient(to bottom,#fff,#dce4f0);
  font-size:13px; cursor:pointer; border-bottom:none;
}
.board-cats .cat.on { background:#fff; font-weight:bold; }
.board-table { width:100%; border-collapse:collapse; background:#fff; }
.board-table th {
  background:linear-gradient(to bottom,#e8edf8,#c9d6ee); border:1px solid #9aa8c0;
  padding:5px 8px; font-size:13px; font-family:"SimHei","黑体",serif;
}
.board-table td { border:1px solid #d0d6e0; padding:6px 8px; font-size:13px; vertical-align:top; }
.board-row .avatar {
  width:30px; height:30px; border:1px solid #b0a890;
  background:#e0dccd; display:flex; align-items:center; justify-content:center;
  font-size:11px; color:#888; margin:0 auto;
}
.board-row .nick { font-weight:bold; color:#16407f; }
.board-row .admin-tag { color:#b93a2b; font-size:11px; }
.board-row .time { color:#888; font-size:12px; white-space:nowrap; }
.redacted {
  position:relative; color:transparent;
  background:linear-gradient(to bottom,#999,#777);
  border-radius:1px; user-select:none;
}
.redacted.revealed { background:none; color:inherit; }
.del-btn {
  border:1px solid #aaa; background:#eee; color:#aaa; font-size:11px;
  padding:1px 6px; cursor:not-allowed;
}
.del-btn.bad { border-color:#b93a2b; color:#b93a2b; background:#fbe9e6; cursor:pointer; }
.status-tag {
  display:inline-block; padding:1px 8px; font-size:11px;
  border:1px solid #b93a2b; color:#b93a2b; background:#fbe9e6;
}
.status-tag.del { border-color:#999; color:#999; background:#eee; }
.board-search-hint { color:#dcdcdc; font-size:12px; margin-top:6px; }
.blood-corner { position:relative; }
.blood-corner::after {
  content:""; position:absolute; left:0; top:0; width:26px; height:26px;
  background:radial-gradient(circle at 0 0, rgba(120,10,10,.18), transparent 70%);
  pointer-events:none;
}
.needle-paper {
  position:absolute; left:3px; top:50%; width:8px; height:10px;
  background:#e6dec6; border:1px solid #b8ad88; cursor:pointer;
}
.board-online { font-size:12px; color:#666; padding:6px 4px; display:flex; justify-content:space-between; }

/* ============ 广播站 ============ */
.speaker-gif {
  display:inline-block; width:40px; height:40px; vertical-align:middle;
  margin-right:10px;
}
.radio-header { display:flex; align-items:center; padding:10px 4px; }
.radio-header h2 { display:inline-block; font-family:"SimHei","黑体",serif; font-size:19px; color:#1b3a6b; }
.prog-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #b9c4d8; }
.prog-table th { background:linear-gradient(to bottom,#e8edf8,#c9d6ee); border:1px solid #9aa8c0; padding:6px; font-size:13px; }
.prog-table td { border:1px solid #d0d6e0; padding:6px 10px; font-size:13px; }
.prog-player { display:flex; align-items:center; gap:6px; }
.play-btn {
  width:24px; height:22px; border:1px solid #888; background:linear-gradient(to bottom,#fff,#d4d0c8);
  cursor:pointer; font-size:11px;
}
.progress {
  width:130px; height:8px; border:1px solid #888; background:#f0f0f0;
  position:relative; cursor:pointer;
}
.progress .pfill { position:absolute; left:0; top:0; bottom:0; background:#3a78c8; width:0; }
.progress .pseek { position:absolute; top:0; bottom:0; background:rgba(200,30,30,.22); display:none; }
.dl-link { font-size:11px; }
.dedication {
  background:#fff; border:1px solid #b9c4d8; margin-top:14px;
}
.dedication h3 { background:linear-gradient(to bottom,#2b6ac0,#1d4f93); color:#fff; padding:6px 12px; font-size:14px; font-family:"SimHei","黑体",serif; }
.dedication table { width:100%; border-collapse:collapse; }
.dedication td { border-bottom:1px dotted #ccc; padding:6px 12px; font-size:13px; }
.song-name { cursor:pointer; color:#0a4ba0; }
.song-name:hover { color:#c00; text-decoration:underline; }
.song-ghost { position:relative; }
.song-ghost::after {
  content:attr(data-ghost); position:absolute; left:0; top:0;
  color:rgba(160,20,20,.22); transform:translate(1px,0); pointer-events:none;
}

/* ============ 学籍系统（内网冷灰） ============ */
.intranet {
  min-height:100%; background:#dcdfe2;
  font-family:"SimSun","宋体",serif;
}
.intranet .int-head {
  background:#5a6b7e; color:#eef2f6; padding:8px 16px;
  display:flex; justify-content:space-between; align-items:center;
}
.intranet .int-head .v { font-size:12px; color:#c5cdd6; }
.intranet .int-body { display:flex; gap:0; padding:0; }
.int-left {
  width:250px; flex:0 0 250px; background:#e6e9ec;
  min-height:560px; border-right:1px solid #aab2ba; padding:14px;
}
.int-left label { display:block; font-size:13px; margin:10px 0 4px; }
.int-left input, .int-left select {
  width:100%; border:1px solid #8a929a; padding:4px 6px; font-size:13px; font-family:inherit;
  background:#fff;
}
.int-left .int-btns { margin-top:16px; display:flex; gap:10px; }
.int-right { flex:1; padding:14px 18px; background:#eef1f3; }
.int-title { font-size:16px; font-family:"SimHei","黑体",serif; color:#33414f; margin-bottom:10px; }
.int-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid #8a929a; }
.int-table th { background:#c8d0d8; border:1px solid #9aa2aa; padding:6px 8px; font-size:13px; }
.int-table td { border:1px solid #c2c8ce; padding:6px 8px; font-size:13px; }
.blank-row { height:22px; cursor:pointer; }
.blank-row.normalheight { height:auto; }
.blank-row td { background:#f5f7f9; }
.int-note { font-size:12px; color:#7a828a; margin-top:10px; }
.log-fold { margin-top:14px; border:1px solid #aab2ba; background:#fff; }
.log-fold .log-head {
  background:#c8d0d8; padding:6px 10px; cursor:pointer; font-size:13px; font-weight:bold;
}
.log-fold .log-body { display:none; padding:8px 10px; font-size:12px; color:#555; }
.log-fold .log-body.open { display:block; }
.log-row { display:flex; gap:14px; padding:2px 0; }
.log-row.blink { color:#a03020; animation:blinklog 1.1s steps(1) infinite; }
@keyframes blinklog { 50% { opacity:.35; } }

/* 档案详情 */
.record-detail { width:640px; background:#fff; }
.record-detail .rd-row { display:flex; border-bottom:1px solid #d0d6e0; }
.record-detail .rd-k {
  width:120px; flex:0 0 120px; background:#f0f2f4; padding:7px 10px; font-size:13px;
  border-right:1px solid #d0d6e0;
}
.record-detail .rd-v { flex:1; padding:7px 10px; font-size:13px; position:relative; }
.stamp {
  position:absolute; right:12px; top:2px;
  border:3px double #c0301a; color:#c0301a; border-radius:6px;
  font-weight:bold; font-size:18px; padding:1px 12px;
  transform:rotate(-10deg); opacity:.6; letter-spacing:6px;
  font-family:"SimHei","黑体",serif;
}
.overlap-text {
  position:relative; cursor:text; color:#111;
  user-select:none;
}
.overlap-text .layer-top { color:#555; }
.overlap-text .layer-bottom {
  position:absolute; left:10px; top:7px; color:#c0301a; opacity:0;
  user-select:text; pointer-events:none;
}
.overlap-text.revealed .layer-bottom { opacity:1; pointer-events:auto; background:#fff7d6; }
.overlap-text.revealed .layer-top { opacity:0; }

/* ============ 管理后台 ============ */
.admin-dark {
  min-height:100%; background:#2b2e33; color:#c9ccd2;
  font-family:"SimSun","宋体",serif;
}
.admin-dark .ad-head {
  background:#1f2126; padding:10px 18px; font-size:15px; font-weight:bold;
  color:#e0e2e6; border-bottom:1px solid #444;
  letter-spacing:3px;
}
.admin-dark .ad-body { display:flex; padding:16px; gap:16px; }
.ad-col { flex:1; background:#34373d; border:1px solid #45484e; }
.ad-col h3 { font-size:13px; padding:7px 12px; background:#3c3f46; color:#e0e2e6; font-family:"SimHei","黑体",serif; }
.ad-rank { padding:6px 0; max-height:560px; overflow:auto; }
.ad-rank .r-row {
  display:flex; padding:4px 12px; font-size:13px; gap:10px;
  border-bottom:1px dotted #444;
}
.ad-rank .r-row .r-rk { width:42px; color:#8b8f96; }
.ad-rank .r-row .r-nm { flex:1; }
.ad-rank .r-row .r-val { width:48px; text-align:right; }
.ad-rank .r-row .r-st { width:70px; font-size:12px; color:#8b8f96; }
.ad-rank .r-row.low .r-val { color:#d8584a; }
.ad-rank .r-row.lin {
  background:#24262b; color:#b8bcc2;
}
.ad-rank .r-row.lin .r-val { color:#d8584a; font-weight:bold; }
.ad-logs { padding:8px 12px; font-size:12px; line-height:1.9; max-height:560px; overflow:auto; }
.ad-logs .l-row { display:flex; gap:10px; color:#a8acb4; border-bottom:1px dotted #3f4248; }
.ad-logs .l-row .l-t { color:#777b82; width:120px; flex:0 0 120px; }
.ad-logs .l-row.final { color:#d8584a; }
/* 配角视角：可双击的“原始录入”记录（隐性光标暗示） */
.ad-logs .l-row.l-voice { cursor:text; border-bottom:1px dotted #5b4b3a; }
.ad-logs .l-row.l-voice::after {
  content:""; display:inline-block; width:0;
}
.ad-logs .l-voice-body {
  max-height:0; opacity:0; overflow:hidden; color:#8a7b5e;
  font-size:12px; line-height:1.8; padding:0 12px 0 130px;
  background:#2a2b2f; border-left:2px solid #6b5a38;
  transition:max-height 1.1s ease, opacity 1.1s ease, padding .6s ease;
}
.ad-logs .l-voice-body.open { max-height:160px; opacity:1; padding:8px 12px 10px 130px; }
.ad-note {
  margin:0 16px; padding:10px 14px; border:1px solid #45484e;
  background:#34373d; font-size:12px; color:#9a9ea6;
}
.ad-btns { padding:18px 16px 30px; display:flex; gap:16px; justify-content:center; }
.ad-btn {
  padding:6px 26px; border:1px solid #666; background:#45484e;
  color:#b9bcc2; font-size:13px; cursor:pointer; font-family:inherit;
}
.ad-btn:hover { border-color:#aaa; color:#e8e6df; }
.ad-btn.secret { display:none; }
.ad-btn.secret.show { display:inline-block; }

/* ============ 日记页 ============ */
.p-diary {
  min-height:100%; background:#2c2620;
  padding:30px 20px;
}
.diary-book {
  width:760px; margin:0 auto;
  background:#efe6cc;
  background-image:repeating-linear-gradient(to bottom, transparent 0 31px, rgba(120,110,80,.22) 31px 32px);
  border:1px solid #8a7c5c;
  box-shadow:0 10px 40px rgba(0,0,0,.6);
  padding:34px 46px;
  font-family:"Kaiti SC","STKaiti","楷体","KaiTi",serif;
  color:#463c26;
}
.diary-book h2 { text-align:center; font-size:24px; margin-bottom:20px; }
.diary-page { padding:10px 0 22px; border-bottom:1px dashed #b8aa86; }
.diary-page:last-of-type { border-bottom:none; }
.diary-date { font-size:15px; color:#7a6a4a; margin-bottom:6px; }
.diary-text { font-size:19px; line-height:32px; }
.diary-thanks {
  margin-top:24px; color:rgba(120,100,70,.22); font-size:17px; text-align:right;
}

/* ============ 动态异化 ============ */
body.corr2 .data-table a, body.corr2 .h-news a { text-shadow:0 0 1px rgba(0,0,0,.18); }
body.corr2 .nav-item { text-shadow:0 0 1px rgba(0,0,0,.15); }
body.corr3 img { filter:sepia(.12) hue-rotate(-6deg); }
body.corr3 .data-table, body.corr3 .board-table { border-style:dashed; }
body.corr3 #crt-flicker { animation-duration:4s; }
body.corr4 .garble::after { content:attr(data-garble); }
.flicker-text { animation:txtflick 3s steps(1) infinite; }
@keyframes txtflick { 0%,91%,100% { opacity:1; } 92% { opacity:.4; } 93% { opacity:1; } 95% { opacity:.6; } 96% { opacity:1; } }
.glitch {
  position:relative;
}
.glitch::before {
  content:attr(data-text); position:absolute; left:0; top:0;
  color:rgba(180,30,30,.16); transform:translate(1px,0); pointer-events:none;
}
.dimmed { opacity:0; }

/* ============ 铭记结局：泛黄 + 留言定格 ============ */
#page-mount.remember-sepia {
  filter:sepia(.32) saturate(1.05) brightness(1.02);
  transition:filter 3.5s ease;
}
#rememberRow.remember-glow {
  animation:rememberGlow 3.4s ease forwards;
}
@keyframes rememberGlow {
  0%   { background:#fff; box-shadow:0 0 0 rgba(214,178,96,0); }
  45%  { background:#f6ead0; box-shadow:0 0 22px rgba(214,178,96,.55); }
  100% { background:#f3e7cc; box-shadow:0 0 10px rgba(214,178,96,.28); }
}
