/* ============================================================
   Vec Community · 设计系统
   柔和有机 + 慢生活杂志风
   ============================================================ */

/* ==========================================
   设计令牌 (Design Tokens)
   ========================================== */
:root {
  /* 背景（纸感暖色） */
  --bg-page:          #faf7f2;
  --bg-surface:       #fdfcfa;
  --bg-surface-hover: #f6f2ec;
  --bg-muted:         #f3efe9;
  --bg-subtle:        #ede8e0;
  /* 文字 */
  --text-primary:     #3d3635;
  --text-secondary:   #7a716b;
  --text-muted:       #a8988c;
  --text-placeholder: #c4b8af;
  --text-inverse:     #fdfcfa;
  /* 边框 */
  --border-default:   #e8e2dc;
  --border-light:     #f0ebe5;
  --border-subtle:    #f5f1ec;
  /* 树洞色 */
  --color-treehole:         #c97c6d;
  --color-treehole-light:   #f0d9d1;
  --color-treehole-bg:      #fdf5f2;
  --color-treehole-border:  #f2d9d1;
  /* 问答色 */
  --color-question:         #6b9e9d;
  --color-question-light:   #cfe3e2;
  --color-question-bg:      #f3f9f8;
  --color-question-border:  #d5e8e6;
  /* 强调色 */
  --color-accent:           #b88962;
  --color-accent-hover:     #a07552;
  --color-accent-light:     #ede0d4;
  /* 语义色 */
  --color-success:          #7ba07e;
  --color-success-bg:       #edf5ee;
  --color-warning:          #c9a44b;
  --color-warning-bg:       #fcf5e8;
  --color-error:            #c47d7d;
  --color-error-bg:         #fdf2f2;
  /* 匿名 */
  --color-anon:            #c9bfb6;
  --color-anon-light:      #e8e3dd;
  /* 字体 */
  --font-display: Georgia, "Times New Roman", "Songti SC", "Noto Serif CJK SC", serif;
  --font-body:    system-ui, -apple-system, "Segoe UI", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-mono:    "SF Mono", "Consolas", "Liberation Mono", "Courier New", monospace;
  /* 字号 */
  --text-xs:    clamp(0.6875rem, 0.65rem + 0.15vw, 0.75rem);
  --text-sm:    clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
  --text-base:  clamp(0.9375rem, 0.9rem + 0.15vw, 1rem);
  --text-md:    clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
  --text-lg:    clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
  --text-xl:    clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --text-2xl:   clamp(1.5rem, 1.3rem + 0.6vw, 2rem);
  --text-3xl:   clamp(2rem, 1.6rem + 1vw, 2.75rem);
  --leading-tight: 1.25; --leading-normal: 1.6; --leading-relaxed: 1.75;
  --weight-normal: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700;
  /* 间距 */
  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem;
  /* 圆角 */
  --radius-sm:0.375rem; --radius-md:0.5rem; --radius-lg:0.75rem;
  --radius-xl:1rem; --radius-2xl:1.25rem; --radius-full:9999px;
  /* 阴影 */
  --shadow-xs: 0 1px 2px rgb(61 54 53 / 0.04);
  --shadow-sm: 0 1px 3px rgb(61 54 53 / 0.06), 0 1px 2px rgb(61 54 53 / 0.04);
  --shadow-md: 0 4px 6px -1px rgb(61 54 53 / 0.06), 0 2px 4px -2px rgb(61 54 53 / 0.04);
  --shadow-lg: 0 10px 15px -3px rgb(61 54 53 / 0.08), 0 4px 6px -4px rgb(61 54 53 / 0.04);
  /* 过渡 */
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --duration-fast: 150ms; --duration-normal: 250ms; --duration-slow: 400ms;
  /* 容器 */
  --container-sm:720px; --container-md:880px; --container-lg:1040px; --container-xl:1200px;
  /* 后台 */
  --admin-sidebar-bg: #2c2524; --admin-sidebar-text: #c9bfb6; --admin-sidebar-hover: #3d3635;
}

/* ==========================================
   全局重置
   ========================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-page)}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font:inherit;color:inherit}

/* ==========================================
   通用布局
   ========================================== */
.container{width:100%;max-width:var(--container-lg);margin:0 auto;padding:0 var(--space-4)}
.container-sm{max-width:var(--container-sm)}
.container-md{max-width:var(--container-md)}

