:root {
  --text: #333;
  --bg: #fff;
  --link: #0066cc;
  --meta: #666;
  --border: #eee;
  --max-width: 800px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 1rem;
}

a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }

header nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2rem;
}

.site-title { font-size: 1.5rem; font-weight: bold; color: var(--text); }
.nav-links a { margin-left: 1.5rem; }

main { min-height: 60vh; }

footer {
  margin-top: 3rem;
  padding: 1rem 0;
  border-top: 1px solid var(--border);
  color: var(--meta);
  font-size: 0.9rem;
}

h1, h2, h3 { margin: 1.5rem 0 1rem; line-height: 1.3; }
h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }

p, ul, ol, pre, table, blockquote { margin-bottom: 1rem; }

.post-list { list-style: none; }
.post-list li { padding: 0.4rem 0; border-bottom: 1px solid var(--border); }
.post-list time { color: var(--meta); font-size: 0.9rem; margin-right: 1rem; }
.post-list .categories { font-size: 0.8rem; color: var(--meta); margin-left: 0.5rem; }
.post-list .categories span { margin-right: 0.5rem; }

.post header { margin-bottom: 2rem; }
.post .meta { color: var(--meta); font-size: 0.9rem; margin-top: 0.5rem; }
.post .meta a { color: var(--meta); }
.post .content { margin-bottom: 2rem; }
.post .content img { max-width: 100%; height: auto; display: block; margin: 0.5rem 0; }
.post .content iframe { max-width: 100%; margin: 0.5rem 0; }

/* Compact Blogger HTML - collapse excessive whitespace */
.post .content p:empty { display: none; margin: 0; }
.post .content div:empty { display: none; }

/* Make br tags create smaller breaks */
.post .content br { display: block; content: ""; margin: 0.25rem 0; }

/* Reduce spacing on nested divs from Blogger */
.post .content div { margin: 0; padding: 0; }
.post .content p { margin-bottom: 0.5rem; }
.post .content p + p { margin-top: 0.5rem; }

/* Images in links (Blogger wraps images in anchors) */
.post .content a > img { margin: 0.5rem 0; }
.post .content a:has(> img) { display: block; margin: 0.5rem 0; }
.post .content p:has(> a > img) { margin: 0; }
.post .content div:has(> a > img) { margin: 0.5rem 0; }
.post .content pre { background: #f5f5f5; padding: 1rem; overflow-x: auto; }

/* Override hilite.me dark-theme syntax highlighting for light background */
.post .content pre span { color: #333 !important; }
.post .content pre span[style*="color: #6ab825"] { color: #2e7d32 !important; } /* keywords - green */
.post .content pre span[style*="color: #d0d0d0"] { color: #333 !important; }    /* default text - dark grey */
.post .content pre span[style*="color: #3677a9"] { color: #1565c0 !important; } /* numbers - blue */
.post .content pre span[style*="color: #999999"] { color: #666 !important; }    /* comments - grey */
.post .content pre span[style*="color: #ed9d13"] { color: #e65100 !important; } /* strings - orange */
.post .content pre span[style*="color: #ffa500"] { color: #e65100 !important; } /* strings alt - orange */
.post .content pre span[style*="color: #24909d"] { color: #00838f !important; } /* types - teal */
.post .content pre span[style*="color: #a61717"] { color: #c62828 !important; } /* errors - red */
.post .content blockquote { border-left: 3px solid var(--border); padding-left: 1rem; color: var(--meta); }
.post .content table { border-collapse: collapse; width: 100%; }
.post .content table td, .post .content table th { border: 1px solid var(--border); padding: 0.5rem; }

.post-categories {
  margin: 2rem 0;
  padding: 1rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.post-categories .label { color: var(--meta); margin-right: 0.5rem; }
.post-categories a {
  display: inline-block;
  margin: 0.25rem 0.5rem 0.25rem 0;
  padding: 0.25rem 0.75rem;
  background: #f5f5f5;
  border-radius: 3px;
  font-size: 0.9rem;
}
.post-categories a:hover { background: #e5e5e5; text-decoration: none; }

.post-nav { display: flex; justify-content: space-between; padding-top: 1rem; border-top: 1px solid var(--border); }

.taxonomy-list { list-style: none; }
.taxonomy-list li { padding: 0.5rem 0; }
.taxonomy-list .count { color: var(--meta); }

.pagination { margin-top: 2rem; text-align: center; }
.pagination a, .pagination span { margin: 0 0.5rem; }

/* Blogger comments (historical) */
.blogger-comments {
  margin: 2rem 0;
  padding-top: 1.5rem;
  border-top: 2px solid var(--border);
}
.blogger-comments h3 {
  font-size: 1.2rem;
  margin-bottom: 1rem;
  color: var(--meta);
}
.blogger-comment {
  padding: 1rem;
  margin-bottom: 1rem;
  background: #fafafa;
  border-radius: 4px;
  border-left: 3px solid #ddd;
}
.blogger-comment .comment-meta {
  font-size: 0.85rem;
  color: var(--meta);
  margin-bottom: 0.5rem;
}
.blogger-comment .comment-content {
  font-size: 0.95rem;
}

/* Cusdis new comments */
#cusdis_thread {
  margin-top: 2rem;
}
#cusdis_thread iframe {
  min-height: 350px !important;
  height: auto !important;
}

@media (max-width: 600px) {
  header nav { flex-direction: column; gap: 0.5rem; }
  .nav-links a { margin: 0 0.75rem; }
  .post-list time { display: block; margin-bottom: 0.25rem; }
}
