/* =========================================================
   诗词赏析网 - 前端样式（古典水墨风）
   ========================================================= */
:root{
  --ink:#2b2b2b;
  --ink-soft:#555;
  --ink-light:#8a857b;
  --paper:#faf6ee;
  --paper-deep:#f3ecdd;
  --card:#fffdf8;
  --line:#e2d9c6;
  --cinnabar:#a63d2f;
  --cinnabar-dark:#8a2f23;
  --gold:#9a7b3c;
  --green:#4a6b4f;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",SimSun,serif;
  background:
    radial-gradient(1200px 500px at 85% -50px, rgba(166,61,47,.05), transparent 60%),
    linear-gradient(180deg,#fbf8f1 0%, var(--paper) 40%, #f7f2e6 100%);
  color:var(--ink);
  line-height:1.9;
  font-size:16px;
  min-height:100vh;
}
a{color:var(--cinnabar);text-decoration:none;transition:color .2s;}
a:hover{color:var(--cinnabar-dark);}
img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 20px;}

/* ---------- 顶部 ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  background:rgba(250,246,238,.92);
  backdrop-filter:blur(6px);
  position:sticky;top:0;z-index:50;
}
.header-inner{display:flex;align-items:center;gap:26px;height:70px;}
.logo{display:flex;align-items:baseline;gap:10px;text-decoration:none;}
.logo .logo-mark{
  width:40px;height:40px;border-radius:8px;background:var(--ink);
  color:var(--paper);display:flex;align-items:center;justify-content:center;
  font-size:22px;font-family:Georgia,serif;
}
.logo .logo-name{font-size:23px;font-weight:700;color:var(--ink);letter-spacing:2px;}
.logo .logo-sub{font-size:12px;color:var(--ink-light);letter-spacing:1px;}
.main-nav{display:flex;gap:26px;margin-left:6px;}
.main-nav a{color:var(--ink-soft);font-size:16px;position:relative;padding:6px 0;}
.main-nav a:hover,.main-nav a.active{color:var(--cinnabar);}
.main-nav a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--cinnabar);
}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:14px;}
.header-actions .search-box{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 16px;}
.header-actions .search-box input{border:none;outline:none;background:transparent;width:170px;font-size:14px;color:var(--ink);font-family:inherit;}
.header-actions .search-box button{border:none;background:var(--ink);color:#fff;border-radius:999px;width:30px;height:30px;cursor:pointer;font-size:14px;}
.btn{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:7px 20px;font-size:14px;color:var(--ink);cursor:pointer;background:transparent;font-family:inherit;transition:all .2s;}
.btn:hover{border-color:var(--cinnabar);color:var(--cinnabar);}
.btn-primary{background:var(--cinnabar);border-color:var(--cinnabar);color:#fff;}
.btn-primary:hover{background:var(--cinnabar-dark);color:#fff;}
.btn-sm{padding:4px 14px;font-size:13px;}
.btn-ghost{color:var(--ink-soft);}
.user-chip{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:14px;}

/* ---------- 主视觉 ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:64px 0 74px;text-align:center;
}
.hero::before{
  content:"";position:absolute;inset:auto 0 -2px 0;height:120px;
  background:radial-gradient(700px 300px at 50% 120%, rgba(166,61,47,.10), transparent 70%);
}
.hero .hero-badge{
  display:inline-block;border:1px solid var(--gold);color:var(--gold);
  font-size:13px;letter-spacing:3px;padding:5px 18px;border-radius:999px;margin-bottom:22px;
}
.hero h1{
  font-size:clamp(30px,4.5vw,50px);font-weight:700;letter-spacing:4px;line-height:1.4;
}
.hero h1 .cinnabar{color:var(--cinnabar);}
.hero .hero-sub{margin-top:16px;color:var(--ink-light);font-size:16px;letter-spacing:1px;}
.hero .hero-links{margin-top:30px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.hero .scroll-line{width:1px;height:44px;background:linear-gradient(var(--line),transparent);margin:34px auto 0;}

/* ---------- 版块 ---------- */
.section{padding:34px 0 44px;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:12px;}
.section-head .st{font-size:21px;font-weight:700;letter-spacing:2px;display:flex;align-items:center;gap:10px;}
.section-head .st::before{content:"";width:4px;height:20px;background:var(--cinnabar);border-radius:2px;}
.section-head .more{font-size:14px;color:var(--ink-light);}