/* ==========================================
   按钮系统
   ========================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.5625rem 1.125rem;font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.4;border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out-quart);white-space:nowrap;user-select:none;text-decoration:none}
.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.btn-primary{background:var(--color-accent);color:var(--text-inverse)}
.btn-primary:hover{background:var(--color-accent-hover)}
.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-default)}
.btn-secondary:hover{background:var(--bg-surface-hover)}
.btn-treehole{background:var(--color-treehole-bg);color:var(--color-treehole);border:1px solid var(--color-treehole-border)}
.btn-treehole:hover{background:var(--color-treehole-light)}
.btn-question{background:var(--color-question-bg);color:var(--color-question);border:1px solid var(--color-question-border)}
.btn-question:hover{background:var(--color-question-light)}
.btn-sm{padding:.375rem .75rem;font-size:var(--text-xs)}
.btn-lg{padding:.75rem 1.5rem;font-size:var(--text-base);border-radius:var(--radius-lg)}
.btn-full{width:100%}
.btn-danger{background:var(--color-error);color:var(--text-inverse)}
.btn-danger:hover{opacity:.9}
.btn-tiny{padding:3px 9px;font-size:var(--text-xs);background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm)}
.btn-tiny:hover{background:var(--bg-subtle)}
.btn-accept{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}
.btn-accept:hover{background:#d8ead8}

/* ==========================================
   表单元素
   ========================================== */
.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}
.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}
.form-input,.form-select,.form-textarea{padding:.625rem .875rem;font-size:var(--text-base);background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--duration-fast) var(--ease-out-quart);width:100%}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-placeholder)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}
.form-textarea{resize:vertical;min-height:140px;font-family:var(--font-body)}
.form-checkbox{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}
.form-checkbox input[type="checkbox"]{width:1rem;height:1rem;accent-color:var(--color-accent);cursor:pointer;margin:0}
.form-checkbox a{color:var(--color-treehole);text-decoration:underline;text-underline-offset:2px}
.form-row{display:flex;gap:var(--space-4)}
.form-row>*{flex:1}

/* ==========================================
   卡片系统
   ========================================== */
.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--duration-normal) var(--ease-out-quart)}
.card:hover{border-color:var(--border-light);box-shadow:var(--shadow-md)}
.card-treehole{border-left:3px solid var(--color-treehole-light)}
.card-question{border-left:3px solid var(--color-question-light)}

/* ==========================================
   徽章与标签
   ========================================== */
.badge{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-full);line-height:1.6}
.badge-treehole{background:var(--color-treehole-bg);color:var(--color-treehole)}
.badge-question{background:var(--color-question-bg);color:var(--color-question)}
.badge-accepted{background:var(--color-success-bg);color:var(--color-success)}
.badge-pinned{background:var(--color-warning-bg);color:var(--color-warning)}
.badge-muted{background:var(--bg-muted);color:var(--text-muted)}
.badge-lang{background:var(--bg-subtle);color:var(--text-muted);font-weight:var(--weight-normal)}
.tag{display:inline-flex;align-items:center;padding:2px 10px;font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--radius-full);transition:background var(--duration-fast);text-decoration:none;margin-right:var(--space-1)}
.tag:hover{background:var(--bg-subtle);color:var(--text-primary)}
.tag::before{content:"#";margin-right:1px;opacity:.5}

/* ==========================================
   头像
   ========================================== */
.avatar{width:2rem;height:2rem;border-radius:var(--radius-full);background:var(--bg-muted);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);flex-shrink:0;overflow:hidden}
.avatar-lg{width:2.75rem;height:2.75rem;font-size:var(--text-base)}
.avatar-anon{background:linear-gradient(135deg,var(--color-anon-light),var(--bg-muted));color:var(--color-anon);border:2px dashed var(--color-anon-light)}

/* ==========================================
   提示 / 空状态 / 分割线
   ========================================== */
.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}
.alert-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid #f0d0d0}
.alert-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid #d0e8d0}
.alert-warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #f0e0c0}
.empty-state{text-align:center;padding:var(--space-12) var(--space-4)}
.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-4);opacity:.5}
.empty-state-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-secondary);margin-bottom:var(--space-2)}
.empty-state-desc{font-size:var(--text-sm);color:var(--text-muted)}
.divider{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-6) 0}
.divider-sm{margin:var(--space-3) 0}
.placeholder{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-6) 0}

/* ==========================================
   骨架屏
   ========================================== */
.skeleton{background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-subtle) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ==========================================
   辅助
   ========================================== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.text-center{text-align:center}
