﻿/* ============================================================
   四明论坛 · NEO WARM
   温暖日式二次元主题：和纸、樱花、抹茶、朱漆、旧 BBS 记忆
   在 neo.css 之后加载，覆盖冷色赛博配色
   ============================================================ */

:root {
  --warm-bg: #f5eddf;
  --warm-paper: #fffaf0;
  --warm-paper-2: #fbf1df;
  --warm-ink: #42372a;
  --warm-ink-soft: #6e5d48;
  --warm-muted: #907d64;
  --warm-line: #dfccb0;
  --warm-line-soft: #eadbc4;
  --warm-sakura: #d98ba3;
  --warm-terra: #c56f4d;
  --warm-matcha: #7f9a78;
  --warm-indigo: #5d7188;
  --warm-gold: #c29b52;
  --neo-font-display: "Songti SC", "STSong", "SimSun", "Noto Serif SC", ui-serif, serif;
}

html { color-scheme: light; }
body {
  color: var(--warm-ink);
  background:
    radial-gradient(ellipse 54% 36% at 10% -2%, rgba(217, 139, 163, 0.16), transparent 60%),
    radial-gradient(ellipse 42% 38% at 94% 2%, rgba(127, 154, 120, 0.18), transparent 62%),
    radial-gradient(ellipse 45% 34% at 50% 100%, rgba(197, 111, 77, 0.08), transparent 68%),
    linear-gradient(180deg, #fbf5e9 0%, #f4ecde 52%, #f7efe2 100%);
}
body::before {
  background-image:
    linear-gradient(rgba(159, 130, 91, 0.065) 1px, transparent 1px),
    linear-gradient(90deg, rgba(159, 130, 91, 0.065) 1px, transparent 1px);
  mask-image: radial-gradient(ellipse 100% 80% at 50% 0%, #000 10%, transparent 80%);
}
body::after {
  opacity: 0.19;
  background-image: radial-gradient(rgba(90, 70, 42, 0.4) 0.55px, transparent 0.8px);
  background-size: 6px 6px;
}
::selection { background: rgba(217, 139, 163, 0.24); color: #3e3327; }

/* 顶部 */
.neo-header {
  border-bottom: 1px solid var(--warm-line);
  background: rgba(255, 250, 240, 0.9);
  backdrop-filter: blur(14px) saturate(1.15);
  box-shadow: 0 5px 22px -18px rgba(92, 65, 38, 0.55);
}
.neo-brand { color: var(--warm-ink); }
.neo-brand-logo {
  border-color: #dbc6a7;
  box-shadow: 0 0 0 4px rgba(217, 139, 163, 0.12), 0 0 20px rgba(197, 111, 77, 0.12);
}
.neo-brand-name { color: #3d4a56; }
.neo-brand-sub { color: #9a8469; }
.neo-brand-sub b { color: var(--warm-terra); }
.neo-nav-link { color: #89765f; }
.neo-nav-link:hover { color: #4b3b2c; background: rgba(217, 139, 163, 0.09); }
.neo-nav-link.active { color: #a55739; background: rgba(217, 139, 163, 0.13); }
.neo-nav-link.active::after { background: linear-gradient(90deg, var(--warm-terra), var(--warm-sakura)); }
.neo-header-label { color: #9d8a70; }
.neo-user-avatar {
  border-color: #d8b7bb;
  background: linear-gradient(135deg, #f7e0e5, #e9efdf);
  color: #795248;
}
.neo-icon-btn { border-color: var(--warm-line); color: #89765f; background: #fffaf0; }
.neo-icon-btn:hover { border-color: #d4a4ae; color: #b45f45; background: #fff4ed; }

/* 主体与英雄区 */
.neo-main { padding-top: 26px; }
.neo-hero {
  border-color: var(--warm-line);
  background:
    radial-gradient(ellipse 38% 80% at 88% 14%, rgba(217, 139, 163, 0.23), transparent 62%),
    radial-gradient(ellipse 38% 70% at 70% 100%, rgba(127, 154, 120, 0.2), transparent 65%),
    radial-gradient(circle at 8% 20%, rgba(255, 255, 255, 0.72), transparent 28%),
    linear-gradient(118deg, #fff9ec, #f8e9dd 54%, #eef1e1);
  box-shadow: 0 22px 55px -34px rgba(101, 71, 39, 0.48);
}
.neo-hero::before {
  border-color: rgba(197, 111, 77, 0.19);
  box-shadow: 0 0 0 22px rgba(217, 139, 163, 0.07), 0 0 0 52px rgba(127, 154, 120, 0.055);
}
.neo-hero::after { color: rgba(111, 86, 57, 0.28); content: 'アニメ / セイシュン / BBS'; }
.neo-kicker { color: #a35e46; }
.neo-kicker::before { background: #b97b5c; box-shadow: none; }
.neo-hero-title { color: #3f403d; font-weight: 500; }
.neo-hero-title em {
  background: linear-gradient(100deg, #b95f43, #d68ca3 60%, #718971);
  -webkit-background-clip: text; background-clip: text;
}
.neo-hero-desc { color: #75654f; }
.neo-badge { border-color: #ddcab0; background: rgba(255, 252, 244, 0.72); color: #7f6c54; }
.neo-badge.pink { border-color: #e2b8c2; color: #a95f73; }
.neo-badge.gold { border-color: #ddc28a; color: #99723a; }

.neo-panel {
  border-color: var(--warm-line);
  background: rgba(255, 250, 240, 0.9);
  box-shadow: 0 18px 44px -34px rgba(98, 70, 38, 0.45);
  backdrop-filter: blur(10px);
}
.neo-panel-head {
  border-bottom-color: var(--warm-line);
  background:
    linear-gradient(180deg, rgba(255, 252, 245, 0.92), rgba(248, 238, 219, 0.9)),
    repeating-linear-gradient(135deg, rgba(120, 88, 54, 0.035) 0 1px, transparent 1px 8px);
}
.neo-panel-title { color: #4a3d2d; }
.neo-panel-title::before { background: var(--warm-terra); box-shadow: none; }
.neo-panel-en { color: #a89478; }
.neo-toolbar { border-bottom-color: var(--warm-line-soft); color: #8d7a61; }
.neo-toolbar .neo-count b { color: #a95d40; }

/* 帖子 */
.neo-post { border-bottom-color: var(--warm-line-soft); }
.neo-post:hover { background: rgba(217, 139, 163, 0.055); }
.neo-post::before {
  background: linear-gradient(180deg, var(--warm-sakura), var(--warm-terra), var(--warm-matcha));
  opacity: 0.58;
}
.neo-post:nth-child(3n+2)::before { background: linear-gradient(180deg, #d8a5b3, #c7a163); }
.neo-post:nth-child(3n+3)::before { background: linear-gradient(180deg, #95aa8c, #a9c1b8); }
.neo-tag { border-color: #e1c9ab; color: #9b674f; background: rgba(255, 250, 240, 0.7); }
.neo-time { color: #a18d74; }
.neo-post h3 a { color: #3f4651; }
.neo-post h3 a:hover { color: #b45f45; }
.neo-excerpt { color: #7d6c56; }
.neo-post-footer { color: #927f67; }
.neo-author { color: #6e604f; }
.neo-author:hover { color: #b45f45; }
.neo-dot { color: #c8b397; }
.neo-read { color: #b45f45; }

/* 按钮 */
.neo-btn { border-color: var(--warm-line); background: rgba(255, 250, 240, 0.66); color: #725f49; }
.neo-btn:hover { border-color: #d4a78e; background: #fff6eb; color: #9d4e37; }
.neo-btn-primary {
  border-color: #b36147;
  background: linear-gradient(120deg, #c97957, #b95f48);
  color: #fff; box-shadow: 0 9px 22px -13px rgba(180, 90, 60, 0.6);
}
.neo-btn-primary:hover { background: linear-gradient(120deg, #c26c4b, #ab523c); }
.neo-btn-ghost { border-color: var(--warm-line); background: rgba(255, 250, 240, 0.72); color: #826e55; }
.neo-btn-danger { border-color: #dfb6b1; background: #fff5f2; color: #b45c4e; }
.neo-btn-danger:hover { border-color: #cf928b; background: #ffebe6; }

/* 侧栏 */
.neo-side-card h3 { color: #4a3d2d; }
.neo-side-card p { color: #85745d; }
.neo-side-stat div { border-color: var(--warm-line-soft); background: rgba(255, 250, 240, 0.6); }
.neo-side-stat b { color: #aa5e42; }
.neo-side-stat span { color: #a18d74; }
.neo-link-list a { border-bottom-color: var(--warm-line-soft); color: #756550; }
.neo-link-list a:hover { color: #b45f45; }
.neo-link-list small { color: #a18d74; }

/* 状态 */
.neo-state { color: #8d7a61; }
.neo-state-icon { border-color: var(--warm-line); background: #fff7ea; color: #b3654b; }
.neo-state-title { color: #4a3d2d; }
.neo-state-desc { color: #9a876e; }
.neo-sk-line { background: linear-gradient(90deg, #efe2ce, #f9f0e1, #efe2ce); background-size: 200% 100%; }

/* 个人页 */
.neo-profile-hero {
  border-color: var(--warm-line);
  background:
    radial-gradient(circle at 88% 18%, rgba(217, 139, 163, 0.18), transparent 36%),
    radial-gradient(circle at 8% 84%, rgba(127, 154, 120, 0.16), transparent 38%),
    linear-gradient(118deg, #fffaf0, #f9eadf 58%, #eff3e4);
  box-shadow: 0 22px 55px -34px rgba(101, 71, 39, 0.42);
}
.neo-profile-avatar {
  border-color: #dbb2b9;
  background: linear-gradient(135deg, #f9e2e8, #eaf2df);
  color: #805248;
  box-shadow: 0 0 0 6px rgba(217, 139, 163, 0.09), 0 0 30px rgba(197, 111, 77, 0.1);
}
.neo-profile-kicker { color: #a45f47; }
.neo-profile-name { color: #3f4651; font-weight: 500; }
.neo-profile-meta { color: #85735a; }
.neo-profile-stats b { color: #a95d40; }
.neo-profile-stats span { color: #9a876e; }
.neo-manage-note { color: #9a876e; }
.neo-manage-row { border-bottom-color: var(--warm-line-soft); }
.neo-manage-index { color: #b09b80; }
.neo-manage-main h3 { color: #4a3d2d; }
.neo-manage-main p { color: #9a876e; }
.neo-status { border-color: #b8ccb1; color: #5f7a5a; }
.neo-empty-line { color: #9a876e; }

/* 文章与评论 */
.neo-back { color: #8b7860; }
.neo-back:hover { color: #b45f45; }
.neo-article {
  border-color: var(--warm-line);
  background:
    radial-gradient(circle at 95% 3%, rgba(217, 139, 163, 0.08), transparent 30%),
    linear-gradient(180deg, #fffaf1, #fffaf0);
  box-shadow: 0 22px 55px -36px rgba(101, 71, 39, 0.42);
}
.neo-article-meta { color: #8e7c64; }
.neo-article-title { color: #3e434a; font-weight: 500; }
.neo-article-divider { background: linear-gradient(90deg, #d8a6a2, #dbc6a7, transparent); }
.neo-article-body { color: #4d4132; }
.neo-comment { border-bottom-color: var(--warm-line-soft); }
.neo-comment-avatar { background: #f9e6e9; color: #a85f74; }
.neo-comment-head { color: #99866d; }
.neo-comment-author { color: #6c5b47; }
.neo-comment-body { color: #5c4c3b; }

/* 登录页 */
.neo-auth {
  border-color: var(--warm-line);
  background: rgba(255, 250, 240, 0.9);
  box-shadow: 0 28px 70px -38px rgba(91, 61, 32, 0.5);
}
.neo-auth-visual {
  background:
    radial-gradient(circle at 76% 18%, rgba(217, 139, 163, 0.26), transparent 36%),
    radial-gradient(circle at 16% 88%, rgba(127, 154, 120, 0.22), transparent 42%),
    linear-gradient(145deg, #fdf4e6, #f8e7dc 62%, #edf1e3);
}
.neo-auth-visual::before {
  background-image: linear-gradient(rgba(153, 120, 78, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(153, 120, 78, 0.07) 1px, transparent 1px);
}
.neo-auth-visual::after { color: rgba(96, 72, 47, 0.32); }
.neo-auth-brand strong { color: #3f4651; }
.neo-auth-brand span { color: #9a8469; }
.neo-auth-copy h1 { color: #3f403d; font-weight: 500; }
.neo-auth-copy h1 em { background: linear-gradient(100deg, #b95f43, #d68ca3 60%, #718971); -webkit-background-clip: text; background-clip: text; }
.neo-auth-copy p { color: #75654f; }
.neo-auth-form-wrap h2 { color: #3f4651; }
.neo-auth-form-wrap .neo-auth-sub { color: #907d64; }
.neo-auth-tabs { border-color: var(--warm-line); background: #f6ead8; }
.neo-auth-tabs button { color: #907d64; }
.neo-auth-tabs button.active { background: #fffaf0; color: #a95d40; box-shadow: 0 1px 3px rgba(98, 70, 38, 0.08); }
.neo-field label { color: #89765f; }
.neo-input { border-color: var(--warm-line); background: #fffaf0; color: #4a3d2d; }
.neo-input:focus { border-color: #d1a18a; box-shadow: 0 0 0 3px rgba(217, 139, 163, 0.12); }
.neo-textarea { border-color: var(--warm-line); background: #fffaf0; color: #4a3d2d; }
.neo-textarea:focus { border-color: #d1a18a; box-shadow: 0 0 0 3px rgba(217, 139, 163, 0.12); }
.neo-textarea::placeholder, .neo-input::placeholder { color: #b09c82; }
.neo-form-label label { color: #8b7860; }
.neo-form-label span { color: #a18d74; }
.neo-preview-title { color: #3f4651; }
.neo-preview-body { border-color: var(--warm-line); background: #fff9ee; color: #5c4c3b; }
.neo-comment-form { border-color: var(--warm-line); background: #fffaf0; }
.neo-comment-form-head label { color: #4a3d2d; }
.neo-comment-form-head span { color: #a18d74; }
.neo-comment-form-foot > span { color: #9a876e; }
.neo-form-error { color: #b15048; }
.neo-check { color: #8b7860; }
.neo-check a { color: #a55739; }
.neo-auth-foot { color: #9a876e; }
.neo-auth-foot a { color: #8c654e; }
.neo-auth-mobile-brand strong { color: #3f4651; }
.neo-auth-mobile-brand small { color: #9a8469; }

/* 法律页 */
.neo-legal-card { border-color: var(--warm-line); background: var(--warm-paper); box-shadow: 0 22px 55px -36px rgba(101, 71, 39, 0.42); }
.neo-legal-card h1 { color: #3e434a; font-weight: 500; }
.neo-legal-card h2 { color: #a45f47; }
.neo-legal-card p, .neo-legal-card li { color: #655540; }
.neo-legal-card a { color: #9d5d44; }
.neo-legal-note { border-color: #d9c394; background: #fff9e9; color: #8e7440; }

/* 页脚、弹窗、提示 */
.neo-footer { border-top-color: var(--warm-line); color: #8d7a61; background: rgba(255, 250, 240, 0.55); }
.neo-footer a { color: #89765f; }
.neo-footer a:hover { color: #b45f45; }
.neo-modal-backdrop { background: rgba(65, 48, 30, 0.35); }
.neo-modal-panel { border-color: var(--warm-line); background: #fffaf0; box-shadow: 0 30px 80px -30px rgba(72, 48, 24, 0.55); }
.neo-modal-head { border-bottom-color: var(--warm-line); color: #4a3d2d; background: #f8eedf; }
.neo-modal-close { color: #907d64; }
.neo-modal-close:hover { background: #f1e2ce; color: #b45f45; }
.neo-modal-body { color: #665540; }
.neo-modal-body strong { color: #3f3528; }
.neo-modal-foot { border-top-color: var(--warm-line); background: #fbf1e2; }
.neo-toast { border-color: var(--warm-line); background: #fffaf0; color: #584936; box-shadow: 0 12px 30px -18px rgba(92, 65, 38, 0.5); }

/* 管理员 */
.neo-admin-tabs { display: flex; gap: 4px; margin-bottom: 12px; }
.neo-admin-tabs button {
  min-height: 31px; padding: 0 12px; border: 1px solid var(--warm-line); border-radius: 7px;
  background: #fffaf0; color: #8b7860; font-size: 11px;
}
.neo-admin-tabs button.active { border-color: #d2a18b; background: #fff2e7; color: #a95d40; }
.neo-admin-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.neo-admin-table th, .neo-admin-table td { padding: 9px 10px; border-bottom: 1px solid var(--warm-line-soft); text-align: left; vertical-align: middle; }
.neo-admin-table th { color: #9a876e; font-weight: 500; font-family: var(--neo-font-pixel); font-size: 8px; letter-spacing: .08em; }
.neo-admin-table td { color: #5c4c3b; }
.neo-admin-table tr:last-child td { border-bottom: 0; }
.neo-admin-table .admin-name { color: #3f4651; font-weight: 600; }
.neo-admin-table .admin-sub { display: block; margin-top: 1px; color: #9a876e; font-size: 9px; }
.neo-admin-role { color: #8a6b4d; font-family: var(--neo-font-pixel); font-size: 8px; }
.neo-admin-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.neo-admin-actions .neo-btn { min-height: 25px; padding: 0 7px; font-size: 9.5px; }
.neo-admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 13px; border-bottom: 1px solid var(--warm-line-soft); }
.neo-admin-toolbar span { color: #8d7a61; font-size: 10px; }
.neo-admin-empty { padding: 28px 14px; color: #9a876e; text-align: center; font-size: 11px; }
.neo-admin-badge { display: inline-flex; align-items: center; gap: 3px; padding: 1px 5px; border-radius: 4px; font-family: var(--neo-font-pixel); font-size: 8px; }
.neo-admin-badge.ok { border: 1px solid #b8ccb1; color: #5f7a5a; background: #f3f8ef; }
.neo-admin-badge.bad { border: 1px solid #dfb6b1; color: #b45c4e; background: #fff5f2; }

/* 移动端 */
@media (max-width: 767px) {
  .neo-header { background: rgba(255, 250, 240, 0.94); }
  .neo-dock { border-top-color: var(--warm-line); background: rgba(255, 250, 240, 0.96); box-shadow: 0 -10px 30px -20px rgba(91, 61, 32, 0.4); }
  .neo-dock a, .neo-dock button { color: #927f67; }
  .neo-dock .active { color: #a95d40; background: #fff1e7; }
  .neo-admin-table th:nth-child(3), .neo-admin-table td:nth-child(3) { display: none; }
  .neo-admin-table { font-size: 10px; }
  .neo-admin-table th, .neo-admin-table td { padding: 7px 6px; }
  .neo-admin-actions { flex-direction: column; align-items: flex-end; }
  .neo-admin-actions .neo-btn { min-height: 23px; font-size: 9px; }
  .neo-article { background: #fffaf0; }
  .neo-footer { background: rgba(255, 250, 240, 0.75); }
}
@media (max-width: 820px) {
  .neo-auth { background: #fffaf0; }
}

/* 首页横幅：只作装饰，紧凑版 */
.neo-hero { padding: 15px 20px; margin-bottom: 12px; }
.neo-hero::before { width: 210px; height: 210px; top: -74px; right: -30px; }
.neo-hero-title { font-size: clamp(23px, 3vw, 32px); line-height: 1.2; }
.neo-hero-desc { max-width: 680px; margin-top: 5px; font-size: 11.5px; line-height: 1.7; }
.neo-badges { margin-top: 8px; gap: 5px; }
.neo-hero-actions { display: none; }
@media (max-width: 767px) {
  .neo-hero { padding: 13px; }
  .neo-hero-title { font-size: 22px; }
  .neo-hero-desc { font-size: 10.5px; line-height: 1.65; }
  .neo-badges { margin-top: 6px; }
  .neo-badges .neo-badge:nth-child(n+3) { display: none; }
}

/* 可点击作者名 */
.neo-author { color: #6e604f; text-decoration: none; }
.neo-author:hover { color: #b45f45; }
.neo-article-author { color: #8e7c64; text-decoration: none; }
.neo-article-author:hover { color: #b45f45; }
.neo-comment-author { text-decoration: none; }
.neo-comment-author:hover { color: #b45f45; }
