/* ============================================================
   黄庄一中 · 全站共享样式
   （配色只需改最上面的 :root 变量，全站会自动更新）
   ============================================================ */
:root{
  --blue:#1b4e8e;         /* 主色：深蓝 */
  --blue-dark:#153e6e;    /* 深蓝（较深） */
  --blue-deep:#0b2344;    /* 深蓝（最深，用于 Banner/页脚） */
  --gold:#c9a15a;         /* 点缀：金色 */
  --gold-soft:#f0e4c6;    /* 浅金 */
  --bg:#f5f7fa;           /* 页面底色 */
  --paper:#ffffff;        /* 卡片底色 */
  --ink:#242a32;          /* 正文文字 */
  --ink-soft:#5a6270;     /* 次要文字 */
  --line:#e3e8ef;         /* 分隔线 */
  --gray:#9aa3ae;
  --ph:#b6bcc4;           /* 占位文字 / 发布时间 浅灰 */
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC",sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
.serif{font-family:"Noto Serif SC","STSong","SimSun",serif;}

/* ===== SVG 校徽定义 ===== */
.svg-defs{position:absolute;width:0;height:0;overflow:hidden;}

/* ===== 左侧竖向导航 ===== */
.side{
  position:fixed;left:0;top:0;bottom:0;width:80px;
  background:var(--paper);
  box-shadow:2px 0 18px rgba(15,30,60,.08);
  z-index:100;
  display:flex;flex-direction:column;align-items:center;
}
.side-bar{width:80px;display:flex;flex-direction:column;align-items:center;padding:18px 0 22px;}
.side-logo{width:54px;height:54px;display:block;transition:transform .3s;}
.side-logo:hover{transform:rotate(-6deg);}
.side-logo svg{width:100%;height:100%;}
.side-navbtn{
  margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:6px;
  background:none;border:none;cursor:pointer;color:var(--blue);
  font-size:13px;letter-spacing:4px;
}
.side-navbtn i{
  width:22px;height:2px;background:var(--blue);position:relative;display:block;
}
.side-navbtn i::before,.side-navbtn i::after{
  content:"";position:absolute;left:0;width:22px;height:2px;background:var(--blue);
}
.side-navbtn i::before{top:-6px;}
.side-navbtn i::after{top:6px;}
/* 悬浮展开菜单 */
.side-menu{
  position:absolute;left:80px;top:0;bottom:0;width:236px;
  background:var(--paper);
  border-left:1px solid var(--line);
  box-shadow:8px 0 24px rgba(15,30,60,.10);
  padding:26px 0 30px;
  overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateX(-14px);
  transition:all .26s ease;
  z-index:101;
}
.side:hover .side-menu{opacity:1;visibility:visible;transform:translateX(0);}
.side-menu > ul{display:flex;flex-direction:column;}
.side-menu .m-item > a{
  display:block;padding:11px 26px;font-size:16px;font-weight:600;color:var(--ink);
  letter-spacing:1px;position:relative;transition:all .18s;
}
.side-menu .m-item > a:hover,
.side-menu .m-item.on > a{color:var(--blue);background:linear-gradient(90deg,rgba(27,78,142,.06),transparent);}
.side-menu .m-item > a::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:0;background:var(--blue);transition:height .2s;
}
.side-menu .m-item > a:hover::before,
.side-menu .m-item.on > a::before{height:22px;}
.side-menu .sub{padding:4px 26px 10px 40px;display:flex;flex-direction:column;}
.side-menu .sub a{
  padding:6px 0;font-size:14px;color:var(--ink-soft);position:relative;transition:color .15s;
}
.side-menu .sub a:hover{color:var(--blue);}
.side-menu .sub a::before{content:"·";margin-right:6px;color:var(--gold);}
.side-menu .sub a.on{color:var(--blue);font-weight:600;}
.side-intl{
  margin:16px 26px 0;padding:12px 0 12px 14px;
  border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);
  color:var(--blue);font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px;
}
.side-intl svg{width:20px;height:20px;}

/* ===== 主体区域 ===== */
.main{margin-left:80px;}

/* 顶栏 */
.topbar{
  display:flex;align-items:center;gap:30px;
  padding:14px 34px;background:var(--paper);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:14px;}
.brand .brand-logo{width:52px;height:52px;flex-shrink:0;}
.brand .brand-logo svg{width:100%;height:100%;}
.brand h1{font-family:"Noto Serif SC","STSong",serif;font-size:27px;color:var(--blue);font-weight:800;letter-spacing:3px;line-height:1.1;}
.brand .brand-sub{font-size:12.5px;color:var(--ink-soft);letter-spacing:5px;margin-top:2px;}
.top-search{
  margin-left:auto;display:flex;align-items:center;height:40px;
  border:1px solid var(--line);border-radius:20px;padding:0 16px;background:#f8fafc;
}
.top-search input{border:none;background:none;outline:none;width:190px;font-size:14px;color:var(--ink);}
.top-search input::placeholder{color:var(--gray);}
.top-search button{background:none;border:none;cursor:pointer;display:flex;align-items:center;color:var(--blue);}