/* ---------- 卡片 ---------- */
.grid{display:grid;gap:20px;}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:960px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:20px 22px;transition:all .25s;position:relative;overflow:hidden;
}
.card::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--cinnabar),transparent);opacity:0;transition:opacity .25s;
}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(43,43,43,.08);border-color:#d8cbb0;}
.card:hover::after{opacity:1;}
.poem-card .p-title{font-size:19px;font-weight:700;margin-bottom:2px;}
.poem-card .p-title a{color:var(--ink);}
.poem-card .p-title a:hover{color:var(--cinnabar);}
.poem-card .p-meta{color:var(--ink-light);font-size:13px;margin-bottom:10px;display:flex;gap:12px;flex-wrap:wrap;}
.poem-card .p-content{
  color:var(--ink-soft);font-size:15px;line-height:2;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  white-space:pre-line;
}
.poem-card .p-foot{margin-top:12px;display:flex;gap:14px;color:var(--ink-light);font-size:12.5px;align-items:center;}
.tag{display:inline-block;background:#f1ead9;color:var(--gold);border-radius:4px;font-size:12px;padding:1px 8px;}

/* 诗人头像卡片 */
.poet-avatar{
  width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--paper-deep),#efe2c8);
  display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--cinnabar);
  border:1px solid var(--line);font-weight:700;
}

/* ---------- 诗词详情 ---------- */
.poem-detail{max-width:860px;margin:0 auto;}
.poem-head{text-align:center;padding:44px 0 26px;position:relative;}
.poem-head .dynasty-badge{color:var(--gold);font-size:14px;letter-spacing:3px;}
.poem-head h1{font-size:clamp(28px,4vw,42px);letter-spacing:3px;margin:12px 0 8px;}
.poem-head .author{font-size:17px;color:var(--ink-soft);}
.poem-head .meta-line{margin-top:12px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;color:var(--ink-light);font-size:13px;}
.poem-original{
  background:linear-gradient(180deg,#fffdf8,#fbf5e8);
  border:1px solid var(--line);border-radius:14px;
  padding:40px 34px;margin:10px 0 34px;text-align:center;
  box-shadow:0 6px 22px rgba(43,43,43,.05);
}
.poem-original .poem-text{
  font-size:clamp(20px,3vw,26px);line-height:2.3;letter-spacing:2px;white-space:pre-line;
}
.poem-original .poem-text .cinnabar{color:var(--cinnabar);}
.poem-block{margin-bottom:30px;}
.poem-block h2{
  font-size:19px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:10px;
  padding-left:14px;position:relative;
}
.poem-block h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;background:var(--cinnabar);border-radius:2px;}
.poem-block .block-body{color:var(--ink-soft);line-height:2.1;}
.poem-block .block-body p{margin-bottom:12px;}

/* 赏析条目 */
.appr-item{border:1px solid var(--line);border-radius:12px;padding:24px 26px;margin-bottom:18px;background:var(--card);}
.appr-item .appr-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.appr-item .appr-title{font-size:17px;font-weight:700;color:var(--ink);}
.appr-item .appr-author{color:var(--ink-light);font-size:13px;}
.appr-item .appr-content{white-space:pre-line;color:var(--ink-soft);line-height:2.05;}
.appr-item .appr-content h2,.appr-item .appr-content h3{font-size:16px;margin:14px 0 6px;color:var(--ink);}
.appr-seal{
  width:34px;height:34px;border:2px solid var(--cinnabar);color:var(--cinnabar);
  border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:11px;flex-shrink:0;transform:rotate(-6deg);
}

/* ---------- 侧栏 ---------- */
.layout-2col{display:grid;grid-template-columns:1fr 300px;gap:34px;}
@media(max-width:900px){.layout-2col{grid-template-columns:1fr;}}
.side-panel .sp-title{font-size:16px;font-weight:700;margin-bottom:14px;padding-left:12px;border-left:3px solid var(--cinnabar);}
.side-panel .sp-list li{list-style:none;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14.5px;}
.side-panel .sp-list li a{color:var(--ink-soft);display:flex;justify-content:space-between;gap:8px;}
.side-panel .sp-list li a:hover{color:var(--cinnabar);}
.side-panel .sp-list li .cnt{color:var(--ink-light);font-size:12px;}

