:root{
  --bg:#0a0e14;
  --panel:#0f1620;
  --line:#1c2734;
  --text:#d8e2ee;
  --muted:#8b9aab;
  --accent:#4dd6ff;
  --accent-dim:rgba(77,214,255,.14);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:16px;
  line-height:1.75;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:"Cascadia Code","JetBrains Mono",Consolas,monospace}
.shell{max-width:820px;margin:0 auto;padding:24px 20px 64px}
.site-head{
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:14px;margin-bottom:28px;
}
.brand{font-size:19px;font-weight:600;letter-spacing:.5px}
.brand .dot{color:var(--accent)}
.nav a{margin-left:14px;color:var(--muted);font-size:13.5px}
.nav a:hover{color:var(--accent)}
.status-line{
  font-family:Consolas,monospace;font-size:12.5px;color:var(--muted);
  margin-bottom:26px;white-space:pre-wrap;
}
.status-line .ok{color:var(--accent)}
.post-list{list-style:none;margin:0;padding:0}
.post-item{
  border:1px solid var(--line);border-radius:8px;
  background:var(--panel);
  padding:16px 18px;margin-bottom:14px;
  transition:border-color .15s, transform .15s;
}
.post-item:hover{border-color:var(--accent-dim);transform:translateY(-1px)}
.post-title{font-size:17px;font-weight:600;margin:0 0 6px}
.post-meta{font-family:Consolas,monospace;font-size:12.5px;color:var(--muted);margin-bottom:8px}
.post-excerpt{color:var(--muted);font-size:14px;margin:0}
.article-body h1,.article-body h2,.article-body h3{margin:26px 0 12px;font-weight:650}
.article-body h1{font-size:26px;margin-top:8px}
.article-body h2{font-size:20px;border-left:3px solid var(--accent);padding-left:10px}
.article-body p{margin:14px 0}
.article-body pre{
  background:#0b1119;border:1px solid var(--line);border-radius:8px;
  padding:14px 16px;overflow:auto;font-family:Consolas,monospace;font-size:13.5px;
}
.article-body code{font-family:Consolas,monospace;background:#0d141d;padding:2px 6px;border-radius:5px;font-size:.9em}
.article-body pre code{background:none;padding:0}
.article-body ul,.article-body ol{padding-left:22px;margin:12px 0}
.article-body blockquote{
  border-left:3px solid var(--accent);margin:16px 0;padding:8px 14px;
  color:var(--muted);background:rgba(77,214,255,.05);border-radius:0 8px 8px 0;
}
.article-body table{border-collapse:collapse;margin:16px 0;width:100%}
.article-body th,.article-body td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.article-body th{background:#101927}
.back-link{display:inline-block;margin-bottom:18px;font-size:13.5px;color:var(--muted)}
.footer{margin-top:44px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12.5px;font-family:Consolas,monospace}
.admin-wrap{max-width:760px;margin:0 auto;padding:24px 20px 64px}
.login-box{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:28px;max-width:380px;margin:60px auto}
.login-box h2{margin:0 0 18px;font-size:18px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
input[type=text],input[type=password],textarea{
  width:100%;background:#0b1119;border:1px solid var(--line);color:var(--text);
  border-radius:7px;padding:10px 12px;font-size:14px;font-family:inherit;
}
textarea#md{min-height:380px;resize:vertical;font-family:Consolas,monospace;font-size:13.5px;line-height:1.6}
.btn{
  display:inline-block;background:var(--accent-dim);border:1px solid rgba(77,214,255,.4);
  color:var(--accent);border-radius:7px;padding:9px 18px;cursor:pointer;font-size:14px;
}
.btn:hover{background:rgba(77,214,255,.22)}
.btn:disabled{opacity:.45;cursor:default}
.msg{margin-top:12px;font-size:13.5px;color:var(--muted)}
.msg.err{color:#ff8f8f}
.admin-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:22px}
.article-body a{color:var(--accent)}