.text-muted{color:var(--text-muted)}
.mt-2{margin-top:var(--space-2)}
.mt-4{margin-top:var(--space-4)}
.mb-4{margin-bottom:var(--space-4)}
.flex{display:flex}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.gap-2{gap:var(--space-2)} .gap-4{gap:var(--space-4)}
.inline-form{display:inline}

/* ==========================================
   头部导航
   ========================================== */
.site-header{background:rgba(253,252,250,.85);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:3.5rem;max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4)}
.site-logo{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:-0.01em}
.site-logo span{color:var(--color-treehole)}
.header-nav{display:flex;align-items:center;gap:var(--space-2)}
.header-nav .nav-link{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out-quart)}
.header-nav .nav-link:hover{color:var(--text-primary);background:var(--bg-muted)}
.header-sep{color:var(--border-default);margin:0 2px;user-select:none}

/* 用户头像菜单 */
.user-menu{position:relative}
.user-avatar-btn{width:34px;height:34px;border-radius:50%;border:2px solid var(--border-default);background:var(--color-treehole);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-bold);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:border-color .15s}
.user-avatar-btn:hover{border-color:var(--color-treehole)}
.user-dropdown{display:none;position:absolute;right:0;top:calc(100% + 8px);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:110;padding:var(--space-1) 0}
.user-dropdown a{display:block;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-primary);text-decoration:none;white-space:nowrap;transition:background .12s}
.user-dropdown a:hover{background:var(--bg-muted)}
.user-dropdown hr{margin:var(--space-1) 0;border:none;border-top:1px solid var(--border-default)}
.user-menu.open .user-dropdown{display:block}
.mobile-user-links{display:none;flex-direction:column;gap:2px;padding:var(--space-1) 0;border-top:1px solid var(--border-default);margin-top:var(--space-1)}
.mobile-user-links a{display:block;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-primary);text-decoration:none;border-radius:var(--radius-md)}
.mobile-user-links a:hover{background:var(--bg-muted)}
.mobile-user-links hr{margin:var(--space-1) 0;border:none;border-top:1px solid var(--border-default)}

/* 移动端操作区（默认隐藏，移动端显示） */
.header-mobile-actions{display:none}

/* 语言切换按钮 + 下拉 */
.lang-switch{position:relative;display:block}
.lang-btn{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:1.1rem;color:var(--text-secondary);transition:all var(--duration-fast)}
.lang-btn:hover{background:var(--bg-muted)}
.notif-bell{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);transition:all var(--duration-fast)}
.notif-bell:hover{background:var(--bg-muted)}
.lang-dropdown{display:none;position:absolute;right:0;top:calc(100% + 4px);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:2px 0;min-width:56px;box-shadow:var(--shadow-md);z-index:120;flex-direction:column}
.lang-switch.open .lang-dropdown{display:flex}
.lang-dropdown a{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--space-1) var(--space-3);text-align:center;transition:background var(--duration-fast);text-decoration:none}
.lang-dropdown a:hover,.lang-dropdown a.active{background:var(--bg-muted);color:var(--text-primary);font-weight:var(--weight-semibold)}

/* ==========================================
   Hero
   ========================================== */
.home-hero{text-align:center;padding:var(--space-16) var(--space-4) var(--space-12)}
.home-hero h1{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--text-primary);line-height:var(--leading-tight);max-width:600px;margin:0 auto var(--space-4);letter-spacing:-0.02em}
.home-hero .hero-accent{color:var(--color-treehole)}
.home-hero p{font-size:var(--text-md);color:var(--text-secondary);max-width:480px;margin:0 auto var(--space-6);line-height:var(--leading-relaxed)}
.hero-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}

/* ==========================================
   首页布局与列表
   ========================================== */
