:root {
    --color-bg: #f4f6f7;
    --color-surface: #ffffff;
    --color-text: #182126;
    --color-muted: #647178;
    --color-border: #d9e0e3;
    --color-primary: #087f78;
    --color-primary-dark: #075d59;
    --color-accent: #d45b3f;
    --color-highlight: #f2c14e;
    --shadow-sm: 0 2px 10px rgba(24, 33, 38, 0.07);
    --radius: 6px;
    --content-width: 1120px;
    --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); line-height: 1.6; }
a { color: var(--color-primary-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--color-accent); }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header { background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.header-inner, .utility-inner, .site-main, .footer-inner { width: min(calc(100% - 32px), var(--content-width)); margin: 0 auto; }
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--color-text); text-decoration: none; }
.brand:hover { color: var(--color-text); }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; background: var(--color-primary); color: #fff; border-radius: 5px; font-size: 26px; font-weight: 800; line-height: 1; }
.brand-text { display: grid; }
.brand-text strong { font-size: 20px; line-height: 1.2; }
.brand-text small { color: var(--color-muted); font-size: 13px; }
.primary-nav { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px 22px; }
.primary-nav a { color: var(--color-text); text-decoration: none; font-weight: 650; }
.primary-nav a:hover { color: var(--color-primary); }
.utility-bar { background: #edf2f2; border-top: 1px solid var(--color-border); }
.utility-inner { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.search-form { display: flex; width: min(100%, 560px); }
.search-form input { min-width: 0; flex: 1; height: 38px; border: 1px solid #b9c5c9; border-radius: var(--radius) 0 0 var(--radius); padding: 0 12px; color: var(--color-text); background: #fff; }
.search-form input:focus { outline: 2px solid rgba(8, 127, 120, .25); border-color: var(--color-primary); }
.search-form button { height: 38px; border: 0; border-radius: 0 var(--radius) var(--radius) 0; padding: 0 18px; background: var(--color-primary); color: #fff; font-weight: 700; cursor: pointer; }
.search-form button:hover { background: var(--color-primary-dark); }
.language-switcher { display: flex; gap: 4px; }
.language-switcher a { min-width: 38px; height: 32px; display: grid; place-items: center; color: var(--color-muted); text-decoration: none; font-size: 12px; font-weight: 800; border-bottom: 2px solid transparent; }
.language-switcher a.active { color: var(--color-primary-dark); border-color: var(--color-accent); }

.site-main { padding: 34px 0 64px; min-height: calc(100vh - 220px); }
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 28px; align-items: start; }
.section-heading { margin: 0 0 18px; font-size: 24px; line-height: 1.25; }
.filter-summary { color: var(--color-muted); margin: -8px 0 20px; }
.post-list { display: grid; gap: 18px; }
.post-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.post-card-header { padding: 20px 22px 15px; border-bottom: 1px solid var(--color-border); }
.post-card h2 { margin: 0 0 10px; font-size: 22px; line-height: 1.3; }
.post-card h2 a { color: var(--color-text); text-decoration: none; }
.post-card h2 a:hover { color: var(--color-primary); }
.post-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; color: var(--color-muted); font-size: 13px; }
.post-meta strong { color: #465158; font-weight: 700; }
.post-card-content { padding: 18px 22px 20px; }
.post-card-content p { margin: 0 0 15px; }
.read-more { font-weight: 750; }
.post-card-footer { min-height: 8px; background: #fafbfb; border-top: 1px solid var(--color-border); }
.category-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.category-tag { display: inline-flex; align-items: center; min-height: 25px; padding: 2px 8px; border-left: 3px solid var(--color-highlight); background: #f7f4e9; color: #555044; text-decoration: none; font-size: 12px; font-weight: 700; }

.sidebar { position: sticky; top: 18px; }
.sidebar h2 { margin: 0 0 10px; padding-bottom: 10px; border-bottom: 2px solid var(--color-primary); font-size: 16px; }
.category-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color-border); }
.category-list a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 6px; color: var(--color-text); text-decoration: none; border-bottom: 1px solid var(--color-border); }
.category-list a:hover, .category-list a.active { color: var(--color-primary-dark); background: #eaf3f2; }
.category-list span { color: var(--color-muted); font-variant-numeric: tabular-nums; }

.single-post { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.single-post-header { padding: 28px 30px 22px; border-top: 5px solid var(--color-primary); border-bottom: 1px solid var(--color-border); }
.single-post h1 { margin: 0 0 14px; font-size: 32px; line-height: 1.25; }
.post-body { padding: 30px; font-size: 17px; overflow-wrap: anywhere; }
.post-body > :first-child { margin-top: 0; }
.post-body > :last-child { margin-bottom: 0; }
.post-body h2, .post-body h3, .post-body h4 { line-height: 1.3; margin: 1.6em 0 .55em; }
.post-body blockquote { margin: 1.4em 0; padding: 10px 18px; border-left: 4px solid var(--color-accent); background: #fff7f4; color: #39444a; }
.post-body table { width: 100%; border-collapse: collapse; }
.post-body th, .post-body td { padding: 9px; border: 1px solid var(--color-border); text-align: left; }
.post-body pre { overflow: auto; padding: 14px; background: #172126; color: #eff5f4; border-radius: var(--radius); }
.single-post-footer { min-height: 28px; border-top: 1px solid var(--color-border); background: #fafbfb; }

.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 28px; }
.pagination a, .pagination span { min-width: 38px; height: 38px; display: grid; place-items: center; padding: 0 10px; border: 1px solid var(--color-border); border-radius: 4px; background: var(--color-surface); color: var(--color-text); text-decoration: none; }
.pagination .active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.empty-state { padding: 34px; background: var(--color-surface); border: 1px dashed #b9c5c9; text-align: center; color: var(--color-muted); }
.alert { margin-bottom: 20px; padding: 11px 14px; border: 1px solid var(--color-border); border-left-width: 4px; background: #fff; }
.alert.error { border-left-color: #bd3d3d; }
.alert.success { border-left-color: var(--color-primary); }
.site-footer { border-top: 1px solid var(--color-border); background: #202a2f; color: #dce4e6; }
.footer-inner { min-height: 76px; display: flex; align-items: center; font-size: 13px; }
.captcha-panel { max-width: 620px; margin: 30px auto; padding: 28px; background: #fff; border: 1px solid var(--color-border); border-top: 5px solid var(--color-accent); border-radius: var(--radius); }
.captcha-panel h1 { margin-top: 0; font-size: 25px; }
.captcha-panel form { display: grid; gap: 14px; }
.captcha-panel input { height: 42px; border: 1px solid #b9c5c9; border-radius: 4px; padding: 0 10px; }
.captcha-panel button { justify-self: start; border: 0; border-radius: 4px; padding: 10px 16px; background: var(--color-primary); color: #fff; font-weight: 700; cursor: pointer; }

.post-body img { margin-left: auto; margin-right: auto; }
.post-body .image-box { display: table; width: auto; max-width: 100%; margin: 1.5em auto; }
.post-body .image-box > a { display: block; }
.post-body .image-box img { margin: 0 auto; }
.post-body .image-box figcaption { padding: 8px 6px 2px; color: var(--color-muted); font-size: 14px; font-style: italic; line-height: 1.45; text-align: center; caption-side: bottom; }

@media (max-width: 780px) {
    .header-inner { min-height: 76px; }
    .brand-text small { display: none; }
    .primary-nav { gap: 14px; font-size: 14px; }
    .utility-inner { padding: 10px 0; align-items: stretch; flex-direction: column; gap: 6px; }
    .language-switcher { align-self: flex-end; }
    .content-grid { grid-template-columns: 1fr; }
    .sidebar { position: static; order: -1; }
    .category-list { display: flex; overflow-x: auto; border: 0; gap: 6px; padding-bottom: 5px; }
    .category-list li { flex: 0 0 auto; }
    .category-list a { border: 1px solid var(--color-border); padding: 7px 10px; background: #fff; }
    .single-post h1 { font-size: 26px; }
    .single-post-header, .post-body { padding: 22px 18px; }
}
.page-document .post-body > h2 { padding-bottom: 10px; border-bottom: 1px solid var(--color-border); }
.page-document .post-body > em { display: block; margin: -4px 0 16px; color: var(--color-muted); }
.page-document .post-body ol { margin: 0 0 32px; padding-left: 26px; }
.page-document .post-body li { padding: 8px 0; border-bottom: 1px solid #edf1f2; line-height: 1.6; }
