/* AndrewBlog 品牌主题 —— 在 Pico.css 之上覆盖配色与字体，暖白 + 品牌蓝 */

:root:not([data-theme="dark"]) {
  --font-sans: "Public Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-serif: "Source Serif 4", "Noto Serif SC", Georgia, serif;

  --ink: #2b2621;
  --ink-strong: #221d19;
  --muted: #9c9082;
  --muted-soft: #7a6f62;
  --paper: #faf6f0;
  --paper-raised: #fffdf9;
  --border: #e6ddd0;
  --accent: #3a7abf;
  --accent-dark: #2c5c8c;
  --accent-light: #6ea3d1;
  --accent-tint: #e8f2fb;
  --accent-tint-strong: #d3e6f5;
  --accent-tint-border: #b8d4ea;
  --danger: #b3402a;
  --danger-dark: #8f3220;
  --success: #4f8f6a;

  --pico-font-family: var(--font-sans);
  --pico-background-color: var(--paper);
  --pico-color: var(--ink);
  --pico-muted-color: var(--muted);
  --pico-muted-border-color: var(--border);

  --pico-primary: var(--accent);
  --pico-primary-background: var(--accent);
  --pico-primary-border: var(--accent);
  --pico-primary-hover: var(--accent-dark);
  --pico-primary-hover-background: var(--accent-dark);
  --pico-primary-hover-border: var(--accent-dark);
  --pico-primary-underline: rgba(58, 122, 191, .5);
  --pico-primary-focus: rgba(58, 122, 191, .35);
  --pico-primary-inverse: var(--paper);

  --pico-secondary: var(--muted-soft);
  --pico-secondary-background: var(--muted-soft);
  --pico-secondary-border: var(--muted-soft);
  --pico-secondary-hover: #4a4038;
  --pico-secondary-hover-background: #4a4038;
  --pico-secondary-hover-border: #4a4038;
  --pico-secondary-focus: rgba(122, 111, 98, .3);
  --pico-secondary-inverse: var(--paper);

  --pico-contrast: var(--danger);
  --pico-contrast-background: var(--danger);
  --pico-contrast-border: var(--danger);
  --pico-contrast-hover: var(--danger-dark);
  --pico-contrast-hover-background: var(--danger-dark);
  --pico-contrast-hover-border: var(--danger-dark);
  --pico-contrast-focus: rgba(179, 64, 42, .3);
  --pico-contrast-inverse: var(--paper);

  --pico-ins-color: var(--success);
  --pico-del-color: var(--danger);

  --pico-card-background-color: var(--paper-raised);

  --pico-form-element-background-color: var(--paper-raised);
  --pico-form-element-border-color: #d9cfc0;
  --pico-form-element-color: var(--ink);
  --pico-form-element-active-border-color: var(--accent);
  --pico-form-element-focus-color: rgba(58, 122, 191, .35);
}

:is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--ink-strong);
  letter-spacing: -0.005em;
}

header.container nav {
  max-width: 760px; margin-inline: auto;
  padding-bottom: 1rem; border-bottom: 1px solid var(--border);
}

/* 后台是数据/工具页，不是阅读页——表格需要比 760px 阅读列更宽的空间，
   给后台单独一条更宽的对齐线，nav 跟正文用同一条，"新建文章"跟表格右边对齐 */
body.admin header.container nav { max-width: 1100px; }
body.admin main.container { max-width: 1100px; margin-inline: auto; }

/* 兜底：标题/Slug 特别长的文章还是可能把表格撑宽，让它自己滚，
   别把外面已经对齐的宽度撑破 */
body.admin figure { overflow-x: auto; }

/* 状态、创建时间内容本来就短，标题/Slug 太长时表格会先紧着长内容分配空间，
   把这两列越挤越窄，"已发布"被拆成三行——这两列不许换行，宽度让给标题/Slug */
body.admin table th:nth-child(3), body.admin table td:nth-child(3),
body.admin table th:nth-child(4), body.admin table td:nth-child(4) {
  white-space: nowrap;
}

/* 表格最后一列自带右内边距，"删除"按钮会比上面的「新建文章」缩进一截——
   清零右内边距，两者的右边界精确对齐 */
body.admin table th:last-child, body.admin table td:last-child {
  padding-right: 0;
}

/* 操作列三个按钮都带着 Pico 给按钮的默认 margin-bottom:20px（本来是给
   竖着堆的按钮留间距的），标题/Slug 换行撑高整行时，这份"幽灵下边距"
   会被 vertical-align:middle 算进去，把按钮整体往上顶——清零 */
body.admin table td :is(a[role=button], button) {
  margin-top: 0; margin-bottom: 0;
}