.home-layout{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4) var(--space-12)}
.content-col{min-width:0}
/* 主题栏（夹在 Hot 与 Latest 之间） */
.topic-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--bg-muted);border-radius:var(--radius-lg);flex-wrap:wrap}
.topic-bar-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);white-space:nowrap}
.topic-list,.tag-cloud{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.topic-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--radius-full);transition:all var(--duration-fast);text-decoration:none}
.topic-item:hover{background:var(--color-treehole-bg);color:var(--color-treehole)}
.topic-item.active{background:var(--color-treehole-bg);color:var(--color-treehole);font-weight:var(--weight-semibold)}
.topic-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-treehole-light)}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.section-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}
.section-more{font-size:var(--text-sm);color:var(--text-muted);transition:color var(--duration-fast)}
.section-more:hover{color:var(--color-accent)}
/* 双列热点 */
.hot-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-8)}
.hot-card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--border-default);border-left-width:3px;transition:all var(--duration-normal) var(--ease-out-quart)}
.hot-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.hot-card.card-treehole{border-left-color:var(--color-treehole-light)}
.hot-card.card-question{border-left-color:var(--color-question-light)}
.hot-card .badge{margin-bottom:var(--space-2)}
.hot-card-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight);margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hot-card-preview{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-3)}
.hot-card-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-muted)}
.hot-card-author{display:flex;align-items:center;gap:var(--space-1)}
/* 帖子列表 */
.post-list{margin-bottom:var(--space-8)}
.post-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);gap:var(--space-4);transition:background var(--duration-fast)}
.post-item:first-child{padding-top:0}
.post-item:last-child{border-bottom:none}
.post-item:hover{background:var(--bg-muted);margin:0 calc(-1*var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4);border-radius:var(--radius-md)}
.post-item-left{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:1}
.post-type-icon{width:2.25rem;height:2.25rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.post-type-icon.type-message{background:var(--color-treehole-bg);color:var(--color-treehole)}
.post-type-icon.type-question{background:var(--color-question-bg);color:var(--color-question)}
.post-item-body{min-width:0;flex:1}
.post-item-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-decoration:none}
.post-item-title:hover{color:var(--color-accent)}
.post-item-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;white-space:nowrap}
.post-item-meta-row{display:flex;align-items:center;gap:var(--space-3);margin-top:2px;flex-wrap:nowrap;white-space:nowrap;width:100%}
.post-item-stats{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;white-space:nowrap;flex-wrap:nowrap;margin-left:auto}
.post-stat{display:flex;align-items:center;gap:3px}
/* 筛选 */
.list-actions{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}
.list-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4)}
.filter-btn{padding:5px 12px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm)}
.filter-btn.active{background:var(--color-accent);color:var(--text-inverse);border-color:var(--color-accent)}
.list-filters select{padding:5px 8px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--bg-surface);color:var(--text-primary)}
/* 分页 */
.pagination{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:var(--space-5)}
.pagination a{padding:5px 11px;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);background:var(--bg-surface);transition:all var(--duration-fast)}
.pagination a.active,.pagination a:hover{background:var(--color-accent);color:var(--text-inverse);border-color:var(--color-accent)}

/* ==========================================
   详情页
   ========================================== */
.detail-layout{max-width:var(--container-md);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-12)}
.breadcrumb{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-4)}
.breadcrumb a:hover{color:var(--text-secondary)}
.post-article{background:var(--bg-surface);border-radius:var(--radius-xl);border:1px solid var(--border-default);overflow:hidden}
.post-article.card-question{border-left:4px solid var(--color-question-light)}
.post-article.card-treehole{border-left:4px solid var(--color-treehole-light)}
.post-body{padding:var(--space-8)}
.post-type-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}
.post-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);margin-bottom:var(--space-4)}
.post-author-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle)}
.post-author-info{flex:1}
.post-author-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:2px}
.post-author-meta{font-size:var(--text-xs);color:var(--text-muted);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.post-content{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-primary)}
.post-content p{margin-bottom:var(--space-4)}
.post-content pre{background:var(--bg-muted);padding:var(--space-4);border-radius:var(--radius-md);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-4)}
.post-content code{background:var(--bg-muted);padding:1px 5px;border-radius:3px;font-family:var(--font-mono);font-size:var(--text-sm)}
.post-content pre code{background:none;padding:0}
.post-content blockquote{border-left:3px solid var(--color-treehole-light);padding:var(--space-2) var(--space-4);color:var(--text-secondary);margin-bottom:var(--space-4);font-style:italic}
.post-content img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:var(--space-3) 0}
.post-tags{margin:var(--space-6) 0;display:flex;flex-wrap:wrap;gap:var(--space-2)}
.post-actions{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}
/* 回复 */
.replies-section{margin-top:var(--space-8)}
.replies-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-bottom:var(--space-5)}
.reply-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-3)}
.reply-card.accepted{border-color:var(--color-success);background:var(--color-success-bg)}
.reply-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.reply-header-right{margin-left:auto;display:flex;gap:var(--space-2)}
.reply-body{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-primary)}
.reply-body p{margin-bottom:var(--space-3)}
.reply-footer{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}
.sub-replies{margin-top:var(--space-6);padding-top:var(--space-4);padding-bottom:var(--space-3);border-left:3px solid var(--border-subtle);padding-left:var(--space-4);background:rgba(0,0,0,.02);border-radius:0 var(--radius-md) var(--radius-md) 0}
.sub-reply-card{padding:var(--space-4);margin-bottom:var(--space-2);border:1px solid var(--border-subtle)}
.mention-link{color:var(--color-primary);font-weight:var(--weight-semibold);text-decoration:none;border-radius:var(--radius-sm);padding:0 2px;transition:background var(--duration-fast)}
.mention-link:hover{background:var(--color-primary-bg,var(--bg-subtle))}
/* 回复表单 */
.reply-form{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-6)}
.reply-form textarea{width:100%;min-height:120px;padding:var(--space-3);font-size:var(--text-base);font-family:var(--font-body);background:var(--bg-page);border:1.5px solid var(--border-default);border-radius:var(--radius-md);resize:vertical;margin-bottom:var(--space-3)}
.reply-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}
.reply-form-footer{display:flex;justify-content:space-between;align-items:center}
.login-prompt{text-align:center;margin-top:var(--space-5);font-size:var(--text-sm)}
.login-prompt a{color:var(--color-accent);font-weight:var(--weight-medium)}

