/*
 * Blog theme: single posts, archives, posts page, search (see members_cr_is_blog()).
 * Same tokens as the app (css/style.css). Content selectors are kept at low
 * specificity so posts with their own inline styles (e.g. postid-1119, .mct) win.
 */
:root {
  --bg: #0d1117;
  --bg2: #161b22;
  --bg3: #1c2128;
  --text: #e6edf3;
  --text2: #8b949e;
  --text3: #848d97;
  --brand: #58a6ff;
  --brand-rgb: 88, 166, 255;
  --premium: #c084fc;
  --long: #0ecb81;
  --short: #f6465d;
  --gold: #facc15;
  --border: rgba(48, 54, 61, 0.7);
  --radius: 14px;
  --radius-sm: 8px;
  --col: 820px;
  --mono: 'JetBrains Mono', Consolas, 'Courier New', monospace;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }
html, body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  margin: 0;
  line-height: 1.65;
  font-size: 16px;
  overflow-x: hidden;
}

a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
  border-radius: 4px;
}

img, svg, video, iframe { max-width: 100%; }
img { height: auto; }

/* Accessibility helpers from Underscores (style.css has no rules) */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.skip-link:focus {
  clip: auto !important;
  clip-path: none;
  height: auto;
  width: auto;
  left: 12px;
  top: 12px;
  z-index: 100000;
  padding: 10px 16px;
  background: var(--bg2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

/* ---------- Header ---------- */
.cn-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(13, 17, 23, 0.88);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}
.admin-bar .cn-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cn-header { top: 0; position: relative; } }