/* Banner */
.banner{position:relative;height:390px;overflow:hidden;background:var(--blue-deep);}
.slide{position:absolute;inset:0;opacity:0;animation:bannerFade 15s infinite;}
.slide:nth-child(1){animation-delay:0s;}
.slide:nth-child(2){animation-delay:5s;}
.slide:nth-child(3){animation-delay:10s;}
@keyframes bannerFade{
  0%{opacity:0;}5%{opacity:1;}31%{opacity:1;}36%{opacity:0;}100%{opacity:0;}
}
.slide-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.s1{background:radial-gradient(120% 140% at 80% 0%,#2f7bd1 0%,var(--blue) 42%,var(--blue-deep) 100%);}
.s2{background:radial-gradient(120% 150% at 15% 20%,#1e5aa8 0%,var(--blue-dark) 45%,#08172e 100%);}
.s3{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-deep) 55%,#071326 100%);}
.slide-watermark{position:absolute;right:8%;bottom:-34%;width:330px;height:330px;opacity:.14;}
.slide-watermark svg{width:100%;height:100%;}
.slide-text{position:relative;text-align:center;color:#fff;padding:0 40px;}
.slide-text .en{font-size:13px;letter-spacing:8px;text-transform:uppercase;color:var(--gold-soft);opacity:.9;}
.slide-text .cn{font-family:"Noto Serif SC","STSong",serif;font-size:54px;font-weight:800;letter-spacing:12px;margin:10px 0 8px;text-shadow:0 3px 18px rgba(0,0,0,.25);}
.slide-text .ph{font-size:15px;color:rgba(255,255,255,.72);letter-spacing:3px;}
.slide-line{width:56px;height:2px;background:var(--gold);margin:16px auto 0;}
.banner-dots{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:9px;z-index:5;}
.banner-dots i{width:30px;height:4px;background:rgba(255,255,255,.35);border-radius:2px;}
.banner-dots i:first-child{background:var(--gold);}

/* 通栏容器 */
.wp{max-width:1180px;margin:0 auto;padding:0 34px;}
.part{padding:52px 0;}
.part-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;}
.part-title h2{font-family:"Noto Serif SC","STSong",serif;font-size:28px;color:var(--blue);font-weight:800;letter-spacing:2px;}
.part-title span{display:block;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-top:4px;}
.part-more{font-size:14px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px;transition:color .15s;}
.part-more:hover{color:var(--blue);}
.part-more::after{content:"›";font-size:18px;line-height:1;}

/* ===== 校庆专栏 ===== */
.anniv{background:linear-gradient(180deg,var(--paper) 0%,#eef2f7 100%);border-top:1px solid var(--line);}
.anniv-grid{display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:34px;align-items:stretch;}
.anniv-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:24px 26px;position:relative;overflow:hidden;}
.anniv-card::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:34px solid var(--gold);border-left:34px solid transparent;opacity:.35;}
.anniv-label{font-size:13px;color:var(--gold);letter-spacing:3px;}
.timeline{margin-top:14px;display:flex;flex-direction:column;gap:14px;}
.timeline li{display:flex;gap:14px;align-items:flex-start;border-bottom:1px dashed var(--line);padding-bottom:12px;}
.timeline li:last-child{border-bottom:none;}
.t-date{text-align:center;color:var(--blue);font-weight:700;flex-shrink:0;width:44px;}
.t-date b{display:block;font-size:22px;font-family:Georgia,serif;line-height:1;}
.t-date span{font-size:11px;color:var(--ink-soft);letter-spacing:1px;}
.t-text{font-size:14px;color:var(--ph);}
.focus-box{margin-top:14px;}
.focus-img{height:120px;background:linear-gradient(135deg,#e7ecf2,#d3dbe5);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:13px;letter-spacing:2px;}
.focus-text{margin-top:12px;font-size:14px;color:var(--ph);}
.anniv-num{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--blue);}
.anniv-num .small{font-size:15px;letter-spacing:6px;color:var(--ink-soft);}
.anniv-num .big{font-family:Georgia,serif;font-size:74px;font-weight:800;line-height:1;margin:6px 0;color:var(--blue);}
.anniv-num .big i{font-style:normal;font-size:40px;}
.anniv-num .en{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);}

/* ===== 新闻动态 ===== */
.news-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;}
.news-main{position:relative;border-radius:4px;overflow:hidden;height:340px;background:linear-gradient(160deg,#ccd4de,#b8c2cf);display:flex;align-items:flex-end;}
.news-main::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,20,40,.78));}
.news-main-txt{position:relative;padding:26px;color:#fff;}
.news-main-txt .tag{display:inline-block;font-size:12px;letter-spacing:2px;background:var(--blue);padding:3px 10px;border-radius:2px;margin-bottom:12px;}
.news-main-txt h3{font-size:20px;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.9);}
.news-list{display:flex;flex-direction:column;gap:14px;}
.news-item{display:flex;gap:16px;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:4px;transition:all .18s;}
.news-item:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,30,60,.07);}
.news-item .d{text-align:center;color:var(--blue);font-weight:700;flex-shrink:0;width:46px;padding-top:2px;}
.news-item .d b{display:block;font-size:24px;font-family:Georgia,serif;line-height:1;}
.news-item .d span{font-size:11px;color:var(--ink-soft);letter-spacing:1px;}
.news-item .t{font-size:15px;color:var(--ph);line-height:1.5;}

