:root { color-scheme: light dark; --brand:#1d4ed8; --brand-2:#0f766e; --ink:#0f172a; --muted:#64748b; --line:#e2e8f0; --soft:#f8fafc; }
* { box-sizing: border-box; }
html { background: #eef3f8; scroll-behavior: smooth; }
body {
  margin: 0;
  color: #1e293b;
  background:
    radial-gradient(circle at 12% 0, rgba(45, 212, 191, .13), transparent 30rem),
    radial-gradient(circle at 88% 3%, rgba(37, 99, 235, .14), transparent 28rem),
    linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
  font: 16px/1.86 -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
  overflow-wrap: break-word;
}
.article-site-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(980px, calc(100% - 32px));
  margin: 0 auto;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(226, 232, 240, .84);
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(16px);
}
.article-site-logo { display:inline-flex; align-items:center; gap:6px; color:var(--ink); font-size:18px; font-weight:900; letter-spacing:-.02em; text-decoration:none; }
.article-site-logo::before { width:32px; height:32px; border-radius:10px; background:linear-gradient(135deg, var(--brand), var(--brand-2)); box-shadow:0 10px 24px rgba(29,78,216,.28); content:""; }
.article-site-logo strong { color: var(--brand-2); }
.article-site-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.article-site-nav a { padding:8px 11px; border-radius:999px; color:#475569; font-size:14px; font-weight:800; text-decoration:none; }
.article-site-nav a:hover { background:#e8f2ff; color:var(--brand); }
.article-theme-toggle { min-height:34px; padding:0 12px; border:0; border-radius:999px; background:#0f172a; color:#fff; font-size:14px; font-weight:900; cursor:pointer; box-shadow:0 10px 24px rgba(15,23,42,.14); }
.article-theme-toggle:hover { background:var(--brand); }
.article-shell { width:min(980px, calc(100% - 32px)); margin:34px auto 0px; }
.article-card {
  border: 1px solid rgba(226, 232, 240, .96);
  border-radius: 30px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 24px 70px rgba(15, 23, 42, .10);
  overflow: hidden;
}
.article-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; padding:18px 24px; border-bottom:1px solid var(--line); color:#64748b; font-size:14px; font-weight:800; }
.article-breadcrumb a { color:var(--brand); text-decoration:none; }
.article-breadcrumb a:hover { text-decoration:underline; }
.article-head { padding: clamp(26px, 5vw, 46px) clamp(22px, 5vw, 54px) 30px; background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); }
.article-category { display:inline-flex; margin-bottom:15px; padding:7px 12px; border:1px solid rgba(20,184,166,.28); border-radius:999px; background:#ecfdf5; color:#0f766e; font-size:12px; font-weight:900; letter-spacing:.10em; }
h1 { max-width: 880px; margin: 0; color: var(--ink); font-size: clamp(30px, 5vw, 48px); line-height: 1.16; letter-spacing: -.045em; }
.article-excerpt { max-width: 820px; margin: 16px 0 0; color: #566477; font-size: 17px; line-height: 1.9; }
.article-head-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.article-nav-link { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 14px; border:1px solid #cfe0f7; border-radius:999px; background:#fff; color:var(--brand); font-size:14px; font-weight:900; text-decoration:none; box-shadow:0 10px 24px rgba(37,99,235,.08); }
.article-nav-link:hover { border-color:var(--brand); background:#eff6ff; }
.article-content { padding: 8px clamp(22px, 5vw, 54px) 44px; }
.article-content h2 { position:relative; margin:42px 0 18px; padding:0 0 0 15px; color:var(--ink); font-size:clamp(23px, 3vw, 30px); line-height:1.35; letter-spacing:-.03em; }
.article-content h2::before { position:absolute; left:0; top:.18em; width:5px; height:1.05em; border-radius:999px; background:linear-gradient(180deg, var(--brand), var(--brand-2)); content:""; }
.article-content h3 { margin:30px 0 12px; color:#162033; font-size:21px; line-height:1.45; }
.article-content p { margin: 0 0 17px; color:#334155; }
.article-content ul, .article-content ol { margin: 0 0 22px; padding-left: 1.45em; }
.article-content li + li { margin-top: 7px; }
.article-content a { color: var(--brand); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.article-content figure { max-width: 100%; margin: 24px 0; }
.article-content img { display:block; max-width:100%; height:auto; margin:22px auto; border:1px solid #e2e8f0; border-radius:16px; box-shadow:0 14px 38px rgba(15,23,42,.10); }
.article-content table { width:100%; margin:22px 0; border-spacing:0; border-collapse:separate; border:1px solid #dbe3ee; border-radius:16px; overflow:hidden; font-size:14px; }
.article-content th, .article-content td { padding:11px 13px; border-right:1px solid #dbe3ee; border-bottom:1px solid #dbe3ee; text-align:left; vertical-align:top; }
.article-content tr > *:last-child { border-right:0; }
.article-content tr:last-child > * { border-bottom:0; }
.article-content th { background:#f1f7ff; color:#0f172a; font-weight:900; }
.article-content pre { max-width:100%; margin:22px 0; padding:16px; overflow:auto; border:1px solid #dbe3ee; border-radius:16px; background:#0f172a; color:#e2e8f0; font:13px/1.6 Consolas, "Cascadia Mono", monospace; white-space:pre-wrap; }
.article-content code { overflow-wrap:anywhere; }
.article-content blockquote { margin:24px 0; padding:16px 20px; border-left:5px solid var(--brand); border-radius:0 16px 16px 0; background:#eff6ff; color:#475569; }
.wp-block-accordion { margin:20px 0; border:1px solid #dbe3ee; border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 10px 30px rgba(15,23,42,.05); }
.wp-block-accordion-title { padding:14px 16px; background:#f1f7ff; color:var(--ink); font-weight:900; cursor:pointer; }
.wp-block-accordion-content { padding:15px 18px 20px; }
.server-test-accordion { margin:20px 0; border:1px solid #dbe3ee; border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 10px 30px rgba(15,23,42,.05); }
.server-test-accordion .wp-block-accordion-title { padding:14px 16px; background:#f1f7ff; color:var(--ink); font-weight:900; cursor:pointer; }
.server-test-accordion .wp-block-accordion-content { padding:15px 18px 20px; }
.server-test-terminal-viewer { width:max-content; max-width:100%; margin:22px auto 30px; overflow-x:auto; }
.server-test-terminal-head { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin-bottom:10px; }
.server-test-terminal-head h4 { margin:0 0 3px; font-size:16px; line-height:1.4; }
.server-test-terminal-head small { display:block; max-width:720px; overflow:hidden; color:#6b7280; font:12px/1.4 Consolas, "Cascadia Mono", monospace; text-overflow:ellipsis; white-space:nowrap; }
.server-test-terminal-copy { min-height:34px; padding:6px 13px; border:1px solid #cfd6df; border-radius:7px; background:#fff; color:#26354c; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.server-test-terminal-copy:hover { border-color:var(--brand); color:var(--brand); }
.xterm-container { position:relative; box-sizing:border-box; width:auto; max-width:100%; height:500px; max-height:500px!important; margin:0 auto; overflow:hidden; border:0; border-radius:8px; background:#000; box-shadow:0 0 0 1px #303846; }
.xterm-container .xterm { box-sizing:border-box; width:100%!important; height:100%!important; padding:0!important; }
.xterm-container .xterm-viewport { box-sizing:border-box; width:100%!important; max-width:100%!important; overflow-y:auto!important; overflow-x:hidden!important; }
.xterm-container .xterm-screen { max-width:100%; }
.xterm-container .xterm-cursor-layer, .xterm-container .xterm-cursor, .xterm-container .xterm-cursor-block, .xterm-container .xterm-cursor-bar, .xterm-container .xterm-cursor-underline, .xterm-container .xterm-helper-textarea { display:none!important; visibility:hidden!important; }
.xterm-noscript { height:100%; margin:0; padding:14px; overflow:auto; background:#000; color:#f1f4f8; font:13px/1.45 Consolas, "Courier New", monospace; white-space:pre; }
.article-bottom-nav { display:flex; justify-content:space-between; gap:12px; margin-top:34px; padding-top:22px; border-top:1px solid var(--line); }
small { color: var(--muted); }

body.article-theme-dark {
  color:#e5e7eb;
  padding-bottom:70px;
  background:
    radial-gradient(circle at 12% 0, rgba(45, 212, 191, .10), transparent 30rem),
    radial-gradient(circle at 88% 3%, rgba(59, 130, 246, .13), transparent 28rem),
    linear-gradient(180deg, #020617 0%, #0f172a 100%);
  color-scheme: dark;
}
body.article-theme-dark .article-site-topbar { border-color:rgba(51,65,85,.86); background:rgba(15,23,42,.82); }
body.article-theme-dark .article-site-logo,
body.article-theme-dark h1,
body.article-theme-dark .article-content h2,
body.article-theme-dark .article-content h3,
body.article-theme-dark .wp-block-accordion-title { color:#f8fafc; }
body.article-theme-dark .article-site-logo strong { color:#5eead4; }
body.article-theme-dark .article-site-nav a { color:#cbd5e1; }
body.article-theme-dark .article-site-nav a:hover { background:rgba(30,41,59,.9); color:#93c5fd; }
body.article-theme-dark .article-theme-toggle { background:#e2e8f0; color:#0f172a; }
body.article-theme-dark .article-card,
body.article-theme-dark .wp-block-accordion { border-color:rgba(51,65,85,.92); background:rgba(15,23,42,.94); box-shadow:0 24px 70px rgba(0,0,0,.32); }
body.article-theme-dark .article-breadcrumb,
body.article-theme-dark .article-bottom-nav { border-color:#334155; color:#94a3b8; }
body.article-theme-dark .article-head { background:linear-gradient(180deg, #0f172a 0%, #111827 100%); }
body.article-theme-dark .article-category { border-color:rgba(94,234,212,.30); background:rgba(15,118,110,.16); color:#99f6e4; }
body.article-theme-dark .article-excerpt,
body.article-theme-dark .article-content p,
body.article-theme-dark .article-content li,
body.article-theme-dark small { color:#cbd5e1; }
body.article-theme-dark .article-nav-link { border-color:#334155; background:#020617; color:#93c5fd; box-shadow:none; }
body.article-theme-dark .article-nav-link:hover { border-color:#60a5fa; background:#172554; }
body.article-theme-dark .article-content img { border-color:#334155; box-shadow:0 14px 38px rgba(0,0,0,.28); }
body.article-theme-dark .article-content table { border-color:#334155; }
body.article-theme-dark .article-content th,
body.article-theme-dark .article-content td { border-color:#334155; }
body.article-theme-dark .article-content th { background:#172554; color:#f8fafc; }
body.article-theme-dark .wp-block-accordion-title { background:#172554; color:#f8fafc; }
body.article-theme-dark .article-content blockquote { background:rgba(30,64,175,.22); color:#cbd5e1; }
body.article-theme-dark .wp-block-accordion-content { background:#0f172a; }
@media (prefers-color-scheme: dark) {
  body:not(.article-theme-light) {
    color:#e5e7eb;
    background:
      radial-gradient(circle at 12% 0, rgba(45, 212, 191, .10), transparent 30rem),
      radial-gradient(circle at 88% 3%, rgba(59, 130, 246, .13), transparent 28rem),
      linear-gradient(180deg, #020617 0%, #0f172a 100%);
    color-scheme: dark;
  }
  body:not(.article-theme-light) .article-site-topbar { border-color:rgba(51,65,85,.86); background:rgba(15,23,42,.82); }
  body:not(.article-theme-light) .article-site-logo,
  body:not(.article-theme-light) h1,
  body:not(.article-theme-light) .article-content h2,
  body:not(.article-theme-light) .article-content h3,
  body:not(.article-theme-light) .wp-block-accordion-title { color:#f8fafc; }
  body:not(.article-theme-light) .article-site-logo strong { color:#5eead4; }
  body:not(.article-theme-light) .article-site-nav a { color:#cbd5e1; }
  body:not(.article-theme-light) .article-site-nav a:hover { background:rgba(30,41,59,.9); color:#93c5fd; }
  body:not(.article-theme-light) .article-theme-toggle { background:#e2e8f0; color:#0f172a; }
  body:not(.article-theme-light) .article-card,
  body:not(.article-theme-light) .wp-block-accordion { border-color:rgba(51,65,85,.92); background:rgba(15,23,42,.94); box-shadow:0 24px 70px rgba(0,0,0,.32); }
  body:not(.article-theme-light) .article-breadcrumb,
  body:not(.article-theme-light) .article-bottom-nav { border-color:#334155; color:#94a3b8; }
  body:not(.article-theme-light) .article-head { background:linear-gradient(180deg, #0f172a 0%, #111827 100%); }
  body:not(.article-theme-light) .article-category { border-color:rgba(94,234,212,.30); background:rgba(15,118,110,.16); color:#99f6e4; }
  body:not(.article-theme-light) .article-excerpt,
  body:not(.article-theme-light) .article-content p,
  body:not(.article-theme-light) .article-content li,
  body:not(.article-theme-light) small { color:#cbd5e1; }
  body:not(.article-theme-light) .article-nav-link { border-color:#334155; background:#020617; color:#93c5fd; box-shadow:none; }
  body:not(.article-theme-light) .article-nav-link:hover { border-color:#60a5fa; background:#172554; }
  body:not(.article-theme-light) .article-content img { border-color:#334155; box-shadow:0 14px 38px rgba(0,0,0,.28); }
  body:not(.article-theme-light) .article-content table { border-color:#334155; }
  body:not(.article-theme-light) .article-content th,
  body:not(.article-theme-light) .article-content td { border-color:#334155; }
  body:not(.article-theme-light) .article-content th { background:#172554; color:#f8fafc; }
  body:not(.article-theme-light) .wp-block-accordion-title { background:#172554; color:#f8fafc; }
  body:not(.article-theme-light) .article-content blockquote { background:rgba(30,64,175,.22); color:#cbd5e1; }
  body:not(.article-theme-light) .wp-block-accordion-content { background:#0f172a; }
}

@media (max-width: 720px) {
  .article-site-topbar { position:static; width:100%; margin:0; align-items:flex-start; flex-direction:column; }
  .article-site-nav { justify-content:flex-start; }
  .article-shell { width:100%; margin:0; }
  .article-card { border-radius:0; border-inline:0; box-shadow:none; }
  .article-head, .article-content { padding-inline:18px; }
  .article-content table { display:block; max-width:100%; overflow-x:auto; white-space:nowrap; }
  .server-test-terminal-head { align-items:flex-start; flex-direction:column; }
  .server-test-terminal-copy { width:100%; }
  .server-test-terminal-viewer { width:100%; }
  .xterm-container { width:100%!important; max-height:500px!important; }
  .article-bottom-nav { flex-direction:column; align-items:flex-start; }
}

.wp-block-table tr th { white-space:nowrap; }