/* ==========================================
   认证页
   ========================================== */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 3.5rem);padding:var(--space-4)}
.auth-card-auth{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}
.auth-card-auth h1{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);text-align:center;margin-bottom:var(--space-6);color:var(--text-primary)}
.auth-card-auth .form-group:last-of-type{margin-bottom:0}
.auth-switch{text-align:center;margin-top:var(--space-6);font-size:var(--text-sm);color:var(--text-muted)}
.auth-switch a{color:var(--color-treehole);font-weight:var(--weight-medium)}
/* 验证码行 */
.captcha-row{display:flex;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-4)}
.captcha-row .form-group{flex:1;margin-bottom:0}
.captcha-img{width:130px;height:48px;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;overflow:hidden}
.captcha-img img{width:100%;height:100%;object-fit:cover}

/* ==========================================
   发帖页
   ========================================== */
.create-layout{max-width:var(--container-sm);margin:0 auto;padding:var(--space-8) var(--space-4) var(--space-12)}
.create-header{text-align:center;margin-bottom:var(--space-8)}
.create-header h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-2)}
.create-header p{font-size:var(--text-sm);color:var(--text-secondary)}
/* 类型切换 */
.type-toggle{display:flex;gap:0;margin-bottom:var(--space-6);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-default);background:var(--bg-surface)}
.type-toggle a{flex:1;padding:var(--space-3);text-align:center;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-out-quart);text-decoration:none}
.type-toggle a.active-treehole{background:var(--color-treehole-bg);color:var(--color-treehole);font-weight:var(--weight-semibold)}
.type-toggle a.active-question{background:var(--color-question-bg);color:var(--color-question);font-weight:var(--weight-semibold)}
.create-form-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8)}
/* 上传 */
.upload-area{display:flex;align-items:center;gap:var(--space-3);margin:-4px 0 var(--space-4)}
.upload-status{font-size:var(--text-xs);color:var(--text-muted)}
.form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-6)}
.form-hint{font-size:var(--text-xs);color:var(--text-muted)}

/* ==========================================
   公约页
   ========================================== */
.pact-layout{max-width:760px;margin:0 auto;padding:var(--space-10) var(--space-4) var(--space-12)}
.pact-header{text-align:center;margin-bottom:var(--space-8)}
.pact-header h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-bottom:var(--space-2)}
.pact-header p{font-size:var(--text-sm);color:var(--text-secondary)}
.pact-langs{display:flex;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap}
.pact-lang-btn{padding:var(--space-1) var(--space-4);font-size:var(--text-xs);color:var(--text-muted);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast);text-decoration:none}
.pact-lang-btn.active,.pact-lang-btn:hover{background:var(--color-treehole-bg);color:var(--color-treehole);font-weight:var(--weight-semibold)}
.pact-content{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-10)}
.pact-intro{font-size:var(--text-md);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}
.pact-rules{list-style:none;padding:0;margin-bottom:var(--space-6)}
.pact-rules li{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-base);line-height:var(--leading-relaxed)}
.pact-rules li:last-child{border-bottom:none}
.pact-rule-num{flex-shrink:0;width:1.75rem;height:1.75rem;background:var(--color-treehole-bg);color:var(--color-treehole);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);margin-top:2px}
.pact-enforcement{background:var(--bg-muted);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-6)}
.pact-enforcement h3{font-family:var(--font-display);font-size:var(--text-base);margin-bottom:var(--space-2)}
.pact-enforcement p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}
.pact-footer-note{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-muted)}