.cn-header-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cn-header .cn-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.cn-header .cn-logo:hover { text-decoration: none; color: #fff; }
.cn-logo svg { color: var(--brand); flex: none; }

.cn-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.cn-header .cn-nav a {
  color: var(--text2);
  font-size: 14px;
  font-weight: 500;
  padding: 7px 12px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  transition: color .2s, background-color .2s;
}
.cn-header .cn-nav a:hover,
.cn-header .cn-nav a[aria-current] { color: var(--text); background: rgba(255, 255, 255, 0.05); text-decoration: none; }
.cn-header .cn-nav .cn-nav-premium { color: var(--gold); }
.cn-header .cn-nav .cn-nav-tg {
  color: var(--brand);
  border: 1px solid rgba(var(--brand-rgb), 0.35);
  margin-left: 4px;
}
.cn-header .cn-nav .cn-nav-tg:hover { background: rgba(var(--brand-rgb), 0.1); color: var(--brand); }

@media (max-width: 560px) {
  .cn-header { position: relative; } /* two-row header: do not pin it over the text */
  .cn-header-inner { flex-wrap: wrap; padding: 10px 16px; gap: 6px; }
  .cn-nav {
    width: 100%;
    margin: 0 -8px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .cn-nav::-webkit-scrollbar { display: none; }
  .cn-header .cn-nav a { padding: 6px 10px; font-size: 14px; }
  .cn-header .cn-nav .cn-nav-tg { margin-left: auto; }
}

/* ---------- Layout ---------- */
#page { min-height: 100vh; display: flex; flex-direction: column; }
.site-main {
  width: 100%;
  max-width: var(--col);
  margin: 0 auto;
  padding: 32px 20px 24px;
  flex: 1 0 auto;
}
@media (max-width: 560px) { .site-main { padding: 22px 16px 16px; } }

/* ---------- Post header ---------- */
.entry-header { margin-bottom: 18px; }
.entry-title {
  font-size: clamp(26px, 5vw, 38px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  color: var(--text);
  overflow-wrap: break-word;
}
.entry-title a { color: inherit; }
.entry-meta, .entry-footer {
  font-size: 13px;
  color: var(--text3);
}
.entry-meta a, .entry-footer a { color: var(--text2); }
.entry-meta a:hover, .entry-footer a:hover { color: var(--brand); }
.entry-meta .byline { display: none; }
.entry-meta .updated:not(.published) { display: none; }
.entry-footer {
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
}
.entry-footer .comments-link, .entry-footer .edit-link { color: var(--text3); }

.post-thumbnail { display: block; margin: 0 0 24px; }
.post-thumbnail img {
  display: block;
  width: 100%;
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

/* ---------- Post body ---------- */
.entry-content, .entry-summary, .page-content, .archive-description {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text);
  overflow-wrap: break-word;
}
@media (max-width: 560px) {
  .entry-content, .entry-summary, .page-content { font-size: 16px; }
}
.entry-content > :first-child { margin-top: 0; }
.entry-content p, .page-content p { margin: 0 0 1.05em; }
.entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
  color: var(--text);
  line-height: 1.3;
  letter-spacing: -0.01em;
  scroll-margin-top: 80px;
}
.entry-content h2 { font-size: 26px; font-weight: 700; margin: 1.8em 0 0.6em; }
.entry-content h3 { font-size: 20px; font-weight: 650; margin: 1.6em 0 0.5em; }
.entry-content h4 { font-size: 17px; font-weight: 650; margin: 1.4em 0 0.4em; }
.entry-content h5, .entry-content h6 { font-size: 15px; font-weight: 650; margin: 1.3em 0 0.4em; color: var(--text2); }
@media (max-width: 560px) {
  .entry-content h2 { font-size: 22px; }
  .entry-content h3 { font-size: 18px; }
}

.entry-content strong, .entry-content b { color: #fff; font-weight: 650; }
.entry-content a { text-decoration: underline; text-decoration-color: rgba(var(--brand-rgb), 0.4); text-underline-offset: 3px; }
.entry-content a:hover { text-decoration-color: var(--brand); }

.entry-content ul, .entry-content ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.entry-content li { margin: 0.3em 0; }
.entry-content li > ul, .entry-content li > ol { margin: 0.3em 0 0.3em; }
.entry-content ul > li::marker { color: var(--brand); }
.entry-content ol > li::marker { color: var(--text2); font-weight: 600; }

.entry-content blockquote {
  margin: 1.4em 0;
  padding: 14px 20px;
  border-left: 3px solid var(--brand);
  background: rgba(var(--brand-rgb), 0.06);
  border-radius: 0 10px 10px 0;
  color: var(--text);
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite { display: block; margin-top: 6px; font-size: 14px; color: var(--text2); font-style: normal; }

.entry-content hr {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 2em 0;
}

.entry-content code, .entry-content kbd, .entry-content samp {
  font-family: var(--mono);
  font-size: 0.88em;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 1px 6px;
}
.entry-content pre {
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.55;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  margin: 1.2em 0;
  overflow-x: auto;
  white-space: pre;
}
.entry-content pre code { background: none; border: 0; padding: 0; font-size: inherit; }

/* Images, captions, galleries, embeds */
.entry-content img { border-radius: 10px; }
.entry-content figure { margin: 1.4em 0; max-width: 100%; }
.entry-content .wp-caption { max-width: 100%; }
.entry-content figcaption, .entry-content .wp-caption-text, .entry-content .wp-element-caption {
  font-size: 13px;
  color: var(--text3);
  text-align: center;
  margin-top: 6px;
}
.entry-content .alignleft { float: left; margin: 0.3em 1.4em 1em 0; }
.entry-content .alignright { float: right; margin: 0.3em 0 1em 1.4em; }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
@media (max-width: 560px) {
  .entry-content .alignleft, .entry-content .alignright { float: none; margin: 1em auto; display: block; }
}
.entry-content iframe, .entry-content embed, .entry-content object { max-width: 100%; border: 0; }
.entry-content .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }

/* Tables: scroll inside themselves on narrow screens, never the page */
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.4em 0;
  font-size: 15px;
  line-height: 1.45;
}
.entry-content th, .entry-content td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
.entry-content th, .entry-content thead td {
  background: var(--bg2);
  color: var(--text);
  font-weight: 600;
  font-size: 13px;
  text-transform: none;
}
.entry-content tbody tr:hover td { background: rgba(255, 255, 255, 0.02); }
.entry-content .wp-block-table { overflow-x: auto; margin: 1.4em 0; }
.entry-content .wp-block-table table { margin: 0; }
@media (max-width: 720px) {
  .entry-content table:not(.wp-block-table table) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Legacy stats posts (/vremya-i-dni-nedeli/): long URL lines */
.entry-content .time-trad { font-family: var(--mono); font-size: 13px; line-height: 1.6; color: var(--text2); overflow-wrap: anywhere; }
.entry-content .time-trad p { margin: 0 0 1em; }

/* Text pasted from ChatGPT keeps Tailwind-ish class names: neutralise */
.entry-content .markdown, .entry-content .prose { max-width: none; color: inherit; }

/* WordPress buttons */
.entry-content .wp-block-button__link, .entry-content .wp-element-button {
  background: var(--brand);
  color: #0d1117;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
}

/* ---------- Easy Table of Contents ---------- */
.entry-content #ez-toc-container, #ez-toc-container {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: none;
  padding: 16px 20px;
  margin: 0 0 28px;
  width: 100%;
  display: block;
  color: var(--text);
}
#ez-toc-container .ez-toc-title-container { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#ez-toc-container p.ez-toc-title, #ez-toc-container .ez-toc-title {
  color: var(--text);
  font-weight: 700;
  font-size: 16px;
  margin: 0;
}
#ez-toc-container .ez-toc-title-toggle { margin: 0; }
#ez-toc-container .ez-toc-btn, #ez-toc-container a.ez-toc-toggle {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: none;
  color: var(--text2);
  display: inline-flex;
  align-items: center;
  padding: 4px 6px;
  text-decoration: none;
}
#ez-toc-container .ez-toc-btn svg { fill: var(--text2) !important; color: var(--text2) !important; }
#ez-toc-container nav { margin-top: 10px; }
#ez-toc-container ul, #ez-toc-container ol { margin: 0; padding-left: 0; }
#ez-toc-container ul ul { padding-left: 1.1em; }
#ez-toc-container li { margin: 3px 0; line-height: 1.45; }
#ez-toc-container li::marker { content: none; }
#ez-toc-container a, #ez-toc-container a:visited {
  color: var(--text2);
  text-decoration: none;
  font-size: 15px;
}
#ez-toc-container a:hover { color: var(--brand); text-decoration: none; }
#ez-toc-container.counter-hierarchy ul li a::before,
#ez-toc-container.ez-toc-counter nav ul li a::before { color: var(--text3); }