/* 封面图片的「选择文件」按钮跟标签输入框视觉高度对不上：文件框自己有
   一层上下内边距，按钮在里面又有一层，两层叠加把按钮挤成比标签框矮一截。
   文件框自己的上下内边距清零，按钮就能撑满，跟标签框一样高 */
#cover_input { padding-top: 0; padding-bottom: 0; }
/* 清零内边距还不够——按钮本身只按自己的文字+内边距撑高（约46px），
   在文件框里靠上对齐，下面留了一截空白，肉眼看着比标签框矮一截。
   像素级量过：按钮实际画到 y=1274，框真正的底是 1290.5，差 16px。
   把按钮自己的高度锁定撑满 100%，才是真的顶到框的上下边缘 */
#cover_input::file-selector-button {
  height: 100%;
  box-sizing: border-box;
}

/* 退出走 <button> 而不是 <a role=button>，Pico 给两者的导航内边距算下来
   对不上（变量换算路径不同），直接按「后台」实测的内边距钉死，保证像素级一致 */
header.container nav form button {
  padding: 7.5px 10px !important;
}

/* nav li 内容默认按 inline 基线对齐——<a> 是 inline-block 走 baseline，
   跟 <form> 这种块级元素的居中方式不一样，同一行元素会一个偏上一个居中。
   把每个 li 自己变成 flex 容器，用几何居中统一对齐方式，跟内容类型无关 */
header.container nav li {
  display: flex; align-items: center;
}
/* Pico 给 [role=button] 链接一个 -10px 的 margin-top（大概是给别处的基线
   对齐用的补偿），margin-bottom 却是 0——even 在 flex 居中的 li 里也会
   把它顶偏上去，跟旁边真正的 <button> 对不齐。直接清零 */
header.container nav li a[role=button] {
  margin-top: 0;
}

.site-title {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-serif); font-style: italic; font-weight: 600; font-size: 1.2rem;
  color: var(--ink-strong); text-decoration: none;
}
.site-title svg { flex-shrink: 0; }

.eyebrow {
  font-family: var(--font-sans); font-size: .72rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent); font-weight: 600;
}

.subtitle { font-family: var(--font-sans); color: var(--muted-soft); font-size: .95rem; margin: .15rem 0 0; }

.tag {
  display: inline-block; font-family: var(--font-sans); font-size: .72rem; font-weight: 500;
  color: var(--accent); background: var(--accent-tint); border-radius: 999px;
  padding: .15rem .6rem; letter-spacing: .01em; vertical-align: middle; line-height: 1.4; margin-right: .25rem;
}

.post-meta { font-family: var(--font-sans); color: var(--muted); font-size: .82rem; letter-spacing: .01em; }

.post-title-link { color: var(--ink-strong); text-decoration: none; }
.post-title-link:hover { color: var(--accent); }

article.post-row {
  background: none; border: none; box-shadow: none; padding: 2rem 0 0; margin: 2rem 0 0;
  border-top: 1px solid var(--border);
}
article.post-row:first-child { margin-top: 0; }

article.comment-row {
  background: none; border: none; box-shadow: none; padding: 1rem 0 0; margin: 1rem 0 0;
  border-top: 1px solid var(--border);
}
article.comment-row:first-child { margin-top: 0; border-top: none; padding-top: 0; }

article.post-row > header, article.post-row > footer,
article.comment-row > header, article.comment-row > footer {
  margin-left: 0; margin-right: 0; padding: 0; border: none; background: none;
}

.readmore-link {
  font-family: var(--font-sans); font-size: .85rem; font-weight: 600; color: var(--accent); text-decoration: none;
}
.readmore-link:hover { color: var(--accent-dark); text-decoration: underline; }

.reading-col { max-width: 760px; margin-inline: auto; }

.post-cover {
  display: block; width: 100%; height: auto; max-height: 600px;
  object-fit: contain; border-radius: 8px; margin-bottom: 1.5rem;
}

.post-body img { display: block; max-width: 100%; height: auto; margin-inline: auto; border-radius: 6px; }
.post-body pre { overflow-x: auto; }
.post-body table { display: block; max-width: 100%; overflow-x: auto; }

.flash-success { color: var(--success); border-left: 4px solid var(--success); padding-left: .75rem; }
.flash-danger  { color: var(--danger);  border-left: 4px solid var(--danger);  padding-left: .75rem; }
.flash-warning { color: #b8862f;        border-left: 4px solid #b8862f;       padding-left: .75rem; }
.flash-info    { color: var(--muted);   border-left: 4px solid var(--muted);  padding-left: .75rem; }

@media (max-width: 600px) {
  header.container nav { flex-wrap: wrap; row-gap: .6rem; }
  .site-title { font-size: 1.05rem; }
}