/* ==========================================
   页脚
   ========================================== */
.site-footer{border-top:1px solid var(--border-subtle);padding:var(--space-6) 0;margin-top:var(--space-8)}
.footer-inner{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4);display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;gap:var(--space-2)}
.footer-inner a:hover{color:var(--text-secondary)}

/* ==========================================
   后台面板
   ========================================== */
.admin-body{background:var(--bg-page)}
.admin-wrap{display:flex;min-height:100vh}
.admin-sidebar{width:240px;background:var(--admin-sidebar-bg);color:var(--admin-sidebar-text);flex-shrink:0;display:flex;flex-direction:column;padding:var(--space-6) 0;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-brand{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--text-inverse);padding:0 var(--space-5);margin-bottom:var(--space-6)}
.admin-brand span{color:var(--color-treehole)}
.admin-nav{flex:1}
.admin-nav a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);color:var(--admin-sidebar-text);transition:all var(--duration-fast);border-left:3px solid transparent;text-decoration:none}
.admin-nav a:hover{background:var(--admin-sidebar-hover);color:var(--text-inverse)}
.admin-nav a.active{background:var(--admin-sidebar-hover);color:var(--text-inverse);border-left-color:var(--color-treehole)}
.admin-nav .nav-divider{border:none;border-top:1px solid var(--admin-sidebar-hover);margin:var(--space-3) var(--space-5)}
.admin-nav .nav-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-4) var(--space-5) var(--space-2)}
.admin-main{flex:1;padding:var(--space-8) var(--space-6);max-width:1100px}
.admin-main h1{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);margin-bottom:var(--space-6)}
.admin-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6)}
.content-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}
.content-header h1,.content-header h2{margin:0}
.admin-table{width:100%;border-collapse:collapse}
.admin-subtitle{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-semibold);margin:var(--space-6) 0 var(--space-3)}
/* 统计卡片 */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}
.stat-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5)}
.stat-num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary)}
.stat-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}
/* 分布 */
.admin-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin-bottom:var(--space-8)}
.admin-col{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5)}
.admin-col h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}
.dist-list{list-style:none}
.dist-list li{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}
/* 表格 */
.admin-table-wrap{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}
.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.admin-table th{background:var(--bg-muted);text-align:left;padding:var(--space-3) var(--space-4);font-weight:var(--weight-semibold);color:var(--text-secondary);border-bottom:1px solid var(--border-default)}
.admin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:top}
.admin-table tr:last-child td{border-bottom:none}
.admin-table .actions{display:flex;gap:var(--space-2);flex-wrap:wrap}
.admin-table .actions form{display:inline}
/* 后台表单 */
.admin-form{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;background:var(--bg-surface);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-default);margin-bottom:var(--space-4)}
.admin-form label{font-size:var(--text-xs);color:var(--text-muted);display:flex;flex-direction:column;gap:4px}
.admin-form input,.admin-form select{padding:7px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--bg-surface)}
/* 后台状态徽章 */
.status-badge{padding:1px 7px;border-radius:4px;font-size:var(--text-xs)}
.status-normal,.status-active{background:#dcfce7;color:#16a34a}
.status-hidden,.status-pending{background:#fef3c7;color:#d97706}
.status-deleted,.status-banned{background:#fee2e2;color:#dc2626}
.status-resolved{background:#dbeafe;color:#2563eb}
.status-rejected{background:#f1f5f9;color:#64748b}

/* ==========================================
   Profile
   ========================================== */
.profile-page{max-width:var(--container-sm);margin:var(--space-8) auto;padding:0 var(--space-4)}
.profile-card{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-6);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:12px;margin-bottom:var(--space-6)}
.profile-avatar{width:4rem;height:4rem;border-radius:50%;background:var(--color-treehole);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:var(--weight-bold);flex-shrink:0}
.profile-info h1{font-size:var(--text-xl);margin:0 0 var(--space-1);color:var(--text-primary)}
.profile-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap}
.profile-stats{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-2)}
.profile-actions{margin-top:var(--space-3)}
.profile-section{margin-bottom:var(--space-8)}
.profile-section h2{font-size:var(--text-lg);color:var(--text-primary);margin-bottom:var(--space-4)}
/* 验证横幅 */
.verify-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-warning-bg, #fff3cd);border:1px solid var(--color-warning, #ffc107);border-radius:8px;margin-bottom:var(--space-6);flex-wrap:wrap}
.verify-banner-text strong{display:block;color:var(--text-primary)}
.verify-banner-text span{font-size:var(--text-sm);color:var(--text-secondary)}
.verify-global-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-3);background:#fff3cd;border-bottom:1px solid #ffc107;font-size:var(--text-sm);color:var(--text-primary);flex-wrap:wrap}
.verify-global-banner .btn{flex-shrink:0}
.alert-success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46;border-radius:8px;padding:var(--space-4) var(--space-5);font-size:var(--text-sm)}

