/* Netsense blog: list + detail. URL/content architecture stays native Bitrix. */
.blog-page {min-height:1px;}
.blog-hero {border-bottom:1px solid var(--line);}
.blog-hero>.container {padding-top:34px;padding-bottom:34px;}
.blog-hero h1 {margin:12px 0 10px;line-height:1;font-weight:650;letter-spacing:-.045em;}
.blog-hero p,.blog-hero__description {max-width:820px;margin:0;color:var(--muted);line-height:1.55;}
.blog-index,.blog-detail {padding:34px 0 44px;}
.blog-layout {display:grid;grid-template-columns:270px minmax(0,1fr);gap:42px;align-items:start;}
.blog-layout--detail {grid-template-areas:"sidebar main";}
.blog-layout--detail .blog-sidebar {grid-area:sidebar;}
.blog-layout--detail .blog-detail__main {grid-area:main;min-width:0;}

.blog-sidebar {position:sticky;top:calc(var(--header-height) + 24px);min-width:0;}
.blog-sidebar__search>label,.blog-sidebar__section>h2 {display:block;margin:0 0 13px;line-height:1.2;font-weight:650;letter-spacing:-.015em;}
.blog-sidebar__search-control {display:grid;grid-template-columns:1fr 44px;height:48px;border:1px solid var(--line);background:rgba(5,14,18,.45);}
.blog-sidebar__search-control input {min-width:0;padding:0 14px;border:0;background:transparent;outline:0;color:var(--text);}
.blog-sidebar__search-control input::placeholder {color:#68777d;}
.blog-sidebar__search-control:focus-within {border-color:var(--green);}
.blog-sidebar__search-control button {display:grid;place-items:center;border:0;background:transparent;color:var(--muted);}
.blog-sidebar__search-control button:hover {color:var(--green);}
.blog-sidebar__search-control svg {width:19px;height:19px;}
.blog-sidebar__section {margin-top:30px;}
.blog-sidebar>.blog-sidebar__section:first-child {margin-top:0;}
.blog-sidebar__categories-level {margin:0;padding:0;list-style:none;}
.blog-sidebar__categories-level--2 {padding-left:13px;}
.blog-sidebar__categories li {border-bottom:1px solid var(--line);}
.blog-sidebar__categories a {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;color:#c4ccce;}
.blog-sidebar__categories svg {width:17px;height:17px;flex:0 0 auto;transition:transform var(--transition);}
.blog-sidebar__categories a:hover,.blog-sidebar__categories .is-active>a,.blog-sidebar__categories .is-parent-active>a {color:var(--green);}
.blog-sidebar__categories a:hover svg {transform:translateX(3px);}
.blog-sidebar__latest {display:grid;}
.blog-sidebar__latest a {padding:12px 0;border-bottom:1px solid var(--line);}
.blog-sidebar__latest strong {display:block;color:#e9ecea;line-height:1.4;font-weight:550;}
.blog-sidebar__latest span {display:block;margin-top:5px;color:#77858a;}

.blog-index__main {min-width:0;}
.blog-index__main>h2 {margin:0 0 16px;}
.blog-publications {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;}
.blog-publication {display:flex;min-width:0;min-height:220px;flex-direction:column;padding:22px 0 24px;border-top:1px solid var(--line);}
.blog-publication h3 {margin:0 0 10px;line-height:1.23;letter-spacing:-.02em;}
.blog-publication h3 a:hover {color:var(--green);}
.blog-meta {display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#7f8d91;line-height:1.35;}
.blog-meta a {color:var(--green);}
.blog-publication>p {margin:15px 0 18px;color:var(--muted);line-height:1.5;}
.blog-read-link {display:inline-flex;align-items:center;gap:18px;margin-top:auto;color:var(--text);font-weight:650;}
.blog-read-link svg {width:17px;height:17px;color:var(--green);transition:transform var(--transition);}
.blog-read-link:hover {color:var(--green);}
.blog-read-link:hover svg {transform:translateX(4px);}
.blog-pagination-wrap {grid-column:1/-1;margin-top:20px;padding-top:22px;border-top:1px solid var(--line);}
.blog-pagination {display:flex;align-items:center;gap:8px;}
.blog-pagination>a,.blog-pagination>span {display:grid;place-items:center;min-width:38px;height:38px;padding:0 9px;border:1px solid var(--line);color:#aab4b7;}
.blog-pagination>a:hover {border-color:var(--green);color:var(--green);}
.blog-pagination .is-current {border-color:var(--green);background:var(--green);color:#041008;font-weight:700;}
.blog-pagination .is-disabled {opacity:.35;}
.blog-pagination__dots {border-color:transparent!important;}

.blog-article {min-width:0;}
.blog-article__header {padding:2px 0 24px;border-bottom:1px solid var(--line);}
.blog-article__kicker {margin-bottom:12px;}
.blog-article__header h1 {width:100%;max-width:none;margin:0;line-height:1.04;font-weight:650;letter-spacing:-.04em;}
.blog-article__meta {}
.blog-article__body {padding-top:24px;color:#d6dcdd;line-height:1.65;}
.blog-article__body>p:first-child {margin-top:0;}
.blog-article__body p {margin:0 0 18px;}
.blog-article__body h2 {margin:34px 0 9px;line-height:1.18;letter-spacing:-.025em;}
.blog-article__body h3 {margin:28px 0 8px;line-height:1.25;}
.blog-article__body ul,.blog-article__body ol {margin:12px 0 22px;padding-left:22px;}
.blog-article__body li {margin:5px 0;}
.blog-article__body a {color:var(--green);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.blog-article__body :not(pre)>code {padding:2px 6px;border:1px solid #23373f;background:#08151a;color:#bfead0;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-weight:500;line-height:1.4;}
.blog-article__body blockquote,.blog-article__body .note,.blog-article__body .blog-note {margin:24px 0;padding:16px 18px;border:1px solid #2d484f;border-left:3px solid var(--green);background:rgba(5,209,94,.035);color:#cdd5d7;}
.blog-article__body img {height:auto;margin:24px auto;border:1px solid var(--line);}

.blog-code {margin:18px 0 26px;border:1px solid #243941;background:#06151a;overflow:hidden;}
.blog-code__head {display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:38px;padding:0 12px;border-bottom:1px solid #1f333a;background:#071a20;color:#819196;font-family:Inter,Arial,sans-serif;font-weight:600;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;}
.blog-code__copy {min-height:34px;padding:7px 10px;border:1px solid transparent;background:transparent;color:#a8b5b9;font-family:Inter,Arial,sans-serif;font-weight:600;line-height:1;text-transform:none;letter-spacing:0;}
.blog-code__copy:hover,.blog-code__copy.is-copied {border-color:#29464f;color:var(--green);}
.blog-code__scroll {display:flex;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-gutter:stable;touch-action:pan-x pan-y;}
.blog-code__numbers {display:flex;flex:0 0 auto;flex-direction:column;min-width:38px;padding:13px 9px 14px 0;border-right:1px solid #173039;color:#52666d;text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-weight:400;line-height:1.58;user-select:none;}
.blog-code__numbers span {height:1.58em;}
.blog-code pre {flex:0 0 auto;min-width:max-content;margin:0!important;padding:13px 18px 14px!important;border:0!important;background:transparent!important;overflow:visible!important;white-space:pre!important;}
.blog-code code {display:block;padding:0!important;border:0!important;background:transparent!important;color:#d7e1e3;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-weight:400;line-height:1.58;white-space:pre!important;tab-size:4;}
.hljs {color:#d7e1e3;background:transparent;}
.hljs-comment,.hljs-quote {color:#64777d;font-style:italic;}
.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link {color:#efc45c;}
.hljs-function .hljs-keyword,.hljs-subst {color:#d7e1e3;}
.hljs-string,.hljs-doctag,.hljs-regexp,.hljs-template-tag,.hljs-template-variable {color:#d8d76b;}
.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-variable,.hljs-variable.constant_ {color:#e68a62;}
.hljs-title,.hljs-title.class_,.hljs-title.function_,.hljs-type,.hljs-built_in {color:#43d5e9;}
.hljs-attr,.hljs-attribute,.hljs-selector-class,.hljs-selector-id {color:#76d89a;}
.hljs-meta,.hljs-meta .hljs-keyword {color:#9ca7ff;}
.hljs-params {color:#d7e1e3;}

.blog-comments {margin-top:44px;padding-top:32px;border-top:1px solid var(--line);}
.blog-comments__head {display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:12px;}
.blog-comments__head h2 {margin:0;}
.blog-comments__head>span {color:var(--muted);}
.blog-comments__empty {margin:0;padding:18px 0 26px;border-bottom:1px solid var(--line);color:#7f8c90;}
.blog-comment {padding:20px 0;border-bottom:1px solid var(--line);}
.blog-comment>header {display:flex;justify-content:space-between;gap:20px;margin-bottom:8px;}
.blog-comment>header time {color:var(--muted);}
.blog-comment__reply-meta {margin:0 0 5px!important;color:#8b999d;}
.blog-comment__text {color:#dde1e0;line-height:1.55;}
.blog-comment__reply {margin-top:7px;padding:0;border:0;background:transparent;color:var(--green);text-decoration:underline;text-underline-offset:2px;}
.blog-comment__admin-reply {margin-top:12px;padding:16px 18px;border:1px solid #2a434b;background:rgba(8,25,31,.45);}
.blog-comment-form-wrap {margin-top:28px;}
.blog-comment-form-wrap>h2 {margin-bottom:16px;}
.blog-comment-form {padding:20px;border:1px solid var(--line);background:rgba(6,17,22,.3);}
.blog-comment-form__row {display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.blog-comment-form input,.blog-comment-form textarea {width:100%;padding:13px 14px;border:1px solid #354950;background:#071419;outline:0;color:var(--text);}
.blog-comment-form input:focus,.blog-comment-form textarea:focus {border-color:var(--green);}
.blog-comment-form textarea {min-height:112px;resize:vertical;}
.blog-comment-form>label {display:block;margin-top:12px;}
.blog-comment-form__consent {display:flex!important;align-items:center;margin:12px 0!important;}
.blog-comment-form .button {min-width:300px;}
.blog-comment-form__reply {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-4px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted);}
.blog-comment-form__reply button {padding:0;border:0;background:transparent;color:var(--green);text-decoration:underline;}

.blog-article-nav {display:grid;grid-template-columns:1fr 1fr;margin-top:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.blog-article-nav>a {display:flex;min-height:94px;flex-direction:column;justify-content:center;padding:18px 20px;}
.blog-article-nav>a+a {border-left:1px solid var(--line);}
.blog-article-nav span {color:#879499;}
.blog-article-nav strong {margin-top:6px;line-height:1.4;font-weight:550;}
.blog-article-nav a:hover strong {color:var(--green);}
.blog-article-nav__next {text-align:right;}

.blog-page--detail .site-project-cta {margin-top:0;border-top:1px solid var(--line);}

@media (max-width:1100px) {
    .blog-layout {grid-template-columns:230px minmax(0,1fr);gap:30px;}
    .blog-publications {column-gap:24px;}
}
@media (max-width:900px) {
    .blog-index,.blog-detail {padding-top:26px;}
    .blog-layout {grid-template-columns:1fr;gap:30px;}
    .blog-layout--detail {grid-template-areas:"main" "sidebar";}
    .blog-sidebar {position:static;}
    .blog-publications {grid-template-columns:1fr;}
    .blog-publication {min-height:0;}
    .blog-page--detail .blog-sidebar {padding-top:4px;border-top:1px solid var(--line);}
}
@media (max-width:620px) {
    .blog-hero>.container {padding-top:26px;padding-bottom:28px;}
    .blog-hero h1 {margin-top:9px;}
    .blog-hero p,.blog-hero__description {}
    .blog-index,.blog-detail {padding:22px 0 30px;}
    .blog-index__main>h2 {}
    .blog-publication {padding:18px 0 20px;}
    .blog-publication h3 {}
    .blog-article__header {padding-bottom:20px;}
    .blog-article__header h1 {}
    .blog-article__body {padding-top:20px;}
    .blog-article__body h2 {margin-top:30px;}
    .blog-code {margin-left:0;margin-right:0;}
    .blog-code__numbers {min-width:34px;padding-left:0;}
    .blog-code pre {padding-left:14px!important;padding-right:14px!important;}
    .blog-code code {}
    .blog-comments {margin-top:34px;padding-top:26px;}
    .blog-comments__head {display:block;}
    .blog-comments__head h2 {}
    .blog-comments__head>span {display:block;margin-top:4px;}
    .blog-comment>header {display:block;}
    .blog-comment>header time {display:block;margin-top:3px;}
    .blog-comment-form {padding:16px;}
    .blog-comment-form__row {grid-template-columns:1fr;gap:9px;}
    .blog-comment-form .button {width:100%;min-width:0;}
    .blog-article-nav {grid-template-columns:1fr;}
    .blog-article-nav>a+a {border-top:1px solid var(--line);border-left:0;}
    .blog-article-nav__next {text-align:left;}
    .blog-pagination {gap:5px;overflow-x:auto;padding-bottom:2px;}
    .blog-pagination>a,.blog-pagination>span {min-width:36px;height:36px;}
}

/* step179: live blog comments */
.blog-comment__reply-meta a {color:var(--green);text-decoration:none;}
.blog-comment__reply-meta a:hover {text-decoration:underline;text-underline-offset:3px;}
.blog-comment__admin-reply {margin-top:14px;padding:16px 18px;border:1px solid #2a434b;background:rgba(8,25,31,.45);}
.blog-comment__admin-reply header {display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:8px;}
.blog-comment__admin-reply header strong {color:var(--green);}
.blog-comment__admin-reply header time {color:var(--muted);}
.blog-comment-form .hp-field {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.blog-comment-form[aria-busy="true"] {opacity:.82;}
.blog-comment-form__message {margin:12px 0 0;}

/* step180a: custom blog comment validation */
.blog-comment-form__reply[hidden] {
    display: none !important;
}

.blog-comment-form input[aria-invalid="true"],
.blog-comment-form textarea[aria-invalid="true"] {
    border-color: #ff676f;
    box-shadow: 0 0 0 1px rgba(255,103,111,.18);
}

.blog-comment-form__consent input[aria-invalid="true"] + span {
    border-color: #ff676f;
    box-shadow: 0 0 0 2px rgba(255,103,111,.12);
}

.blog-comment-field-error {
    display: block;
    width: 100%;
    margin-top: 6px;
    color: #ff8a91;
    line-height: 1.4;
}

.blog-comment-form__row label {
    min-width: 0;
}

/* step187: admin reply relation */
.blog-comment__admin-reply {
    margin-left: 24px;
}

.blog-comment__admin-reply-meta {
    margin: 0 0 10px;
    color: var(--muted);
    line-height: 1.4;
}

.blog-comment__admin-reply-meta a {
    color: var(--green);
    text-decoration: none;
}

.blog-comment__admin-reply-meta a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 620px) {
    .blog-comment__admin-reply {
        margin-left: 12px;
    }
}

/* step189: plain PRE inside blog article */
.blog-article__body > pre {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 18px 0 26px;
    padding: 14px 18px;
    border: 1px solid #243941;
    background: #06151a;
    color: #d7e1e3;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
    scrollbar-color: #68777d #18252a;
    white-space: pre;
    tab-size: 4;
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-weight: 400;
    line-height: 1.58;
}