/* ---------- 列表筛选 ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;}
.filter-bar .fb-item{border:1px solid var(--line);border-radius:999px;padding:4px 16px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;}
.filter-bar .fb-item:hover{color:var(--cinnabar);border-color:var(--cinnabar);}
.filter-bar .fb-item.active{background:var(--ink);color:#fff;border-color:var(--ink);}

/* ---------- 分页 ---------- */
.pagination{display:flex;justify-content:center;gap:8px;margin:34px 0;}
.pagination a,.pagination span{
  min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--ink-soft);background:#fff;
}
.pagination a:hover{border-color:var(--cinnabar);color:var(--cinnabar);}
.pagination .current{background:var(--cinnabar);color:#fff;border-color:var(--cinnabar);}

/* ---------- 页脚 ---------- */
.site-footer{margin-top:60px;border-top:1px solid var(--line);background:#f4eee0;padding:40px 0 30px;color:var(--ink-light);font-size:14px;}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;}
.footer-inner h4{color:var(--ink);font-size:15px;margin-bottom:10px;}
.footer-inner li{list-style:none;padding:3px 0;}
.footer-inner li a{color:var(--ink-light);}
.footer-inner li a:hover{color:var(--cinnabar);}
.copyright{text-align:center;margin-top:28px;font-size:13px;}

/* ---------- 表单 ---------- */
.form-card{max-width:440px;margin:40px auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:34px 36px;}
.form-card h1{font-size:22px;text-align:center;letter-spacing:2px;margin-bottom:6px;}
.form-card .form-sub{text-align:center;color:var(--ink-light);font-size:13px;margin-bottom:24px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:14px;margin-bottom:6px;color:var(--ink-soft);}
.form-control{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:15px;
  font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:border .2s;
}
.form-control:focus{border-color:var(--cinnabar);}
textarea.form-control{min-height:120px;resize:vertical;line-height:1.8;}
.input-row{display:flex;gap:10px;}
.input-row .form-control{flex:1;}
.btn-block{width:100%;margin-top:6px;padding:12px;font-size:16px;}
.form-tip{text-align:center;margin-top:16px;font-size:14px;color:var(--ink-light);}
.msg{padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:14px;display:none;}
.msg.ok{display:block;background:#eef5ec;color:#3c6e4f;border:1px solid #cfe3cc;}
.msg.err{display:block;background:#faecec;color:#a63d2f;border:1px solid #ecc7c1;}

/* ---------- 通用 ---------- */
.breadcrumb{color:var(--ink-light);font-size:13px;padding:18px 0 0;}
.breadcrumb a{color:var(--ink-light);}
.breadcrumb a:hover{color:var(--cinnabar);}
.empty{text-align:center;color:var(--ink-light);padding:60px 0;}
.mt24{margin-top:24px;}
.mt40{margin-top:40px;}
.flex{display:flex;gap:10px;align-items:center;}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
/* 印章动画 */
@keyframes sealIn{from{transform:scale(1.4);opacity:0;}to{transform:scale(1);opacity:1;}}
.seal-anim{animation:sealIn .6s ease;}

/* =========================================================
   响应式（多端自适应）
   ========================================================= */
/* 移动端菜单按钮（默认隐藏） */
.nav-toggle{
  display:none;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--line);border-radius:8px;
  background:#fff;cursor:pointer;margin-left:auto;
  color:var(--ink);font-size:20px;line-height:1;
}
.nav-toggle:hover{border-color:var(--cinnabar);color:var(--cinnabar);}
/* 移动端菜单（默认隐藏） */
.mobile-menu{
  display:none;border-top:1px solid var(--line);background:#fffdf8;
  box-shadow:0 12px 24px rgba(43,43,43,.06);
}
/* 桌面端无论 JS 状态都不显示移动菜单 */
@media(min-width:901px){.mobile-menu{display:none !important;}}
.mobile-menu.show{display:block;}
.mobile-menu .mm-inner{padding:10px 16px 18px;}
.mobile-menu .mm-nav{display:flex;flex-direction:column;}
.mobile-menu .mm-nav a{
  padding:13px 6px;font-size:16px;color:var(--ink-soft);
  border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;align-items:center;
}
.mobile-menu .mm-nav a.active,.mobile-menu .mm-nav a:hover{color:var(--cinnabar);}
.mobile-menu .mm-nav a::after{content:"›";color:var(--line);font-size:18px;}
.mobile-menu .mm-search{margin-top:14px;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 16px;}
.mobile-menu .mm-search input{flex:1;border:none;outline:none;background:transparent;font-size:15px;font-family:inherit;color:var(--ink);min-width:0;}
.mobile-menu .mm-search button{border:none;background:var(--ink);color:#fff;border-radius:999px;width:32px;height:32px;cursor:pointer;font-size:14px;}
.mobile-menu .mm-actions{margin-top:16px;display:flex;gap:10px;}
.mobile-menu .mm-actions .btn{flex:1;text-align:center;}
.mobile-menu .mm-user{display:flex;align-items:center;justify-content:space-between;padding:12px 6px;border-bottom:1px dashed var(--line);font-size:15px;color:var(--ink);}

/* 1024px 以内 */
@media(max-width:1024px){
  .container{padding:0 16px;}
}
/* 900px 以内：折叠导航到移动菜单 */
@media(max-width:900px){
  .header-inner{height:60px;gap:14px;}
  .logo .logo-name{font-size:20px;}
  .logo .logo-mark{width:34px;height:34px;font-size:19px;border-radius:6px;}
  .main-nav{display:none;}
  .header-actions .search-box{display:none;}
  .header-actions .user-chip{display:none;}
  .header-auth{display:none;}
  .nav-toggle{display:flex;}
}
/* 768px 以内：收紧留白 */
@media(max-width:768px){
  body{font-size:15px;}
  .hero{padding:42px 0 50px;}
  .hero .hero-sub{font-size:14.5px;padding:0 8px;}
  .section{padding:26px 0 34px;}
  .section-head .st{font-size:18px;}
  .poem-original{padding:28px 20px;margin-bottom:26px;}
  .poem-block h2{font-size:17px;}
  .appr-item{padding:18px 16px;}
  .footer-inner{grid-template-columns:1fr;gap:22px;}
  .form-card{padding:28px 24px;}
  .poem-head{padding:32px 0 20px;}
  .breadcrumb{font-size:12px;padding:14px 0 0;}
}
/* 560px 以内：手机精调 */
@media(max-width:560px){
  .logo .logo-sub{display:none;}
  .hero h1{letter-spacing:2px;}
  .hero .hero-links{gap:10px;}
  .hero .hero-links .btn{padding:6px 14px;font-size:13px;}
  .poem-original{padding:24px 14px;}
  .poem-original .poem-text{letter-spacing:1px;font-size:clamp(18px,5.2vw,22px);}
  .poem-head h1{letter-spacing:1px;font-size:clamp(24px,6vw,30px);}
  .poem-head .meta-line{gap:8px;font-size:12px;}
  .form-card{margin:20px auto;padding:24px 18px;border-radius:12px;}
  .form-card h1{font-size:20px;}
  .input-row{flex-wrap:wrap;}
  .input-row .btn{flex:1;min-width:120px;}
  .filter-bar{gap:8px;}
  .filter-bar .fb-item{padding:4px 13px;font-size:13px;}
  .card{padding:16px 16px;}
  .poem-card .p-title{font-size:17px;}
  .pagination a,.pagination span{min-width:34px;height:34px;font-size:13px;}
  .appr-item .appr-head{flex-wrap:wrap;}
  .footer-inner h4{font-size:14px;}
}
/* 380px 超小屏兜底：杜绝横向溢出 */
@media(max-width:380px){
  .container{padding:0 12px;}
  .logo .logo-mark{display:none;}
  .hero .hero-badge{letter-spacing:2px;padding:4px 12px;font-size:12px;}
}