/* ===== 通知公告 ===== */
.notice{background:var(--paper);border-top:1px solid var(--line);}
.notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.notice-card{position:relative;border:1px solid var(--line);border-radius:4px;padding:24px 22px;min-height:150px;background:#f8fafc;overflow:hidden;transition:all .18s;}
.notice-card:hover{border-color:var(--blue);}
.notice-card .d{font-family:Georgia,serif;font-size:13px;color:var(--gold);letter-spacing:1px;}
.notice-card .line{width:34px;height:2px;background:var(--blue);margin:12px 0;}
.notice-card .t{font-size:15px;color:var(--ph);line-height:1.6;}
.notice-card .deco{position:absolute;right:-20px;bottom:-20px;width:90px;height:90px;border-radius:50%;background:rgba(27,78,142,.05);}

/* ===== 教学科研 + 对外交流（双栏） ===== */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.col-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:26px;}
.row-list{display:flex;flex-direction:column;gap:16px;margin-top:8px;}
.row-item{display:flex;gap:16px;align-items:flex-start;padding-bottom:14px;border-bottom:1px dashed var(--line);}
.row-item:last-child{border-bottom:none;padding-bottom:0;}
.row-item .d{flex-shrink:0;width:46px;text-align:center;color:var(--blue);font-weight:700;}
.row-item .d b{display:block;font-size:22px;font-family:Georgia,serif;line-height:1;}
.row-item .d span{font-size:11px;color:var(--ink-soft);}
.row-item .c h3{font-size:15px;color:var(--ph);font-weight:600;margin-bottom:4px;}
.row-item .c p{font-size:13px;color:var(--gray);}
.thumb{height:96px;border-radius:3px;background:linear-gradient(135deg,#e7ecf2,#d3dbe5);display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:12px;letter-spacing:2px;}

/* ===== 校园映像 ===== */
.media{background:var(--paper);border-top:1px solid var(--line);}
.media-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:26px;}
.media-main{position:relative;height:280px;border-radius:4px;overflow:hidden;background:linear-gradient(150deg,#c8d2df,#aeb9c7);display:flex;align-items:center;justify-content:center;}
.media-main .play{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--blue);box-shadow:0 6px 22px rgba(0,0,0,.22);}
.media-main .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;background:linear-gradient(180deg,transparent,rgba(8,20,40,.7));color:rgba(255,255,255,.9);font-size:14px;letter-spacing:1px;}
.media-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.media-thumb{height:128px;border-radius:4px;background:linear-gradient(140deg,#e7ecf2,#d6dce5);display:flex;align-items:center;justify-content:center;color:var(--gray);font-size:12px;letter-spacing:1px;position:relative;overflow:hidden;}
.media-thumb::after{content:"▶";position:absolute;font-size:16px;color:rgba(27,78,142,.5);}

/* ===== Footer ===== */
.footer{background:#0d1e33;color:rgba(255,255,255,.78);}
.footer-icons{border-bottom:1px solid rgba(255,255,255,.10);}
.footer-icons .wp{display:flex;justify-content:space-between;padding-top:26px;padding-bottom:26px;gap:10px;flex-wrap:wrap;}
.ficon{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.7);transition:color .15s;width:80px;}
.ficon:hover{color:var(--gold-soft);}
.ficon svg{width:34px;height:34px;color:var(--gold);opacity:.85;}
.footer-main{padding:38px 0 30px;}
.footer-main .wp{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap;}
.f-brand{display:flex;flex-direction:column;align-items:center;gap:10px;width:170px;}
.f-brand svg{width:64px;height:64px;}
.f-brand .nm{font-family:"Noto Serif SC","STSong",serif;font-size:18px;color:#fff;letter-spacing:3px;}
.f-col{flex:1;min-width:180px;}
.f-col h4{font-size:15px;color:var(--gold-soft);margin-bottom:14px;font-weight:600;letter-spacing:1px;}
.f-col p,.f-col a{display:block;font-size:13.5px;color:rgba(255,255,255,.62);padding:4px 0;letter-spacing:1px;}
.f-col a:hover{color:var(--gold-soft);}
.f-note{width:100%;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.10);font-size:12.5px;color:rgba(255,255,255,.42);letter-spacing:1px;}
.footer-copy{border-top:1px solid rgba(255,255,255,.10);text-align:center;padding:16px 0;font-size:12.5px;color:rgba(255,255,255,.45);letter-spacing:1px;}

/* ===== 发布时间（右下角 · 浅灰） ===== */
.publish-time{
  position:fixed;right:16px;bottom:12px;
  color:var(--ph);
  font-size:12px;letter-spacing:1px;
  z-index:9999;pointer-events:none;user-select:none;
  text-shadow:0 1px 0 #fff;
}

/* 占位图片框 */
.img-ph{background:linear-gradient(135deg,#e7ecf2,#d3dbe5);color:var(--gray);display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:2px;}

/* ============================================================
   二级页面专用样式
   ============================================================ */
/* 页面顶部横幅 */
.sub-banner{
  background:linear-gradient(135deg,var(--blue) 0%,var(--blue-deep) 100%);
  padding:48px 0;color:#fff;position:relative;overflow:hidden;
}
.sub-banner::after{
  content:"";position:absolute;right:-70px;top:-70px;width:280px;height:280px;
  border-radius:50%;background:rgba(255,255,255,.05);
}
.sub-banner::before{
  content:"";position:absolute;left:12%;bottom:-140px;width:240px;height:240px;
  border-radius:50%;border:1px solid rgba(255,255,255,.08);
}
.sub-banner .wp{position:relative;}
.sub-banner h2{font-family:"Noto Serif SC","STSong",serif;font-size:34px;font-weight:800;letter-spacing:6px;}
.sub-banner .en{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--gold-soft);opacity:.9;margin-top:8px;}

/* 面包屑 */
.breadcrumb{padding:16px 0;font-size:13px;color:var(--gray);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.breadcrumb a{color:var(--ink-soft);transition:color .15s;}
.breadcrumb a:hover{color:var(--blue);}
.breadcrumb .sep{color:#c5ccd4;}
.breadcrumb .cur{color:var(--blue);}

/* 内容主体 */
.page-body{padding:12px 0 64px;}

/* 左内容 + 右侧栏布局 */
.with-aside{display:flex;gap:36px;align-items:flex-start;}
.with-aside .content{flex:1;min-width:0;}

/* 侧栏 */
.aside-col{width:280px;flex-shrink:0;}
.aside-box{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:20px;margin-bottom:22px;}
.aside-box h4{font-size:16px;color:var(--blue);margin-bottom:12px;padding-left:12px;border-left:3px solid var(--gold);font-weight:700;}
.aside-box ul li{border-bottom:1px dashed var(--line);}
.aside-box ul li:last-child{border-bottom:none;}
.aside-box ul li a{display:block;padding:9px 2px;font-size:14px;color:var(--ink-soft);transition:all .15s;}
.aside-box ul li a:hover{color:var(--blue);padding-left:8px;}
.aside-box ul li a.on{color:var(--blue);font-weight:600;}

/* 文章排版（内容页） */
.article h3{
  font-size:20px;color:var(--blue);margin:30px 0 12px;padding-left:14px;
  border-left:4px solid var(--gold);font-family:"Noto Serif SC","STSong",serif;font-weight:700;
}
.article h3:first-child{margin-top:0;}
.article .lead{font-size:17px;color:var(--ink-soft);line-height:1.9;margin-bottom:6px;}
.article p{font-size:15px;line-height:1.95;color:var(--ink);margin-bottom:14px;text-align:justify;}
.article p.ph-text{color:var(--ph);}

/* 数据卡片 */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:26px 0;}
.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;text-align:center;padding:28px 10px;transition:all .18s;}
.stat-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 8px 20px rgba(15,30,60,.07);}
.stat-card b{font-family:Georgia,serif;font-size:36px;color:var(--blue);display:block;line-height:1;}
.stat-card span{font-size:13px;color:var(--ink-soft);letter-spacing:2px;display:block;margin-top:10px;}

/* 学校历史 · 纵向时间轴 */
.history{position:relative;margin:8px 0 0;padding:6px 0 10px 26px;border-left:2px solid var(--line);}
.history-item{position:relative;padding:0 0 36px 24px;}
.history-item:last-child{padding-bottom:8px;}
.history-item::before{
  content:"";position:absolute;left:-33px;top:7px;width:12px;height:12px;
  border-radius:50%;background:var(--blue);border:3px solid #fff;
  box-shadow:0 0 0 2px var(--blue);
}
.history-item .y{font-family:Georgia,serif;font-size:24px;color:var(--blue);font-weight:700;line-height:1;}
.history-item h4{font-size:17px;margin:6px 0 8px;color:var(--ink);font-weight:700;}
.history-item p{font-size:14.5px;color:var(--ink-soft);line-height:1.85;text-align:justify;}

/* 列表页（新闻动态 / 通知公告） */
.list-page .item{
  display:flex;align-items:center;gap:22px;padding:20px 8px;
  border-bottom:1px dashed var(--line);transition:all .16s;
}
.list-page .item:hover{background:#f8fafc;padding-left:18px;}
.list-page .item .d{width:90px;text-align:center;color:var(--blue);flex-shrink:0;}
.list-page .item .d b{display:block;font-size:28px;font-family:Georgia,serif;line-height:1;}
.list-page .item .d span{font-size:12px;color:var(--ink-soft);letter-spacing:1px;}
.list-page .item .c{flex:1;min-width:0;}
.list-page .item .c h3{font-size:16.5px;font-weight:600;color:var(--ink);transition:color .15s;}
.list-page .item:hover .c h3{color:var(--blue);}
.list-page .item .c .sum{font-size:13.5px;color:var(--gray);margin-top:6px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.list-page .item .badge{font-size:12px;color:var(--gold);border:1px solid var(--gold);padding:2px 12px;border-radius:12px;flex-shrink:0;white-space:nowrap;}

/* 分页占位 */
.pager{display:flex;justify-content:center;gap:10px;margin-top:34px;}
.pager a,.pager span{min-width:38px;height:38px;line-height:38px;text-align:center;padding:0 8px;border:1px solid var(--line);border-radius:4px;font-size:14px;color:var(--ink-soft);background:var(--paper);}
.pager .cur{background:var(--blue);border-color:var(--blue);color:#fff;}
.pager a:hover{border-color:var(--blue);color:var(--blue);}

@media (max-width:920px){
  .side{display:none;}
  .main{margin-left:0;}
  .news-grid,.two-col,.media-grid,.anniv-grid,.notice-grid{grid-template-columns:1fr;}
  .top-search input{width:120px;}
  .with-aside{flex-direction:column;}
  .aside-col{width:100%;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
}

/* ============================================================
   日间 / 夜间模式
   ============================================================ */
/* 暗色主题变量（覆盖亮色变量） */
[data-theme="dark"]{
  --blue:#6ea8ff;
  --blue-dark:#7fb2ff;
  --blue-deep:#0d1b2e;
  --gold:#d8b46a;
  --gold-soft:#e6d2a6;
  --bg:#0e1218;
  --paper:#161b23;
  --ink:#e5e9f0;
  --ink-soft:#a9b2bf;
  --line:#262d38;
  --gray:#6c7582;
  --ph:#59616d;
}
/* 暗色下覆盖硬编码的浅色元素 */
[data-theme="dark"] .anniv{background:linear-gradient(180deg,var(--paper) 0%,#10151d 100%);}
[data-theme="dark"] .focus-img,
[data-theme="dark"] .thumb,
[data-theme="dark"] .img-ph,
[data-theme="dark"] .media-thumb{background:linear-gradient(135deg,#1c232d,#27303c);color:#59616d;}
[data-theme="dark"] .media-main{background:linear-gradient(150deg,#1b232e,#2a3440);}
[data-theme="dark"] .news-main{background:linear-gradient(160deg,#1a222d,#252f3b);}
[data-theme="dark"] .notice-card{background:#131822;}
[data-theme="dark"] .top-search{background:#131822;}
[data-theme="dark"] .list-page .item:hover{background:#131822;}
[data-theme="dark"] .history-item::before{border-color:#161b23;}
[data-theme="dark"] .publish-time{text-shadow:none;}
[data-theme="dark"] .sub-banner{background:linear-gradient(135deg,#16304f 0%,#0d1b2e 100%);}
[data-theme="dark"] .banner{background:#0d1b2e;}
[data-theme="dark"] .s1{background:radial-gradient(120% 140% at 80% 0%,#1d3f6e 0%,#16304f 42%,#0a1526 100%);}
[data-theme="dark"] .s2{background:radial-gradient(120% 150% at 15% 20%,#183a63 0%,#122a47 45%,#060d18 100%);}
[data-theme="dark"] .s3{background:linear-gradient(135deg,#16304f 0%,#0a1526 55%,#050b14 100%);}
/* 平滑过渡 */
body,.side,.side-menu,.topbar,.anniv-card,.col-card,.aside-box,.stat-card,.notice-card,.news-item,.list-page .item{transition:background-color .3s ease,color .3s ease,border-color .3s ease;}

/* ===== 日间/夜间 切换浮窗 ===== */
.theme-toggle{
  position:fixed;right:18px;bottom:60px;z-index:9998;
  width:46px;height:46px;border-radius:50%;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(15,30,60,.20);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--blue);transition:transform .2s ease;
}
.theme-toggle:hover{transform:scale(1.1);}
.theme-toggle svg{width:22px;height:22px;position:absolute;transition:opacity .25s ease,transform .3s ease;}
.theme-toggle .icon-sun{opacity:0;transform:scale(.4) rotate(-40deg);}
.theme-toggle .icon-moon{opacity:1;transform:scale(1);}
[data-theme="dark"] .theme-toggle .icon-sun{opacity:1;transform:scale(1) rotate(0);}
[data-theme="dark"] .theme-toggle .icon-moon{opacity:0;transform:scale(.4) rotate(40deg);}

/* ===== 暗色模式下才显示的内容（谜题彩蛋机制） ===== */
.dark-only{display:none !important;}
[data-theme="dark"] .dark-only{display:block !important;}
.dark-inline{display:none !important;}
[data-theme="dark"] .dark-inline{display:inline !important;}

/* ===== 顶栏"学生登录"入口 ===== */
.top-login{
  display:inline-flex;align-items:center;gap:6px;
  height:40px;padding:0 4px 0 16px;margin-left:16px;
  color:var(--blue);font-size:14px;font-weight:600;white-space:nowrap;
  border-left:1px solid var(--line);transition:color .15s;
}
.top-login:hover{color:var(--blue-dark);}
.top-login svg{width:16px;height:16px;}

/* ============================================================
   招生 / 登录 / 验证 页面
   ============================================================ */
/* 通用表单 */
.form-card{
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
  padding:34px 38px;max-width:720px;margin:0 auto;
  box-shadow:0 10px 30px rgba(15,30,60,.06);
}
.form-intro{font-size:14px;color:var(--ink-soft);line-height:1.8;margin-bottom:24px;padding:14px 16px;background:#f6f9fc;border-left:3px solid var(--gold);border-radius:3px;}
[data-theme="dark"] .form-intro{background:#1a212b;}
.form-row{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.form-row label{width:110px;text-align:right;font-size:14px;color:var(--ink);flex-shrink:0;}
.form-row label .req{color:#d84343;margin-left:2px;}
.form-row .field{flex:1;min-width:0;}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=tel],.field input[type=date],.field select{
  width:100%;height:42px;padding:0 14px;font-size:14px;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:4px;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,78,142,.10);}
[data-theme="dark"] .field input,[data-theme="dark"] .field select{background:#10141b;}
.field input::placeholder{color:var(--gray);}
.field .hint{font-size:12px;color:var(--gray);margin-top:5px;}
.radio-group{display:flex;gap:24px;align-items:center;height:42px;}
.radio-group label{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink);cursor:pointer;width:auto;text-align:left;}
.radio-group input{accent-color:var(--blue);}
.form-actions{margin-top:26px;text-align:center;}
.btn{
  display:inline-block;min-width:180px;height:46px;line-height:46px;padding:0 30px;
  background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;
  border:none;border-radius:4px;font-size:16px;letter-spacing:4px;cursor:pointer;
  transition:opacity .15s,transform .15s;box-shadow:0 6px 16px rgba(27,78,142,.25);
}
.btn:hover{opacity:.92;transform:translateY(-1px);}
.form-msg{display:none;margin-top:18px;padding:12px 16px;border-radius:4px;font-size:14px;line-height:1.7;text-align:left;}
.form-msg.ok{background:rgba(39,174,96,.10);color:#1e8e52;border:1px solid rgba(39,174,96,.3);}
.form-msg.err{background:rgba(216,67,67,.08);color:#c0392b;border:1px solid rgba(216,67,67,.3);}

/* 登录页 */
.login-wrap{min-height:calc(100vh - 320px);display:flex;align-items:center;justify-content:center;padding:56px 0;}
.login-card{
  width:400px;max-width:92vw;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;padding:40px 38px;box-shadow:0 16px 40px rgba(15,30,60,.10);
}
.login-card .logo{width:60px;height:60px;margin:0 auto 14px;display:block;}
.login-card .logo svg{width:100%;height:100%;}
.login-card h2{font-family:"Noto Serif SC","STSong",serif;font-size:22px;color:var(--blue);text-align:center;letter-spacing:3px;}
.login-card .sub{text-align:center;font-size:13px;color:var(--gray);letter-spacing:2px;margin:6px 0 26px;}
.login-field{margin-bottom:16px;}
.login-field label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:7px;letter-spacing:1px;}
.login-field input{width:100%;height:46px;padding:0 14px;font-size:14px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:5px;outline:none;transition:border-color .15s,box-shadow .15s;}
.login-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,78,142,.10);}
[data-theme="dark"] .login-field input{background:#10141b;}
.login-field input::placeholder{color:var(--gray);}
.login-extra{display:flex;justify-content:space-between;align-items:center;margin:6px 0 20px;font-size:13px;}
.login-extra a{color:var(--blue);}
.login-extra a:hover{text-decoration:underline;}
.login-tip{margin-top:18px;padding:12px 14px;font-size:12.5px;color:var(--ink-soft);background:#f6f9fc;border-radius:4px;line-height:1.7;}
[data-theme="dark"] .login-tip{background:#1a212b;}
.login-foot{margin-top:20px;text-align:center;font-size:13px;color:var(--gray);}
.login-foot a{color:var(--blue);}

/* 验证成功页 */
.verify-wrap{min-height:calc(100vh - 320px);display:flex;align-items:center;justify-content:center;padding:56px 0;}
.verify-card{text-align:center;max-width:440px;width:92vw;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:52px 40px;box-shadow:0 16px 40px rgba(15,30,60,.10);}
.verify-icon{width:74px;height:74px;border-radius:50%;background:rgba(39,174,96,.12);margin:0 auto 22px;display:flex;align-items:center;justify-content:center;color:#27ae60;}
.verify-icon svg{width:38px;height:38px;}
.verify-card h2{font-family:"Noto Serif SC","STSong",serif;font-size:26px;color:var(--ink);letter-spacing:3px;}
.verify-card .msg{font-size:14.5px;color:var(--ink-soft);line-height:1.8;margin:14px 0 6px;}
.verify-card .count{font-size:13px;color:var(--gray);margin:20px 0 26px;}
.verify-card .count b{color:var(--blue);font-size:16px;}


/* ===== 现任领导卡片 ===== */
.leader-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin:10px 0;}
.leader-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:26px 20px;transition:all .18s;}
.leader-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 8px 20px rgba(15,30,60,.07);}
.leader-card .post{font-size:13px;color:var(--gold);letter-spacing:2px;margin-bottom:8px;}
.leader-card .name{font-family:"Noto Serif SC","STSong",serif;font-size:22px;color:var(--blue);font-weight:700;margin-bottom:10px;}
.leader-card p{font-size:14px;color:var(--ink-soft);line-height:1.8;margin:0;text-align:justify;}


/* ===== 邮箱系统 ===== */
.mail-page{background:linear-gradient(160deg,#eef3f8 0%,#f7f9fc 100%);min-height:100vh;}
.mail-wrap{max-width:720px;margin:0 auto;padding:48px 20px 60px;}
.mail-brand{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:28px;text-decoration:none;}
.mail-brand .brand-logo{width:52px;height:52px;flex-shrink:0;}
.mail-brand .brand-logo svg{width:100%;height:100%;}
.mail-brand h1{font-family:"Noto Serif SC","STSong",serif;font-size:26px;color:var(--blue);font-weight:800;letter-spacing:2px;}
.mail-brand-sub{font-size:11px;letter-spacing:3px;color:var(--ink-soft);margin-top:2px;}
.mail-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:32px 30px;box-shadow:0 10px 30px rgba(15,30,60,.06);margin-bottom:18px;}
.mail-card h2{font-size:22px;color:var(--blue);text-align:center;margin-bottom:4px;font-family:"Noto Serif SC","STSong",serif;}
.mail-card .sub{text-align:center;font-size:13px;color:var(--gray);margin-bottom:24px;}
.mail-back{margin-top:18px;text-align:center;font-size:13px;color:var(--gray);}
.mail-back a{color:var(--blue);}
.mail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.mail-head h2{font-size:20px;color:var(--blue);text-align:left;margin:0;}
.mail-logout,.mail-back-btn{font-size:13px;color:var(--blue);cursor:pointer;background:none;border:none;padding:0;}
.mail-list{border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.mail-item{display:flex;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s;align-items:center;}
.mail-item:last-child{border-bottom:none;}
.mail-item:hover{background:#f4f8fc;}
.mail-item.unread .mi-subject{font-weight:700;}
.mi-from{width:110px;font-weight:600;color:var(--ink);flex-shrink:0;}
.mi-subject{flex:1;color:var(--ink);}
.mi-time{font-size:12px;color:var(--gray);flex-shrink:0;}
.mail-title{font-size:19px;color:var(--ink);margin-bottom:14px;}
.mail-meta{border:1px solid var(--line);background:#f8fafc;border-radius:6px;padding:14px 16px;font-size:13px;color:var(--ink-soft);line-height:1.9;margin-bottom:18px;}
.mail-body{font-size:15px;line-height:1.9;color:var(--ink);}
.mail-body p{margin-bottom:12px;}
.mail-cred{background:#faf3e0;border:1px dashed #d9b64a;border-radius:6px;padding:16px 18px;margin:16px 0;line-height:2;}
.mail-cred b{font-family:Georgia,monospace;font-size:18px;color:#7a5c00;letter-spacing:1px;}
.mail-foot{text-align:center;font-size:12px;color:var(--gray);margin-top:24px;}


/* ===== Outlook 风格邮箱 ===== */
.ol-page{margin:0;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;}

.ol-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef3f8 0%,#e3ecf7 100%);padding:24px;}
.ol-login-card{width:100%;max-width:400px;background:#fff;border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.12);padding:40px 36px;}
.ol-login-brand{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:8px;}
.ol-logo{width:48px;height:48px;flex-shrink:0;}
.ol-logo svg{width:100%;height:100%;}
.ol-brand-name{font-family:"Noto Serif SC","STSong",serif;font-size:22px;font-weight:700;color:#1b4e8e;}
.ol-brand-sub{font-size:11px;letter-spacing:2px;color:#7a8699;margin-top:2px;}
.ol-login-card h1{font-size:22px;color:#222;margin:18px 0 20px;font-weight:600;text-align:center;}
.ol-field{margin-bottom:14px;}
.ol-field input{width:100%;padding:12px 14px;border:1px solid #d5dbe3;border-radius:4px;font-size:14px;outline:none;transition:border-color .15s;box-sizing:border-box;}
.ol-field input:focus{border-color:#0078d4;box-shadow:0 0 0 2px rgba(0,120,212,.15);}
.ol-msg{min-height:20px;font-size:13px;color:#c0392b;margin-bottom:8px;}
.ol-btn-primary{display:inline-block;padding:12px 26px;background:#0078d4;color:#fff;border:none;border-radius:4px;font-size:15px;cursor:pointer;text-align:center;text-decoration:none;transition:background .15s;}
.ol-btn-primary:hover{background:#0063b1;}
form .ol-btn-primary{display:block;width:100%;}

.ol-help{margin-top:18px;border-top:1px solid #eef0f3;padding-top:14px;}
.ol-help-toggle{display:block;width:100%;text-align:center;background:none;border:none;color:#0078d4;font-size:13px;cursor:pointer;padding:6px;}
.ol-help-toggle:hover{text-decoration:underline;}
.ol-help-q-wrap{margin-top:8px;border:1px solid #e3e8ee;border-radius:6px;overflow:hidden;}
.ol-help-q{display:block;width:100%;text-align:left;background:#f7f9fb;border:none;border-bottom:1px solid #e3e8ee;color:#333;font-size:13px;cursor:pointer;padding:10px 14px;}
.ol-help-q:hover{background:#eef3f8;}
.ol-help-a{padding:10px 14px;font-size:13px;color:#555;background:#fff;}
.ol-help-a b{color:#0078d4;font-family:Consolas,Menlo,monospace;font-size:14px;letter-spacing:1px;}

.ol-login-foot{margin-top:18px;text-align:center;font-size:13px;color:#8892a0;}
.ol-login-foot a{color:#0078d4;}
.ol-login-foot span{margin:0 8px;}

.ol-app{display:flex;flex-direction:column;height:100vh;background:#fff;}
.ol-topbar{display:flex;align-items:center;gap:18px;padding:0 18px;height:52px;background:#fff;border-bottom:1px solid #e5e9ee;}
.ol-app-brand{display:flex;align-items:center;gap:8px;}
.ol-logo-sm{width:28px;height:28px;flex-shrink:0;}
.ol-logo-sm svg{width:100%;height:100%;}
.ol-app-name{font-size:15px;color:#1b4e8e;font-weight:600;}
.ol-search{display:flex;align-items:center;gap:8px;flex:1;max-width:420px;background:#f1f3f5;border-radius:20px;padding:7px 14px;color:#7a8699;}
.ol-search input{border:none;background:none;outline:none;flex:1;font-size:13px;}
.ol-user{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:13px;color:#444;}
.ol-user button{background:none;border:1px solid #d5dbe3;border-radius:4px;color:#444;font-size:12px;padding:5px 12px;cursor:pointer;}
.ol-user button:hover{background:#f1f3f5;}

.ol-body{display:flex;flex:1;min-height:0;}
.ol-side{width:200px;flex-shrink:0;background:#f6f8fa;border-right:1px solid #e5e9ee;padding:16px 12px;overflow-y:auto;}
.ol-compose{width:100%;padding:10px;background:#0078d4;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;margin-bottom:16px;}
.ol-compose:hover{background:#0063b1;}
.ol-folders{display:flex;flex-direction:column;gap:2px;}
.ol-folder{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:4px;font-size:13.5px;color:#333;cursor:pointer;}
.ol-folder:hover{background:#e8eef5;}
.ol-folder.active{background:#d3e7fb;color:#0b57d0;font-weight:600;}
.ol-folder b{font-size:12px;color:#5a6b7f;font-weight:400;}

.ol-list{width:320px;flex-shrink:0;border-right:1px solid #e5e9ee;overflow-y:auto;}
.ol-list-header{padding:14px 18px;font-size:17px;font-weight:600;color:#222;border-bottom:1px solid #eef0f3;}
.ol-mail-item{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #eef0f3;cursor:pointer;}
.ol-mail-item:hover{background:#f5f8fb;}
.ol-mail-item.active{background:#e8f0fe;}
.ol-mail-item.unread .oli-subject{font-weight:700;}
.oli-from{width:88px;font-size:13px;color:#333;font-weight:600;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.oli-subject{flex:1;font-size:13px;color:#444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.oli-time{font-size:12px;color:#8892a0;flex-shrink:0;}

.ol-read{flex:1;min-width:0;overflow-y:auto;background:#fff;}
.ol-read-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#b0b9c5;}
.ol-read-empty-ico{font-size:44px;margin-bottom:10px;}
.ol-read-empty p{font-size:14px;}
.ol-read-content{padding:28px 36px;max-width:760px;}
.orc-subject{font-size:21px;font-weight:600;color:#222;margin-bottom:16px;}
.orc-meta{border-bottom:1px solid #eef0f3;padding-bottom:14px;margin-bottom:20px;font-size:13px;color:#5a6b7f;line-height:1.8;}
.orc-from{font-size:14px;color:#333;font-weight:600;}
.orc-body{font-size:15px;line-height:1.9;color:#333;}
.orc-body p{margin-bottom:12px;}
.ol-cred{background:#eaf3fd;border:1px solid #c4ddfa;border-radius:6px;padding:14px 18px;margin:16px 0;line-height:2;}
.ol-cred b{font-family:Consolas,Menlo,monospace;font-size:17px;color:#0b57d0;letter-spacing:1px;}


/* ===== 图书馆 ===== */
.lib-entry{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;margin:8px 0;}
.lib-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:22px 20px;text-decoration:none;transition:all .18s;}
.lib-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 8px 20px rgba(15,30,60,.07);}
.lib-card b{display:block;font-size:17px;color:var(--blue);margin-bottom:8px;font-family:"Noto Serif SC","STSong",serif;}
.lib-card span{font-size:13px;color:var(--ink-soft);}

/* ===== 每月好书 书评 ===== */
.review{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:30px 32px;}
.review-title{font-family:"Noto Serif SC","STSong",serif;font-size:24px;color:var(--blue);font-weight:700;margin-bottom:10px;}
.review-author{font-size:13px;color:var(--gray);padding-bottom:16px;border-bottom:1px dashed var(--line);margin-bottom:20px;}
.review-body p{font-size:15.5px;line-height:2.1;color:var(--ink);margin-bottom:12px;text-align:justify;}
.review-line{cursor:default;}
.review-line .rv-hidden{display:none;}
[data-theme=dark] .review-line.erased .rv-visible{display:none;}
[data-theme=dark] .review-line.erased .rv-hidden{display:inline;color:#ff8a80;font-weight:600;letter-spacing:.5px;}

.book-info li{display:block;padding:6px 2px;font-size:13.5px;color:var(--ink-soft);line-height:1.7;border-bottom:1px dashed var(--line);}
.book-info li:last-child{border-bottom:none;}