/* ---------- Post navigation, pagination ---------- */
.post-navigation, .posts-navigation, .pagination {
  margin: 36px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.post-navigation .nav-links, .posts-navigation .nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.post-navigation .nav-previous, .posts-navigation .nav-previous { grid-column: 1; }
.post-navigation .nav-next, .posts-navigation .nav-next { grid-column: 2; text-align: right; }
.post-navigation a, .posts-navigation a {
  display: block;
  height: 100%;
  padding: 14px 16px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--text);
  transition: border-color .2s, background-color .2s;
}
.post-navigation a:hover, .posts-navigation a:hover {
  border-color: rgba(var(--brand-rgb), 0.5);
  background: var(--bg3);
  text-decoration: none;
}
.post-navigation .nav-subtitle {
  display: block;
  font-size: 12px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.post-navigation .nav-title { font-weight: 600; line-height: 1.35; }
@media (max-width: 560px) {
  .post-navigation .nav-links, .posts-navigation .nav-links { grid-template-columns: 1fr; }
  .post-navigation .nav-next, .posts-navigation .nav-next { grid-column: 1; text-align: left; }
}

/* ---------- Archives & search: cards ---------- */
.page-header { margin: 0 0 24px; }
.page-title {
  font-size: clamp(26px, 5vw, 36px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 8px;
}
.page-title span { color: var(--brand); }
.archive-description { color: var(--text2); font-size: 15px; line-height: 1.6; }
.archive-description p { margin: 0 0 0.6em; }

.archive .site-main > article,
.search .site-main > article,
.blog .site-main > article {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 20px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin: 0 0 14px;
  transition: border-color .2s;
}
.archive .site-main > article:hover,
.search .site-main > article:hover,
.blog .site-main > article:hover { border-color: rgba(var(--brand-rgb), 0.45); }
.archive .site-main > article.has-post-thumbnail,
.search .site-main > article.has-post-thumbnail,
.blog .site-main > article.has-post-thumbnail { grid-template-columns: 200px 1fr; }
.archive .site-main > article .post-thumbnail,
.search .site-main > article .post-thumbnail,
.blog .site-main > article .post-thumbnail { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
.archive .site-main > article .post-thumbnail img,
.search .site-main > article .post-thumbnail img,
.blog .site-main > article .post-thumbnail img { aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.archive .site-main > article .entry-header,
.search .site-main > article .entry-header,
.blog .site-main > article .entry-header { margin: 0 0 6px; }
.archive .site-main > article .entry-title,
.search .site-main > article .entry-title,
.blog .site-main > article .entry-title { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; margin: 0 0 4px; }
.archive .site-main > article .entry-title a:hover,
.search .site-main > article .entry-title a:hover,
.blog .site-main > article .entry-title a:hover { color: var(--brand); text-decoration: none; }
.archive .site-main > article .entry-summary,
.search .site-main > article .entry-summary,
.blog .site-main > article .entry-summary { font-size: 15px; line-height: 1.6; color: var(--text2); }
.entry-summary p { margin: 0; }
.archive .site-main > article .entry-footer,
.search .site-main > article .entry-footer,
.blog .site-main > article .entry-footer { margin-top: 10px; padding-top: 0; border-top: 0; font-size: 12px; }
@media (max-width: 600px) {
  .archive .site-main > article.has-post-thumbnail,
  .search .site-main > article.has-post-thumbnail,
  .blog .site-main > article.has-post-thumbnail { grid-template-columns: 1fr; }
  .archive .site-main > article .post-thumbnail,
  .search .site-main > article .post-thumbnail,
  .blog .site-main > article .post-thumbnail { grid-row: auto; order: -1; margin: 0 0 12px; }
  .archive .site-main > article,
  .search .site-main > article,
  .blog .site-main > article { padding: 14px 16px; }
}

/* Nothing found */
.no-results .page-title { font-size: 26px; }
.no-results .page-content { color: var(--text2); }

/* ---------- Forms (search widget, comments) ---------- */
input[type="search"], input[type="text"], input[type="email"], input[type="url"], textarea {
  font: inherit;
  font-size: 15px;
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  max-width: 100%;
}
input[type="search"]:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, textarea:focus {
  border-color: rgba(var(--brand-rgb), 0.6);
  outline: none;
}
input[type="submit"], button.search-submit, .comment-form .submit {
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #0d1117;
  background: var(--brand);
  border: 0;
  border-radius: var(--radius-sm);
  padding: 9px 16px;
  cursor: pointer;
}
input[type="submit"]:hover { filter: brightness(1.1); }
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; min-width: 0; }
.search-form .search-field { width: 100%; }

/* ---------- Sidebar: under the content, compact cards ---------- */
.widget-area {
  width: 100%;
  max-width: var(--col);
  margin: 8px auto 0;
  padding: 0 20px 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}
@media (max-width: 560px) { .widget-area { padding: 0 16px 16px; } }
.widget-area .widget {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px;
  min-width: 0;
}
.widget-area .widget_search { grid-column: 1 / -1; padding: 12px; }
.search-no-results .widget-area .widget_search, /* the page already shows a search form */
.widget-area .widget_meta,
.widget-area .widget_recent_comments { display: none; }
.widget-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text3);
  margin: 0 0 10px;
}
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { margin: 0; padding: 6px 0; border-top: 1px solid rgba(48, 54, 61, 0.45); font-size: 14px; line-height: 1.4; }
.widget li:first-child { border-top: 0; padding-top: 0; }
.widget li a { color: var(--text2); }
.widget li a:hover, .widget li a[aria-current] { color: var(--text); text-decoration: none; }
.widget li ul { margin-top: 6px; padding-left: 12px; }

/* ---------- Comments ---------- */
.comments-area { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--border); }
.comments-title, .comment-reply-title { font-size: 20px; font-weight: 700; margin: 0 0 14px; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list .children { list-style: none; padding-left: 20px; }
.comment-body {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 12px;
  font-size: 15px;
}
.comment-meta { font-size: 13px; color: var(--text3); margin-bottom: 6px; }
.comment-meta a { color: var(--text2); }
.comment-author .avatar { border-radius: 50%; vertical-align: middle; margin-right: 6px; }
.comment-form p { margin: 0 0 12px; }
.comment-form label { display: block; font-size: 13px; color: var(--text2); margin-bottom: 4px; }
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] { width: 100%; }

/* ---------- Footer ---------- */
.cn-footer {
  border-top: 1px solid var(--border);
  margin-top: 24px;
  color: var(--text3);
  font-size: 13px;
}
.cn-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 22px 20px 36px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
}
.cn-footer nav { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.cn-footer .cn-footer-inner nav a { color: var(--text2); }
.cn-footer .cn-footer-inner nav a:hover { color: var(--text); text-decoration: none; }
.cn-disclaimer { flex-basis: 100%; margin: 0; font-size: 12px; color: var(--text3); opacity: 0.85; }
@media (max-width: 560px) { .cn-footer-inner { padding: 18px 16px 28px; } }

/* Post 1119 ships its own inline styles scoped to body.postid-1119; keep the
   shared header/footer looking the same inside its 960px #page. */
body.postid-1119 .cn-header-inner, body.postid-1119 .cn-footer-inner { padding-left: 0; padding-right: 0; }
body.postid-1119 .site-main { max-width: none; padding-left: 0; padding-right: 0; }
