/* admin-blog.html 后台样式 - 提取于 2026-07-11 */
/* 由 api-server.py STATIC_SERVE 提供 */


    :root {
      --admin-bg: #f0f2f5;
      --admin-card: #fff;
      --admin-primary: #0D6EAA;
      --admin-primary-light: #3ba3db;
      --admin-danger: #E74C3C;
      --admin-success: #27AE60;
      --admin-warning: #F5A623;
      --admin-border: #e2e8f0;
      --admin-text: #1a202c;
      --admin-text-light: #718096;
      --admin-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
      --admin-shadow-hover: 0 4px 12px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.04);
      --admin-radius: 12px;
      --admin-transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
      background: var(--admin-bg);
      color: var(--admin-text);
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
    }

    /* ===== 顶部栏 ===== */
    .admin-header {
      background: linear-gradient(135deg, #0a1a2e, #134164);
      color: #fff;
      padding: 0 32px;
      height: 60px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 2px 12px rgba(0,0,0,0.2);
      position: sticky;
      top: 0;
      z-index: 100;
    }
    .admin-header-left { display: flex; align-items: center; gap: 16px; }
    .admin-header-left h1 { font-size: 18px; font-weight: 700; letter-spacing: 0.5px; }
    .admin-header-left .badge {
      padding: 3px 10px;
      background: rgba(245,166,35,0.2);
      color: var(--admin-warning);
      font-size: 11px; font-weight: 700;
      border-radius: 50px;
      border: 1px solid rgba(245,166,35,0.3);
    }
    .admin-header-right { display: flex; align-items: center; gap: 16px; font-size: 13px; }
    .admin-header-right a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s; }
    .admin-header-right a:hover { color: #fff; }
    .status-dot {
      width: 8px; height: 8px; background: var(--admin-success);
      border-radius: 50%; display: inline-block; margin-right: 6px;
      box-shadow: 0 0 6px rgba(39,174,96,0.5);
    }
    .status-dot.offline { background: var(--admin-danger); box-shadow: 0 0 6px rgba(231,76,60,0.5); }

    /* ===== 统计卡片（科技风） ===== */
    .stats-bar {
      margin-left: 240px;
      margin-right: 24px;
      padding: 20px 0 0;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
    }
    .stat-card {
      position: relative;
      background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
      border-radius: var(--admin-radius);
      padding: 20px 22px;
      box-shadow: 0 0 0 1px rgba(94, 234, 212, 0.08), 0 4px 16px rgba(0,0,0,0.35);
      display: flex;
      align-items: center;
      gap: 16px;
      transition: var(--admin-transition);
      overflow: hidden;
    }
    .stat-card::before {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: var(--admin-radius);
      padding: 1px;
      background: linear-gradient(135deg, rgba(56, 189, 248, 0.45), rgba(94, 234, 212, 0.15), rgba(56, 189, 248, 0.05));
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
    }
    .stat-card::after {
      content: '';
      position: absolute;
      top: -50%; right: -50%;
      width: 200%; height: 200%;
      background: radial-gradient(circle, rgba(56,189,248,0.07) 0%, transparent 70%);
      pointer-events: none;
    }
    .stat-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 0 0 1px rgba(94, 234, 212, 0.18), 0 8px 28px rgba(0,0,0,0.45), 0 0 20px rgba(56,189,248,0.08);
    }
    .stat-icon {
      width: 48px; height: 48px;
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      font-size: 24px;
      flex-shrink: 0;
      position: relative;
      z-index: 1;
      background: rgba(255,255,255,0.05);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1), 0 0 12px currentColor;
    }
    .stat-icon.blue { color: #38bdf8; }
    .stat-icon.green { color: #34d399; }
    .stat-icon.orange { color: #fbbf24; }
    .stat-icon.purple { color: #a78bfa; }
    .stat-info { position: relative; z-index: 1; }
    .stat-info h3 {
      font-size: 26px;
      font-weight: 800;
      line-height: 1.1;
      color: #f8fafc;
      letter-spacing: 0.5px;
      font-family: 'SF Mono', 'Segoe UI', 'Roboto Mono', monospace;
      text-shadow: 0 0 18px rgba(56, 189, 248, 0.25);
    }
    .stat-info p {
      font-size: 12px;
      color: #94a3b8;
      margin-top: 4px;
      letter-spacing: 0.5px;
      text-transform: uppercase;
    }

    /* 数字加载动画 */
    @keyframes statPulse {
      0% { transform: scale(1); }
      50% { transform: scale(1.04); }
      100% { transform: scale(1); }
    }
    .stat-card.loading h3 { animation: statPulse 1.2s ease-in-out infinite; opacity: 0.7; }

    /* 小标签/徽章（扩展用） */
    .stat-trend {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 11px;
      font-weight: 600;
      padding: 2px 8px;
      border-radius: 50px;
      margin-left: 8px;
      background: rgba(52, 211, 153, 0.12);
      color: #34d399;
      border: 1px solid rgba(52, 211, 153, 0.2);
    }
    .stat-trend.down { background: rgba(248, 113, 113, 0.12); color: #f87171; border-color: rgba(248, 113, 113, 0.2); }

    /* ===== 主布局：左侧固定边栏 + 中间/右侧内容 ===== */
    .admin-main {
      margin-left: 240px;
      margin-right: 24px;
      padding: 0 0 24px;
      display: grid;
      grid-template-columns: 1fr 280px;
      gap: 16px;
      align-items: start;
    }
    .admin-main > .left-col {
      position: fixed;
      left: 0;
      top: 60px;
      width: 240px;
      height: calc(100vh - 60px);
      z-index: 10;
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .admin-main > .center-col { min-width: 0; }
    .admin-main > .right-col { position: sticky; top: 76px; }

    /* 列表工具栏（独立全宽，右侧缩进） */
    .toolbar {
      margin-left: 240px;
      margin-right: 24px;
      margin-bottom: 16px;
      max-width: 1400px;
    }

    /* 文章列表面板（紧凑） */
    .admin-panel {
      background: var(--admin-card);
      border-radius: 0 var(--admin-radius) var(--admin-radius) 0;
      box-shadow: var(--admin-shadow);
      overflow: hidden;
      height: 100%;
      max-height: none;
      display: flex;
      flex-direction: column;
    }
    .post-list { overflow-y: auto; flex: 1; min-height: 200px; }
    .post-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      border-bottom: 1px solid var(--admin-border);
      transition: var(--admin-transition);
      cursor: pointer;
      position: relative;
    }
    .post-item:hover { background: #f8fafc; }
    .post-item:last-child { border-bottom: none; }
    .post-item.active {
      background: #EBF5FB;
      border-left: 3px solid var(--admin-primary);
      padding-left: 9px;
    }
    .post-thumb {
      width: 40px; height: 40px;
      border-radius: 6px;
      flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; color: #fff;
      overflow: hidden;
    }
    .post-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .post-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
    .post-info h3 {
      font-size: 13px; font-weight: 600;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      line-height: 1.4;
    }
    .post-info .meta {
      font-size: 11px; color: var(--admin-text-light);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      display: flex; align-items: center; gap: 6px;
    }
    .post-info .meta span { white-space: nowrap; }
    .post-info .meta .tag {
      display: inline-block;
      padding: 1px 5px;
      border-radius: 3px;
      font-size: 10px;
      font-weight: 600;
      background: #EBF5FB;
      color: var(--admin-primary);
      flex-shrink: 0;
    }
    .post-actions {
      display: flex; gap: 4px;
      flex-shrink: 0;
      opacity: 0;
      transition: opacity 0.2s;
    }
    .post-item:hover .post-actions { opacity: 1; }
    .post-actions .btn-sm { padding: 4px 8px; font-size: 11px; }

    /* 右侧面板 */
    .properties-panel {
      background: var(--admin-card);
      border-radius: var(--admin-radius);
      box-shadow: var(--admin-shadow);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      max-height: calc(100vh - 92px);
      overflow-y: auto;
    }
    .properties-panel .panel-header { padding: 14px 18px; }
    .properties-form { padding: 16px 18px; display: flex; flex-direction: column; gap: 14px; }
    .properties-form .form-field label { font-size: 12px; margin-bottom: 4px; }
    .properties-form .form-field input,
    .properties-form .form-field select,
    .properties-form .form-field textarea {
      padding: 8px 10px;
      font-size: 13px;
    }
    .properties-form .hint { font-size: 10px; }
    .properties-form .checkbox-row {
      display: flex; align-items: center; gap: 16px;
      font-size: 13px;
    }
    .word-count { font-size: 12px; color: var(--admin-text-light); text-align: right; margin-top: 8px; }
    .word-count strong { color: var(--admin-text); }

    /* 编辑器面板（居中、更宽） */
    .editor-panel {
      background: var(--admin-card);
      border-radius: var(--admin-radius);
      box-shadow: var(--admin-shadow);
      display: flex;
      flex-direction: column;
      min-width: 0;
    }
    .editor-panel .panel-header {
      padding: 16px 24px;
      border-bottom: 1px solid var(--admin-border);
      display: flex; justify-content: space-between; align-items: center;
    }
    .editor-form {
      padding: 24px 32px 32px;
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .editor-form .title-field input {
      font-size: 22px; font-weight: 700;
      padding: 12px 0;
      border: none; border-bottom: 2px solid var(--admin-border);
      border-radius: 0;
      background: transparent;
    }
    .editor-form .title-field input:focus {
      border-color: var(--admin-primary);
      box-shadow: none;
    }
    .toolbar {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 16px 20px;
      background: var(--admin-card);
      border-radius: var(--admin-radius);
      box-shadow: var(--admin-shadow);
      margin-bottom: 16px;
      flex-wrap: wrap;
    }
    .toolbar-left { display: flex; align-items: center; gap: 12px; flex: 1; }
    .toolbar-right { display: flex; align-items: center; gap: 8px; }

    .search-box {
      position: relative;
      flex: 1;
      max-width: 320px;
    }
    .search-box input {
      width: 100%;
      padding: 9px 14px 9px 38px;
      border: 1px solid var(--admin-border);
      border-radius: 8px;
      font-size: 14px;
      transition: var(--admin-transition);
      background: #f8fafc;
    }
    .search-box input:focus {
      outline: none;
      border-color: var(--admin-primary);
      background: #fff;
      box-shadow: 0 0 0 3px rgba(13,110,170,0.1);
    }
    .search-box .search-icon {
      position: absolute;
      left: 12px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--admin-text-light);
      font-size: 16px;
    }
    .filter-select {
      padding: 9px 14px;
      border: 1px solid var(--admin-border);
      border-radius: 8px;
      font-size: 14px;
      background: #f8fafc;
      cursor: pointer;
      transition: var(--admin-transition);
    }
    .filter-select:focus {
      outline: none;
      border-color: var(--admin-primary);
      box-shadow: 0 0 0 3px rgba(13,110,170,0.1);
    }

    /* ===== 文章列表 ===== */
    .admin-panel {
      background: var(--admin-card);
      border-radius: var(--admin-radius);
      box-shadow: var(--admin-shadow);
      overflow: hidden;
    }
    .panel-header {
      padding: 18px 24px;
      border-bottom: 1px solid var(--admin-border);
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .panel-header h2 { font-size: 17px; font-weight: 700; }
    .panel-header .count { font-size: 13px; color: var(--admin-text-light); font-weight: 500; }

    .btn-sm {
      padding: 6px 14px;
      font-size: 12px; font-weight: 600;
      border: 1px solid var(--admin-border);
      border-radius: 6px; cursor: pointer;
      background: #fff; color: var(--admin-text);
      transition: var(--admin-transition);
      white-space: nowrap;
    }
    .btn-sm:hover { background: #f7fafc; border-color: #cbd5e0; }
    .btn-sm.danger { color: var(--admin-danger); border-color: #fecaca; }
    .btn-sm.danger:hover { background: #fef2f2; border-color: var(--admin-danger); }

    .btn-primary {
      padding: 9px 22px;
      font-size: 13px; font-weight: 700;
      border: none; border-radius: 8px; cursor: pointer;
      background: linear-gradient(135deg, var(--admin-primary), var(--admin-primary-light));
      color: #fff;
      transition: var(--admin-transition);
      box-shadow: 0 2px 8px rgba(13,110,170,0.25);
    }
    .btn-primary:hover {
      transform: translateY(-1px);
      box-shadow: 0 4px 16px rgba(13,110,170,0.35);
    }

    /* ===== 分页 ===== */
    .pagination {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 16px 24px;
      border-top: 1px solid var(--admin-border);
    }
    .page-btn {
      min-width: 36px; height: 36px;
      display: flex; align-items: center; justify-content: center;
      border: 1px solid var(--admin-border);
      border-radius: 8px;
      background: #fff;
      color: var(--admin-text);
      font-size: 14px; font-weight: 600;
      cursor: pointer;
      transition: var(--admin-transition);
    }
    .page-btn:hover:not(:disabled) {
      background: var(--admin-primary);
      color: #fff;
      border-color: var(--admin-primary);
    }
    .page-btn.active {
      background: var(--admin-primary);
      color: #fff;
      border-color: var(--admin-primary);
    }
    .page-btn:disabled { opacity: 0.4; cursor: not-allowed; }
    .page-info { font-size: 13px; color: var(--admin-text-light); margin: 0 12px; }

    .form-field label {
      display: block;
      font-size: 13px; font-weight: 600;
      color: var(--admin-text);
      margin-bottom: 6px;
    }
    .form-field label .required { color: var(--admin-danger); margin-left: 2px; }
    .form-field input,
    .form-field textarea,
    .form-field select {
      width: 100%;
      padding: 10px 14px;
      border: 1px solid var(--admin-border);
      border-radius: 8px;
      font-size: 14px;
      font-family: inherit;
      color: var(--admin-text);
      transition: var(--admin-transition);
      background: #fff;
    }
    .form-field input:focus,
    .form-field textarea:focus,
    .form-field select:focus {
      outline: none;
      border-color: var(--admin-primary);
      box-shadow: 0 0 0 3px rgba(13,110,170,0.1);
    }
    .form-field textarea { resize: vertical; min-height: 80px; }
    .form-field .hint { font-size: 11px; color: var(--admin-text-light); margin-top: 4px; }

    /* ===== 编辑器工具栏 ===== */
    .editor-toolbar {
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      padding: 8px 12px;
      background: #f8fafc;
      border: 1px solid var(--admin-border);
      border-radius: 8px 8px 0 0;
      border-bottom: none;
      align-items: center;
      user-select: none;
    }
    .editor-toolbar .et-btn {
      width: 34px; height: 34px;
      display: flex; align-items: center; justify-content: center;
      border: 1px solid transparent;
      border-radius: 6px;
      background: transparent;
      color: var(--admin-text);
      font-size: 14px;
      cursor: pointer;
      transition: all 0.15s;
    }
    .editor-toolbar .et-btn:hover { background: #e2e8f0; border-color: #cbd5e0; }
    .editor-toolbar .et-btn.active { background: #e0f2fe; border-color: var(--admin-primary); color: var(--admin-primary); }
    .editor-toolbar .et-sep {
      width: 1px; height: 24px;
      background: var(--admin-border);
      margin: 0 6px;
      flex-shrink: 0;
    }
    .editor-toolbar .et-label {
      font-size: 11px; color: var(--admin-text-light);
      margin-left: 8px;
    }

    /* 富文本编辑器容器 */
    .editor-content-area {
      position: relative;
      border: 1px solid var(--admin-border);
      border-radius: 0 0 8px 8px;
      background: #fff;
      transition: all 0.3s;
      min-height: 480px;
      overflow: hidden;
    }
    .weditor-toolbar {
      border-bottom: 1px solid var(--admin-border);
      background: #f8fafc;
    }
    .weditor-toolbar .w-e-bar {
      background: #f8fafc;
    }
    .weditor-container {
      min-height: 420px;
      background: #fff;
    }
    .weditor-container .w-e-text-container {
      min-height: 420px !important;
      background: #fff;
    }
    .weditor-container .w-e-scroll {
      overflow-y: auto !important;
    }

    /* 预览面板 */
    .editor-preview {
      display: none;
      min-height: 480px;
      max-height: 640px;
      overflow-y: auto;
      padding: 40px 48px;
      font-size: 15px;
      line-height: 1.8;
      font-family: 'PingFang SC','Microsoft YaHei','Noto Serif SC',serif;
      background: #fafafa;
      color: #1a1a2e;
      border: 1px solid var(--admin-border);
      border-top: none;
      border-radius: 0 0 8px 8px;
    }
    .editor-preview.show { display: block; }
    /* 预览中的样式 */
    .editor-preview h1 { font-size: 26px; font-weight: 800; margin: 20px 0 12px; line-height: 1.4; }
    .editor-preview h2 { font-size: 22px; font-weight: 700; margin: 18px 0 10px; padding-bottom: 6px; border-bottom: 1px solid #eee; }
    .editor-preview h3 { font-size: 18px; font-weight: 700; margin: 16px 0 8px; }
    .editor-preview h4 { font-size: 16px; font-weight: 700; margin: 14px 0 6px; }
    .editor-preview p { margin: 0 0 12px; text-indent: 2em; }
    .editor-preview p:first-child { text-indent: 0; }
    .editor-preview ul, .editor-preview ol { margin: 8px 0 12px; padding-left: 2em; }
    .editor-preview li { margin-bottom: 6px; line-height: 1.7; }
    .editor-preview blockquote {
      margin: 12px 0; padding: 12px 20px;
      border-left: 4px solid var(--admin-primary);
      background: #f0f7ff;
      color: #555;
      border-radius: 0 6px 6px 0;
    }
    .editor-preview code {
      padding: 2px 6px; background: #edf2f7; border-radius: 4px;
      font-size: 13px; font-family: 'Consolas','Monaco','Courier New',monospace;
    }
    .editor-preview pre {
      margin: 12px 0; padding: 16px 20px;
      background: #1e293b; color: #e2e8f0;
      border-radius: 8px; overflow-x: auto;
      font-size: 13px; line-height: 1.6;
      font-family: 'Consolas','Monaco','Courier New',monospace;
    }
    .editor-preview pre code { background: none; padding: 0; color: inherit; }
    .editor-preview table { width: 100%; border-collapse: collapse; margin: 12px 0; }
    .editor-preview th, .editor-preview td {
      padding: 8px 12px; border: 1px solid #ddd; text-align: left; font-size: 14px;
    }
    .editor-preview th { background: #f0f4f8; font-weight: 700; }
    .editor-preview img { max-width: 100%; border-radius: 8px; margin: 12px 0; }
    .editor-preview hr { margin: 24px 0; border: none; border-top: 1px solid #eee; }
    .editor-preview a { color: var(--admin-primary); text-decoration: underline; }
    .editor-preview strong { font-weight: 700; }
    .editor-preview em { font-style: italic; }

    /* 模式切换按钮 */
    .editor-mode-toggle {
      display: flex; gap: 4px;
      margin-left: auto;
      background: #edf2f7;
      border-radius: 6px;
      padding: 2px;
    }
    .editor-mode-toggle .em-btn {
      padding: 4px 12px;
      font-size: 12px; font-weight: 600;
      border: none; border-radius: 5px;
      background: transparent; color: var(--admin-text-light);
      cursor: pointer;
      transition: all 0.15s;
    }
    .editor-mode-toggle .em-btn.active {
      background: #fff;
      color: var(--admin-text);
      box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    }
    .editor-mode-toggle .em-btn:hover:not(.active) { color: var(--admin-text); }

    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .btn-row { display: flex; gap: 10px; margin-top: 4px; }
    .btn-cancel {
      flex: 1; padding: 10px;
      font-size: 14px; font-weight: 600;
      border: 1px solid var(--admin-border);
      border-radius: 8px; cursor: pointer;
      background: #fff; color: var(--admin-text-light);
      transition: var(--admin-transition);
    }
    .btn-save {
      flex: 2; padding: 10px;
      font-size: 14px; font-weight: 700;
      border: none; border-radius: 8px; cursor: pointer;
      background: linear-gradient(135deg, var(--admin-primary), var(--admin-primary-light));
      color: #fff;
      transition: var(--admin-transition);
    }
    .btn-cancel:hover { background: #f7fafc; }
    .btn-save:hover { opacity: 0.9; transform: translateY(-1px); }

    /* ===== 加载动画 ===== */
    .loading-skeleton {
      padding: 16px 24px;
      display: flex;
      align-items: center;
      gap: 16px;
    }
    .skeleton-thumb {
      width: 72px; height: 54px;
      border-radius: 8px;
      background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s infinite;
      flex-shrink: 0;
    }
    .skeleton-lines { flex: 1; }
    .skeleton-line {
      height: 14px;
      border-radius: 4px;
      background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s infinite;
      margin-bottom: 8px;
    }
    .skeleton-line:last-child { width: 60%; }
    @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

    .spinner {
      width: 16px; height: 16px;
      border: 2px solid rgba(255,255,255,0.3);
      border-top-color: #fff;
      border-radius: 50%;
      animation: spin 0.6s linear infinite;
      display: inline-block;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    /* ===== 空状态 ===== */
    .empty-state {
      text-align: center;
      padding: 60px 20px;
      color: var(--admin-text-light);
    }
    .empty-state .empty-icon { font-size: 48px; margin-bottom: 12px; opacity: 0.6; }
    .empty-state p { font-size: 14px; line-height: 1.6; }

    /* ===== Toast ===== */
    .toast {
      position: fixed;
      top: 24px; left: 50%;
      transform: translateX(-50%) translateY(-20px);
      padding: 12px 28px;
      border-radius: 8px;
      font-size: 14px; font-weight: 600;
      color: #fff;
      z-index: 9999;
      opacity: 0;
      transition: opacity 0.3s, transform 0.3s;
      pointer-events: none;
      box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    }
    .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
    .toast.success { background: var(--admin-success); }
    .toast.error { background: var(--admin-danger); }

    /* ===== 响应式 ===== */
    @media (max-width: 1200px) {
      .admin-main { grid-template-columns: 1fr; margin-right: 24px; }
      .admin-main > .right-col { display: none; }
      .center-col .form-row { grid-template-columns: 1fr; }
      .editor-form { padding: 20px 24px; }
    }
    @media (max-width: 768px) {
      .admin-main {
        margin-left: 0;
        grid-template-columns: 1fr;
        padding: 0 16px 16px;
      }
      .admin-main > .left-col {
        position: static;
        width: auto;
        height: auto;
        margin-bottom: 16px;
      }
      .admin-main > .right-col {
        position: static; max-height: none;
      }
      .admin-panel {
        border-radius: var(--admin-radius);
        max-height: 50vh;
        height: auto;
      }
      .editor-panel { position: static; max-height: none; }
      .editor-form { padding: 16px 20px; }
      .editor-form .title-field input { font-size: 18px; }
      .editor-content-area, .weditor-container { min-height: 360px; }
      .weditor-container .w-e-text-container { min-height: 300px !important; }
      .stats-bar { grid-template-columns: repeat(2, 1fr); margin-left: 0; margin-right: 0; padding: 16px 16px 0; }
      .toolbar { margin-left: 16px; margin-right: 16px; }
    }
    @media (max-width: 640px) {
      .stats-bar { grid-template-columns: 1fr; }
      .admin-header { padding: 0 16px; }
      .toolbar { margin: 0 16px 12px; }
      .search-box { max-width: none; }
      .toolbar-left { flex-wrap: wrap; }
      .editor-toolbar { gap: 2px; padding: 6px; }
      .editor-toolbar .et-btn { width: 30px; height: 30px; font-size: 12px; }
      .editor-toolbar .et-sep { margin: 0 2px; }
      .editor-toolbar .et-label { display: none; }
    }
  