/* ==========================================
   响应式 · 汉堡菜单 + Admin 切换按钮（桌面隐藏）
   ========================================== */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:2.25rem;height:2.25rem;padding:6px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;z-index:110}
.hamburger span{display:block;width:100%;height:2px;background:var(--text-secondary);border-radius:1px;transition:all var(--duration-fast) var(--ease-out-quart)}

/* Admin 侧边栏切换按钮（桌面隐藏） */
.admin-menu-toggle{display:none}

/* ==========================================
   响应式 · <768px 大手机/小平板
   ========================================== */
@media(max-width:768px){
  /* Hero */
  .home-hero{padding:var(--space-8) var(--space-4) var(--space-8)}
  .home-hero h1{font-size:var(--text-2xl);max-width:100%}
  .home-hero p{font-size:var(--text-base)}
  /* 列表 */
  .hero-actions{gap:var(--space-2)}
  .hero-actions .btn{padding:.625rem 1rem;font-size:var(--text-sm)}
  /* 详情 */
  .post-body{padding:var(--space-5) var(--space-4)}
  .post-title{font-size:var(--text-xl)}
  .detail-layout{padding:var(--space-4) var(--space-4) var(--space-8)}
  /* Admin 表格横向滚动 */
  .admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .admin-table{min-width:680px}
  /* Admin 统计网格 */
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  /* Admin 侧边栏切换按钮显现 */
  .admin-menu-toggle{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:var(--text-sm);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;margin-bottom:var(--space-4)}
  /* 公约 */
  .pact-content{padding:var(--space-5)}
  .pact-layout{padding:var(--space-6) var(--space-4) var(--space-8)}
}

/* ==========================================
   响应式 · <480px 小手机
   ========================================== */
