/* 罕瑞hr · 全站样式 — 白色极简 */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
*:focus{outline:none}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",sans-serif;background:#fff;color:#1d1d1f;-webkit-font-smoothing:antialiased;line-height:1.6;-webkit-text-size-adjust:100%;text-size-adjust:100%}
a{color:#1d1d1f;text-decoration:none}
img{max-width:100%;display:block}

.app{max-width:480px;margin:0 auto;padding:0 0 20px;min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.top{flex-shrink:0}

/* 顶部 */
.top{position:sticky;top:0;background:#fff;border-bottom:1px solid #f0f0f2;z-index:90}
.top-in{max-width:480px;margin:0 auto;padding:7px 16px;display:flex;align-items:center;justify-content:space-between}
.top .logo{font-size:15px;font-weight:700;letter-spacing:2px}
.top .logo small{font-size:10px;color:#c7c7cc;font-weight:400;letter-spacing:1px;margin-left:4px}
.nav{display:flex;gap:10px;overflow-x:auto;padding:2px 16px 6px;max-width:480px;margin:0 auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:wrap}
.nav::-webkit-scrollbar{display:none}
.nav a{font-size:12.5px;color:#86868b;white-space:nowrap;padding:4px 2px;border-bottom:2px solid transparent;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center}
.nav a.act{color:#1d1d1f;font-weight:600;border-bottom-color:#1d1d1f}
.nav a:active,.nav a:focus{background:transparent}

/* 区块 */
.sec{padding:26px 16px 0}
.sec h1, .sec h2{font-size:16px;font-weight:600;letter-spacing:1px;display:flex;align-items:baseline;justify-content:space-between}
.sec h2 .more{font-size:11px;color:#c7c7cc;font-weight:400;letter-spacing:0}
.sec .line{width:22px;height:2px;background:#1d1d1f;margin:8px 0 14px}

/* 按钮 */
.btn{display:inline-block;background:#1d1d1f;color:#fff;font-size:14px;font-weight:500;letter-spacing:1px;padding:11px 32px;border-radius:24px;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.btn:active{opacity:.85}
.btn.ghost{background:#fff;color:#1d1d1f;border:1px solid #e8e8ed}
.btn.sm{font-size:12px;padding:7px 18px}

/* Hero */
.hero{padding:40px 28px 28px;text-align:center;border-bottom:1px solid #f0f0f2}
.hero .avatar{width:88px;height:88px;border-radius:50%;border:2px solid #f0f0f2;margin:0 auto 16px;overflow:hidden;background:#f5f5f7}
.hero .avatar img{width:100%;height:100%;object-fit:cover}
.hero h1{font-size:28px;font-weight:700;letter-spacing:6px;margin-bottom:6px}
.hero .cn{font-size:13px;color:#86868b;letter-spacing:4px;margin-bottom:16px}
.hero .btns{display:flex;gap:10px;justify-content:center}

/* 公告 */
.announce{background:#fafafa;border:1px solid #f0f0f2;border-radius:12px;padding:14px 16px;margin:16px 0 0}
.announce .a-title{font-size:13px;font-weight:600;margin-bottom:4px}
.announce .a-content{font-size:12px;color:#86868b;white-space:pre-line}
.announce .a-time{font-size:10px;color:#c7c7cc;margin-top:6px}

/* 超话引导 */
.guide-card{background:#fff;border:1px solid #e8e8ed;border-radius:14px;padding:18px 16px;text-align:center;margin-top:14px}
.guide-card .g-t{font-size:15px;font-weight:700;letter-spacing:1px;margin-bottom:6px}
.guide-card .g-d{font-size:12px;color:#86868b;margin-bottom:12px}
.guide-stats{display:flex;justify-content:center;gap:20px;margin-bottom:14px}
.guide-stats .gs{text-align:center}
.guide-stats .gs b{font-size:16px;font-weight:700;display:block}
.guide-stats .gs span{font-size:10px;color:#c7c7cc}

.stat-note{font-size:10.5px;color:#c7c7cc;text-align:center;margin-top:10px}

/* 文章列表 */
.post-item{display:block;border:1px solid #e8e8ed;border-radius:12px;padding:14px 16px;margin-bottom:10px}
.post-item .pi-t{font-size:14px;font-weight:600;margin-bottom:4px}
.post-item .pi-d{font-size:11.5px;color:#86868b;display:flex;justify-content:space-between}
.post-item .pi-p{font-size:12px;color:#48484a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}

/* 文章详情 */
.article{padding:24px 18px 0}
.article h1{font-size:20px;font-weight:700;letter-spacing:.5px;margin-bottom:8px}
.article .meta{font-size:11px;color:#c7c7cc;margin-bottom:20px}
.article .content{font-size:14px;color:#48484a;line-height:1.9;white-space:pre-line;word-break:break-word}

/* 相册 */
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;align-items:start}
.photo-grid a{aspect-ratio:auto;border-radius:8px;overflow:hidden;background:#f2f2f4;border:1px solid #f0f0f2;display:block}
.photo-grid img{width:100%;height:auto;display:block;object-fit:contain;transition:transform .2s}
.photo-grid img:active{transform:scale(1.03)}
/* 首页视频框（B站风格：2列大卡片、16:9封面、标题两行截断、删了自动补位） */
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.video-grid a{display:block;border-radius:10px;overflow:hidden;background:#fff;border:1px solid #e8e8ed;text-decoration:none;-webkit-tap-highlight-color:transparent}
.video-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.v-noimg{width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:13px;color:#86868b;background:#f5f5f7;padding:0 14px;text-align:center;line-height:1.5}
.v-title{font-family:inherit;font-size:13px;color:#1d1d1f;padding:8px 10px 10px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* 图片放大预览 */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:100;display:none;align-items:center;justify-content:center;flex-direction:column}
.lightbox img{max-width:94vw;max-height:82vh;object-fit:contain;border-radius:6px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:40px;padding:16px;cursor:pointer;opacity:.8;user-select:none}
.lb-prev{left:4px}.lb-next{right:4px}
.lb-close{position:absolute;top:14px;right:18px;color:#fff;font-size:22px;cursor:pointer;padding:8px;opacity:.8}
.lb-cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#e8e8ed;font-size:13px;padding:0 30px}

/* 视频 */
.video-item{border:1px solid #e8e8ed;border-radius:12px;overflow:hidden;margin-bottom:12px;display:flex;flex-direction:column}
.video-item video{width:100%;display:block;background:#000}
.video-item .click-area{position:relative;cursor:pointer;display:block}
.video-item .v-t{font-size:13px;font-weight:600;padding:10px 14px;min-height:44px;display:flex;align-items:flex-start;box-sizing:border-box;flex:1 0 auto;line-height:1.45}

/* 互动板 */
.board-form{border:1px solid #e8e8ed;border-radius:14px;padding:14px;margin-top:12px}
.board-form textarea{width:100%;border:1px solid #e8e8ed;border-radius:8px;padding:10px;font-size:13px;font-family:inherit;resize:vertical;min-height:72px;outline:none;color:#1d1d1f}
.board-form input{width:100%;border:1px solid #e8e8ed;border-radius:8px;padding:8px 10px;font-size:12px;font-family:inherit;outline:none;color:#1d1d1f;margin-bottom:8px}
.board-form .bf-row{display:flex;gap:8px;align-items:center;justify-content:space-between}
.board-form .bf-row .btn{font-size:12px;padding:8px 22px}
.msg{border:1px solid #f0f0f2;border-radius:12px;padding:12px 14px;margin-bottom:8px}
.msg .m-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.msg .m-name{font-size:12.5px;font-weight:600}
.msg .m-loc{font-size:10px;color:#c7c7cc;margin-left:6px}
.msg .m-time{font-size:10px;color:#d1d1d6}
.msg .m-content{font-size:13px;color:#48484a;white-space:pre-line;word-break:break-word}

/* 档案 */
.profile-pair{display:flex;gap:10px;margin-top:12px}
.profile-card{flex:1;border:1px solid #e8e8ed;border-radius:14px;padding:16px 12px;text-align:center}
.profile-card .p-name{font-size:17px;font-weight:700;letter-spacing:1px;margin-bottom:2px}
.profile-card .p-role{font-size:11px;color:#86868b;margin-bottom:10px}
.profile-card .p-emoji{font-size:26px;margin-bottom:8px}
.profile-card table{width:100%;font-size:11.5px;text-align:left;border-collapse:collapse}
.profile-card td{padding:4px 2px;border-bottom:1px solid #f5f5f7}
.profile-card td:first-child{color:#c7c7cc;width:34%}
.profile-card tr:last-child td{border-bottom:none}
.words{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.words .w{font-size:11.5px;color:#48484a;background:#fafafa;border:1px solid #f0f0f2;border-radius:16px;padding:5px 12px}
.admin-group{font-size:11px;color:#86868b;letter-spacing:1px;margin:14px 0 -4px}
.admin-apply{font-size:11px;color:#c7c7cc;text-align:center;letter-spacing:1px;margin-top:16px;padding-top:12px;border-top:1px solid #f5f5f7}
.info-block{margin-top:16px}

/* 时间线 */
.timeline{position:relative;margin:10px 0 20px}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:#1d1d1f;transform:translateX(-50%)}
.tl-item{position:relative;width:50%;padding:0 18px 26px;box-sizing:border-box}
.tl-item.left{left:0;text-align:right}
.tl-item.right{left:50%;text-align:left}
.tl-item::after{content:'';position:absolute;top:14px;width:2px;height:1px;background:#1d1d1f}
.tl-item.left::after{right:0}
.tl-item.right::after{left:0}
.tl-dot{position:absolute;top:10px;width:10px;height:10px;border-radius:50%;background:#1d1d1f;z-index:1}
.tl-item.left .tl-dot{right:-5px}
.tl-item.right .tl-dot{left:-5px}
.tl-card{display:inline-block;background:#fff;border:1px solid #e8e8ed;border-radius:12px;padding:10px 14px;text-align:left;max-width:100%}
.tl-date{font-size:11.5px;font-weight:600;color:#1d1d1f;letter-spacing:.5px;margin-bottom:3px}
.tl-text{font-size:12px;color:#86868b}

/* 管理后台 */
.admin-form{border:1px solid #e8e8ed;border-radius:14px;padding:16px;margin-bottom:14px}
.admin-form h3{font-size:14px;font-weight:600;margin-bottom:10px}
.admin-form input[type=text],.admin-form input[type=password],.admin-form input[type=datetime-local],.admin-form input[type=date],.admin-form input[type=month],.admin-form select,.admin-form textarea{width:100%;border:1px solid #e8e8ed;border-radius:8px;padding:9px 10px;font-size:13px;font-family:inherit;outline:none;color:#1d1d1f;margin-bottom:8px;background:#fff;box-sizing:border-box}
.admin-form textarea{min-height:110px;resize:vertical}
.admin-form input[type=file]{font-size:12px;margin-bottom:8px;color:#86868b}
.admin-form .btn{font-size:12px;padding:8px 22px}
.login-box{max-width:320px;margin:16px auto;text-align:center}
.login-box input{width:100%;border:1px solid #e8e8ed;border-radius:10px;padding:11px;font-size:14px;text-align:center;outline:none;margin-bottom:10px}
.flash{font-size:12px;color:#ff3b30;margin-bottom:10px}

/* 倒计时横版 */
.countdown-row{display:flex;gap:8px}
.cd-item{flex:1;border:1px solid #e8e8ed;border-radius:12px;padding:12px 4px 10px;text-align:center;background:#fff}
.cd-name{font-size:10px;color:#86868b;margin-bottom:5px;white-space:nowrap}
.cd-num{font-size:20px;font-weight:700;line-height:1.2}
.cd-num.cd-today{font-size:15px;color:#1d1d1f;white-space:nowrap}
.cd-num span{font-size:10px;font-weight:400;color:#c7c7cc;margin-left:1px}
.cd-date{font-size:9.5px;color:#c7c7cc;margin-top:3px}

/* 投票 */
.poll-opt{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid #f5f5f7;cursor:pointer}
.poll-opt:last-child{border-bottom:none}
.poll-opt:active{opacity:.7}
.po-radio{width:20px;height:20px;border-radius:50%;border:1.5px solid #d1d1d6;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s;background:#fff}
.po-radio.checked{border-color:#1d1d1f;background:#1d1d1f}
.po-radio.checked::after{content:'✓';color:#fff;font-size:11px;font-weight:700}
.po-label{font-size:13px;color:#1d1d1f;flex:1;min-width:0}
.po-bar{flex:1;height:8px;background:#f5f5f7;border-radius:4px;overflow:hidden;max-width:34%}
.po-bar span{display:block;height:100%;background:#1d1d1f;border-radius:4px}
.po-pct{font-size:12px;color:#86868b;width:38px;text-align:right;flex-shrink:0}

/* 后台管理区块：锚点/菜单跳转时预留顶栏高度，避免被遮住 */
.admin-form{scroll-margin-top:118px}
/* 后台表单增强：分组+标签+说明 */
.admin-form .form-tip-all{font-size:11px;color:#86868b;background:#f5f5f7;border-radius:8px;padding:8px 10px;margin-bottom:12px;line-height:1.7}
.admin-form .fg{margin-bottom:14px;border:1px solid #f0f0f2;border-radius:12px;padding:12px 12px 4px;background:#fcfcfd}
.admin-form .fg-t{font-size:13px;font-weight:700;color:#1d1d1f;margin-bottom:2px}
.admin-form .fg-w{font-size:10.5px;color:#a2a2a8;margin-bottom:10px;line-height:1.6}
.admin-form .field{display:flex;flex-direction:column;margin-bottom:10px}
.admin-form .field label{font-size:10.5px;color:#86868b;margin-bottom:3px}
.admin-form .field input,.admin-form .field textarea,.admin-form .field select{width:100%;border:1px solid #e8e8ed;border-radius:8px;padding:9px 10px;font-size:13px;font-family:inherit;outline:none;background:#fff;box-sizing:border-box}
.admin-form .field textarea{min-height:60px;resize:vertical}
.admin-form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.admin-form .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 10px}

/* 回到顶部 */
.to-top{position:fixed;right:16px;bottom:24px;width:42px;height:42px;border-radius:50%;background:#1d1d1f;color:#fff;display:none;align-items:center;justify-content:center;font-size:18px;z-index:80;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none}
.to-top.show{display:flex}

/* 页脚：文档流最底部（内容少时贴底、内容多被挤下去滚动可见）；层级低于弹窗(99)，弹窗永远盖住页脚 */
.footer{text-align:center;padding:24px 24px 12px;margin-top:auto;position:relative;z-index:10}
.footer .slogan{font-size:13px;letter-spacing:6px;color:#48484a;font-weight:500;margin-bottom:6px}
.footer .en{font-size:10.5px;color:#c7c7cc;font-style:italic;margin-bottom:12px}
.footer .copy{font-size:10px;color:#d1d1d6;letter-spacing:1px;line-height:1.8}

/* ==================== 桌面端适配（≥768px；移动端样式完全不受影响） ==================== */
@media (min-width: 768px){
  /* 整体加宽：480px → 900px */
  .app{max-width:900px;padding-bottom:30px}
  .top-in{max-width:900px;padding:14px 28px}
  .top .logo{font-size:18px}
  .top .logo small{font-size:11px;margin-left:6px}
  .nav{max-width:900px;gap:26px;padding:12px 28px 13px}
  .nav a{font-size:13.5px;letter-spacing:.5px}

  /* 首页 Hero：更大气 */
  .hero{padding:68px 40px 46px}
  .hero .avatar{width:108px;height:108px;margin-bottom:20px}
  .hero h1{font-size:40px;letter-spacing:12px}
  .hero .cn{font-size:14px;letter-spacing:6px}
  .hero .btns{gap:14px}

  /* 区块 */
  .sec{padding:38px 28px 0}
  .sec h1, .sec h2{font-size:18px}
  .sec h2 .more{font-size:12px}
  .sec .line{width:26px;margin:10px 0 18px}

  /* 首页内容：从左到右网格框，空区块自动隐藏、自动补位不留空；顶部留出呼吸间距 */
  .home-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 28px;margin-top:24px}
  .home-grid .sec{border:1px solid #ececec;border-radius:16px;padding:22px 22px 26px;margin:0;background:#fff;transition:box-shadow .2s}
  .home-grid .sec:hover{box-shadow:0 4px 18px rgba(0,0,0,.04)}

  /* 所有页面的内容区块：统一卡片化（一块一块） */
  .sec{border:1px solid #ececec;border-radius:16px;padding:22px 22px 26px;margin-bottom:16px;background:#fff}
  /* 页面第一个卡片与导航拉开距离，避免卡片顶线与导航底线重叠 */
  #pageContent > .sec:first-child{margin-top:18px}
  /* 视频/活动列表：两列并排 */
  .video-grid,.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .video-grid .video-item,.act-grid .post-item{margin-bottom:0}
  /* CP档案：左个人信息（缩小卡片）+ 右词条/管理员/入口；两栏顶部一条线对齐、等高 */
  .profile-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:16px}
  .profile-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:0}
  .profile-card{padding:12px 10px;margin-top:0}
  .profile-card .p-name{font-size:15px}
  .profile-card .p-role{font-size:10px}
  .profile-card .p-emoji{font-size:22px;margin-bottom:6px}
  .profile-card table{font-size:10.5px}
  .profile-card td{padding:3px 2px}
  .profile-side .info-block{padding:12px 20px 18px;margin:0 0 14px}
  .profile-side .guide-card{margin-top:0}
  /* 关于页信息块 */
  .info-block{border:1px solid #ececec;border-radius:16px;padding:18px 20px;margin-bottom:16px;background:#fff}

  /* 公告 */
  .announce{max-width:680px;margin-left:auto;margin-right:auto;padding:18px 22px}

  /* 超话引导卡片：限宽居中 */
  .guide-card{max-width:560px;margin-left:auto;margin-right:auto;padding:22px 24px}
  .guide-card .g-t{font-size:17px}
  .guide-stats .gs b{font-size:20px}

  /* 文章列表：两列网格 */
  .art-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .post-item{margin-bottom:0;padding:18px 20px;transition:border-color .2s,transform .2s,box-shadow .25s}
  .post-item:hover{border-color:#d1d1d6;transform:translateY(-1px)}

  /* 相册：4列 */
  .photo-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .photo-grid img:hover{transform:scale(1.04)}

  /* 文章详情/阅读类内容：限宽居中 */
  .article{max-width:680px;margin:0 auto}
  .article h1{font-size:24px}
  .article .content{font-size:15px;line-height:2}

  /* 互动板：PC端左右分割——左表单完全固定（容器定高），右留言内部滚动 */
  .board-layout{display:flex;gap:16px;height:calc(100vh - 140px);min-height:420px}
  .board-form{width:38%;flex-shrink:0;margin:0}
  #msgList{flex:1;overflow-y:auto;margin-top:0!important;-webkit-overflow-scrolling:touch;padding-right:4px}
  .sec::after{content:'';display:block;clear:both}
  /* 互动板限宽居中 */
  .board-form,.msg-list{max-width:680px;margin-left:auto;margin-right:auto}
  .board-form textarea{font-size:14px}

  /* 活动/关于/档案等正文卡片：限宽居中 */
  .sec .act-item,.sec .about-card,.sec .tl-card{max-width:680px;margin-left:auto;margin-right:auto}

  /* 后台管理：内容限宽，更整齐 */
  .admin-form{max-width:780px}
  .admin-form .grid2{grid-template-columns:1fr 1fr;gap:0 14px}
  .admin-form input[type=text],.admin-form input[type=password],.admin-form input[type=datetime-local],.admin-form select,.admin-form textarea{font-size:13.5px;padding:10px 12px}
  .admin-form .field label{font-size:12.5px}
  .admin-form .fg{padding:18px 20px}
  .admin-form .fg-t{font-size:14px}

  /* 页脚 */
  .footer{padding:34px 24px 18px}
  .footer .slogan{font-size:14px;letter-spacing:8px}
  .footer .copy{font-size:11px}
}
/* ===== 关于页两栏（全局：移动端单列"关于"在前，桌面端左里程碑右关于） ===== */
.about-grid{display:flex;flex-direction:column}
.about-right{order:1}.about-left{order:2}
@media (min-width:768px){
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
  .about-left{order:1}.about-right{order:2;border-left:1px solid #ececec;padding-left:30px}
  .about-left .info-block{border:none;padding:0;margin:0}
}

/* ===== 全站卡片悬停动画（仅电脑端 hover 设备；触屏/手机绝不应用） ===== */
@media (min-width:768px) and (hover:hover){
  .sec,.card,.info-block,.guide-card,.profile-card,.admin-form,.video-item,.post-item,.board-form,.msg{transition:box-shadow .25s ease,transform .25s ease,border-color .2s ease}
  .sec:hover,.card:hover,.info-block:hover,.guide-card:hover,.profile-card:hover,.admin-form:hover,.video-item:hover,.post-item:hover,.board-form:hover,.msg:hover{box-shadow:0 6px 20px rgba(0,0,0,.06);transform:translateY(-1px)}
}

/* ===== 快捷发送CP词条按钮（2026-08-15 新增） ===== */
.cp-word{width:100%;background:#fff;border:1px solid #e8e8ed;border-radius:10px;padding:9px 12px;font-size:12.5px;color:#48484a;font-family:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cp-word:active{background:#f5f5f7}
@media (min-width:768px) and (hover:hover){
  .cp-word{transition:border-color .2s ease,background .2s ease}
  .cp-word:hover{border-color:#c7c7cc;background:#fafafa}
}
