/* 27考研 · 学科语文826 —— 朱墨本 主题样式 */
:root{
  --paper:#F2F0E7;            /* 竹纸底 */
  --surface:#FDFBF4;          /* 表格面 */
  --ink:#2A2722;              /* 墨 */
  --ink-soft:#6B6455;         /* 淡墨 */
  --celadon:#33514A;          /* 黛青 */
  --cinnabar:#AF3A2B;         /* 朱砂 */
  --cinnabar-tint:#F6E9E2;    /* 朱砂淡染（休息日） */
  --cinnabar-tint-strong:#F3DAD0; /* 朱砂淡染（死线） */
  --cinnabar-block:#EECFC2;   /* 朱砂淡染（停课日） */
  --hairline:#DCD5C2;         /* 细线 */
  --zebra:#EFEBDE;            /* 斑马纹 */
  --date-bg:#E9E5D5;          /* 日期列 */
  --serif:"Songti SC","STSong","SimSun","Noto Serif CJK SC",serif;
  --sans:"PingFang SC","Microsoft YaHei","Microsoft JhengHei",sans-serif;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  font-family:var(--sans);
  font-size:12.5px;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

.wrap{ max-width:1080px; margin:0 auto; padding:0 24px 64px; }

/* ---------- 顶部导航 ---------- */
.nav{
  position:sticky;
  top:0;
  z-index:30;
  background:var(--celadon);
  box-shadow:0 1px 0 rgba(42,39,34,.12);
}
.nav-inner{
  max-width:1080px;
  margin:0 auto;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  padding:10px 20px;
}
.nav-brand{
  font-family:var(--serif);
  color:#F6F2E4;
  font-weight:700;
  font-size:15px;
  letter-spacing:.5px;
  text-decoration:none;
  margin-right:14px;
}
.nav a:not(.nav-brand){
  color:rgba(246,242,228,.86);
  text-decoration:none;
  font-size:13px;
  padding:6px 14px;
  border-radius:20px;
  transition:background .15s ease,color .15s ease;
}
.nav a:not(.nav-brand):hover{ background:rgba(246,242,228,.14); color:#fff; }
.nav a.active{ background:var(--cinnabar); color:#fff; font-weight:600; }

/* ---------- 标题区 ---------- */
.hero{ text-align:center; padding:46px 16px 30px; }
.hero h1{
  font-family:var(--serif);
  font-size:31px;
  font-weight:700;
  letter-spacing:1px;
  color:var(--ink);
  margin:0 0 12px;
}
.hero h1::after{
  content:"";
  display:block;
  width:56px; height:3px;
  margin:16px auto 0;
  background:var(--cinnabar);
  border-radius:2px;
}
.hero .subtitle{ color:var(--ink-soft); font-size:13px; letter-spacing:.3px; margin:0 0 16px; }
.hero .quote{ font-family:var(--serif); font-size:16px; color:var(--cinnabar); letter-spacing:.5px; margin:0; }

/* ---------- 章节条 ---------- */
h2{
  font-family:var(--serif);
  font-size:16px;
  font-weight:600;
  letter-spacing:.5px;
  color:#F6F2E4;
  background:var(--celadon);
  padding:10px 16px;
  margin:30px 0 12px;
  border-left:4px solid var(--cinnabar);
  border-radius:6px;
  box-shadow:0 1px 0 rgba(42,39,34,.08);
}

/* ---------- 月份卡片（首页） ---------- */
.months{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin:0 0 34px;
}
.month-card{
  position:relative;
  display:block;
  background:var(--surface);
  border:1px solid var(--hairline);
  border-radius:12px;
  padding:20px 18px 18px;
  text-decoration:none;
  color:var(--ink);
  overflow:hidden;
  box-shadow:0 1px 2px rgba(42,39,34,.05);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.month-card::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:4px;
  background:var(--celadon);
}
.month-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 26px rgba(42,39,34,.12);
  border-color:var(--cinnabar);
}
.month-card .num{
  font-family:var(--serif);
  font-size:36px;
  font-weight:700;
  line-height:1;
  color:var(--cinnabar);
}
.month-card .num small{ font-size:17px; font-weight:600; }
.month-card .title{ font-family:var(--serif); font-size:17px; font-weight:700; margin:10px 0 4px; }
.month-card .range{ color:var(--ink-soft); font-size:12px; margin-bottom:10px; }
.month-card .desc{ color:var(--ink-soft); font-size:12px; line-height:1.75; }
.month-card .go{ display:inline-block; margin-top:14px; color:var(--cinnabar); font-size:12px; font-weight:600; }

/* ---------- 表格 ---------- */
table{
  width:100%;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  background:var(--surface);
  margin:0 0 22px;
  border:1px solid var(--hairline);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(42,39,34,.06),0 6px 18px rgba(42,39,34,.05);
}
th,td{
  border-right:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
  padding:6px 8px;
  vertical-align:top;
  word-break:break-all;
  font-size:12px;
  line-height:1.6;
}
th:last-child,td:last-child{ border-right:none; }
tr:last-child td{ border-bottom:none; }
th{
  background:var(--celadon);
  color:#F6F2E4;
  font-weight:600;
  font-size:12px;
  text-align:center;
  letter-spacing:.3px;
  padding:9px 8px;
}
th span{
  display:block;
  margin-top:2px;
  font-weight:400 !important;
  font-size:10px !important;
  color:rgba(246,242,228,.72);
  letter-spacing:.2px;
}
td:first-child{
  text-align:center;
  font-weight:600;
  background:var(--date-bg);
  white-space:nowrap;
  color:var(--ink);
}
tr:nth-child(even) td{ background:var(--zebra); }
tr:nth-child(even) td:first-child{ background:#DED9C6; }
tr.fixed td{ background:var(--cinnabar-tint) !important; }
tr.off td, td.off{
  background:var(--cinnabar-block) !important;
  color:var(--cinnabar);
  font-weight:700;
  text-align:center;
}
.rest{ color:var(--cinnabar); font-weight:700; }
.deadline{
  color:var(--cinnabar) !important;
  font-weight:700;
  background:var(--cinnabar-tint-strong) !important;
}
td span[style*="c0392b"]{ color:var(--cinnabar) !important; }

/* ---------- 说明框 ---------- */
.note{
  background:var(--surface);
  border:1px solid var(--hairline);
  border-left:4px solid var(--cinnabar);
  padding:12px 16px;
  margin:18px 0;
  font-size:12.5px;
  line-height:1.9;
  border-radius:0 8px 8px 0;
  color:var(--ink);
}
.note b{ color:var(--cinnabar); font-weight:700; }

/* ---------- 页脚 ---------- */
.footer{ text-align:center; padding:30px 16px 46px; }
.footer p{ font-family:var(--serif); color:var(--cinnabar); font-size:15px; letter-spacing:.5px; margin:0 0 6px; }
.footer small{ color:var(--ink-soft); font-size:11px; }

/* ---------- 屏幕端：行悬浮辅助横读 ---------- */
@media (hover:hover){
  tbody tr:not(.fixed):not(.off):hover td{ background:#F3EEE0; }
  tbody tr:not(.fixed):not(.off):hover td:first-child{ background:#E2DCC8; }
}

/* ---------- 响应式 ---------- */
@media (max-width:820px){
  .months{ grid-template-columns:1fr; }
  .hero h1{ font-size:25px; }
  .nav-brand{ width:100%; margin-right:0; }
}

/* ---------- 打印 ---------- */
@media print{
  .nav,.months,.quote,.footer,#chat-panel{ display:none; }
  body{ background:#fff; font-size:10px; color:#000; }
  .wrap{ max-width:none; padding:0; }
  .hero{ padding:0 0 10px; }
  .hero h1{ font-size:20px; }
  .hero .subtitle{ margin-bottom:6px; }
  h2{ background:var(--celadon) !important; box-shadow:none; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  th{ background:var(--celadon) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  table{ box-shadow:none; page-break-inside:auto; }
  tr{ page-break-inside:avoid; }
  tr.fixed td{ background:var(--cinnabar-tint) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  tr.off td, td.off{ background:var(--cinnabar-block) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  td:first-child{ background:var(--date-bg); -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  tr:nth-child(even) td{ background:transparent; }
  tr:nth-child(even) td:first-child{ background:var(--date-bg); }
}

/* ---------- 对话面板 ---------- */
#chat-panel{
  position:fixed;
  right:18px;
  bottom:18px;
  width:340px;
  max-width:calc(100vw - 36px);
  background:var(--surface);
  border:1px solid var(--hairline);
  border-radius:12px;
  box-shadow:0 10px 30px rgba(42,39,34,.18);
  z-index:50;
  overflow:hidden;
}
#chat-header{
  background:var(--celadon);
  color:#F6F2E4;
  padding:10px 14px;
  font-weight:600;
  letter-spacing:.3px;
  cursor:pointer;
  user-select:none;
}
#chat-body{ display:flex; flex-direction:column; }
#chat-messages{
  height:280px;
  overflow-y:auto;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.msg{
  max-width:85%;
  padding:8px 11px;
  border-radius:10px;
  font-size:12px;
  line-height:1.6;
  word-break:break-all;
}
.msg-user{
  align-self:flex-end;
  background:var(--cinnabar-tint);
  color:var(--ink);
  border:1px solid var(--hairline);
}
.msg-assistant{
  align-self:flex-start;
  background:#E4EDE8;
  color:var(--ink);
  border:1px solid var(--hairline);
}
#chat-actions{ display:flex; flex-wrap:wrap; gap:6px; padding:0 12px 8px; }
.chat-quick{
  font-size:11px;
  padding:4px 10px;
  border:1px solid var(--hairline);
  background:var(--paper);
  color:var(--ink-soft);
  border-radius:14px;
  cursor:pointer;
}
.chat-quick:hover{ border-color:var(--cinnabar); color:var(--cinnabar); }
#chat-input-area{ display:flex; gap:8px; padding:0 12px 12px; }
#chat-input{
  flex:1;
  min-height:56px;
  resize:vertical;
  border:1px solid var(--hairline);
  border-radius:8px;
  padding:8px;
  font-family:var(--sans);
  font-size:12px;
  color:var(--ink);
  background:var(--paper);
}
#chat-send{
  align-self:flex-end;
  background:var(--cinnabar);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:8px 14px;
  font-size:12px;
  cursor:pointer;
}
#chat-send:disabled{ opacity:.5; cursor:default; }
#chat-panel.collapsed #chat-body{ display:none; }