@media(max-width:480px){
  /* ── 汉堡菜单 ── */
  .hamburger{display:flex}
  .header-search{display:none}
  .header-nav{display:none;position:absolute;top:3.5rem;left:0;right:0;background:var(--bg-surface);border-bottom:1px solid var(--border-default);flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-2);box-shadow:var(--shadow-md);z-index:100}
  .header-nav.nav-open{display:flex}
  .header-nav .btn{margin:0;border-radius:var(--radius-md);justify-content:flex-start;width:100%}
  .header-nav .btn-sm{padding:var(--space-3) var(--space-4)}
  .header-sep{display:none}
  .header-nav>span{display:none}
  /* 移动端操作区：语言 + 汉堡并排 */
  .header-mobile-actions{display:flex;align-items:center;gap:var(--space-2)}
  /* 地球按钮显示 */
  .lang-switch{display:block}
  /* 桌面端头像下拉在移动端隐藏 */
  .desktop-user-menu{display:none}
  /* 移动端：汉堡菜单内直接显示用户链接 */
  .mobile-user-links{display:flex}
  /* 桌面端语言和头像在移动端隐藏 */
  .desktop-lang,.desktop-user-menu,.header-nav .notif-bell{display:none}
  .header-inner{position:relative}

  /* ── Hero ── */
  .home-hero{padding:var(--space-6) var(--space-4) var(--space-6)}
  .home-hero h1{font-size:var(--text-xl)}
  .hero-actions .btn-lg{padding:.5rem 1rem;font-size:var(--text-sm)}

  /* ── Hot 双列 ── */
  .hot-grid{grid-template-columns:1fr;gap:var(--space-3)}
  .hot-card{padding:var(--space-4)}
  .hot-card-meta{flex-wrap:wrap;gap:var(--space-2)}

  /* ── 筛选栏 ── */
  .list-filters{gap:var(--space-1)}
  .list-filters .filter-btn{padding:4px 10px;font-size:var(--text-xs)}
  .list-filters select{padding:4px 6px;font-size:var(--text-xs);max-width:100px}

  /* ── 帖子列表 ── */
  .post-item{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) 0}
  .post-item:hover{margin:0 calc(-1*var(--space-3));padding-left:var(--space-3);padding-right:var(--space-3)}
  .post-item-left{width:100%}
  .post-item-stats{gap:var(--space-2)}
  .post-type-icon{width:1.75rem;height:1.75rem;font-size:.85rem}
  .post-item-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

  /* ── 分页 ── */
  .pagination{gap:4px}
  .pagination a{padding:4px 8px;font-size:var(--text-xs)}

  /* ── 详情页 ── */
  .reply-header{flex-wrap:wrap}
  .reply-header-right{margin-left:0;width:100%;justify-content:flex-end;margin-top:var(--space-2)}
  .reply-footer{flex-wrap:wrap;gap:var(--space-2)}
  .post-actions{flex-wrap:wrap;gap:var(--space-2)}
  .reply-form{padding:var(--space-4)}

  /* ── 认证卡片 ── */
  .auth-card-auth{max-width:100%;padding:var(--space-5) var(--space-4)}
  .auth-card-auth h1{font-size:var(--text-lg);margin-bottom:var(--space-4)}
  .captcha-row{gap:var(--space-2)}
  .captcha-img{width:110px;height:42px}

  /* ── 发帖页 ── */
  .create-layout{padding:var(--space-6) var(--space-3) var(--space-8)}
  .create-header{margin-bottom:var(--space-5)}
  .create-form-card{padding:var(--space-4)}
  .form-actions{flex-direction:column;gap:var(--space-3);align-items:stretch}
  .form-actions .btn{width:100%}
  .form-hint{text-align:center}
  .upload-area{flex-wrap:wrap}

  /* ── 公约页 ── */
  .pact-content{padding:var(--space-4)}
  .pact-rules li{gap:var(--space-2);font-size:var(--text-sm)}

  /* ── 主题栏 ── */
  .topic-bar{padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);gap:var(--space-2)}
  .topic-bar-label{font-size:var(--text-xs)}

  /* ── 页脚 ── */
  .site-footer{padding:var(--space-4) 0;margin-top:var(--space-4)}
  .footer-inner{flex-direction:column;text-align:center;gap:var(--space-2)}
}

/* ==========================================
   响应式 · 保留原有断点（兼容）
   ========================================== */
@media(max-width:860px){}
@media(max-width:680px){.hot-grid{grid-template-columns:1fr}}
@media(max-width:700px){.admin-cols{grid-template-columns:1fr}.admin-sidebar{width:180px;font-size:var(--text-xs)}.admin-main{padding:var(--space-4)}}
@media(max-width:520px){.form-row{flex-direction:column}.pact-content{padding:var(--space-5)}.post-body{padding:var(--space-5)}.create-form-card{padding:var(--space-5)}.auth-card-auth{padding:var(--space-5)}.admin-wrap{flex-direction:column;position:relative}.admin-sidebar{width:100%;max-width:240px;height:auto;position:absolute;top:0;left:0;z-index:50;display:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.admin-sidebar.sidebar-open{display:block}.admin-main{padding:var(--space-4)}}

/* EasyMDE 移动端工具栏适配 (≤420px) */
@media(max-width:420px){
  .EasyMDEContainer .editor-toolbar{flex-wrap:wrap;gap:2px;padding:4px 2px}
  .EasyMDEContainer .editor-toolbar button{width:32px;height:32px;margin:0;padding:4px}
  .EasyMDEContainer .editor-toolbar i.separator{margin:0 1px}
  .EasyMDEContainer .CodeMirror{font-size:15px;line-height:1.5}
  .EasyMDEContainer .editor-statusbar{font-size:11px;flex-wrap:wrap;gap:4px}
  .EasyMDEContainer .editor-preview-active,
  .EasyMDEContainer .editor-preview-active-side{width:100%;position:static}
  /* 侧边预览在窄屏改为上下布局 */
  .EasyMDEContainer .CodeMirror-sided{width:100%!important}
  .EasyMDEContainer .editor-preview-side{width:100%!important;border-left:none;border-top:2px solid var(--border-default)}
}
