/* Single-post styles. */
.single-main{width:min(1600px,calc(100% - 80px));padding-block:32px 80px}
.single-header{padding-bottom:36px}
.single-header .breadcrumbs{margin-bottom:30px;flex-wrap:wrap;line-height:2;font-size:13px}
.single-header .category-badge{font-size:13px;padding:8px 18px;border-radius:999px;border:1px solid var(--jb-brand-green-600)}
.single-header h1{font-size:clamp(28px,3vw,46px);font-weight:850;margin-block:20px 28px;line-height:1.65}
.single-meta{display:flex;align-items:center;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.single-meta>span,.single-meta>a{display:inline-flex;align-items:center;gap:8px;color:inherit}
.single-meta .jb-icon{width:17px;height:17px}
.single-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:36px;align-items:start}
.single-body{min-width:0}
.single-cover{margin:0 0 32px;border-radius:22px;overflow:hidden;background:var(--surface-alt)}
.single-cover img{display:block;width:100%;height:auto}
.article-panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}
.article-panel h2{font-size:18px;margin:0 0 20px;font-weight:800}
.article-sidebar{position:sticky;top:24px;display:grid;gap:20px;min-width:0;max-height:calc(100dvh - 48px);overflow-y:auto;scrollbar-width:thin}
.article-toc nav{max-height:40vh;overflow:auto}
.article-toc ol{list-style:none;padding:0;margin:0;display:grid;gap:12px;font-size:13px;line-height:1.9}
.article-toc a{color:var(--muted);display:block;padding-block:6px}
.article-toc a:hover{color:var(--green)}
.article-toc .toc-subheading{padding-inline-start:16px;font-size:12px}
.article-share-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.article-share-links>a,.article-share-links>button,.ai-summary-links>a,.article-actions>a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-weight:650;font-size:13px;text-align:center}
.article-share-links>a:hover,.article-share-links>button:hover,.ai-summary-links>a:hover,.article-actions>a:hover{background:var(--soft);border-color:var(--jb-brand-green-500);text-decoration:none}
.share-status{font-size:12px;overflow-wrap:anywhere;margin:12px 0 0;color:var(--green)}
.share-status:empty{display:none}
.ai-summary{margin-block:0 28px}
.ai-summary h2{margin-bottom:10px}
.ai-summary h2>span,.ai-summary-links .jb-icon,.ai-summary-links>a>span{color:var(--green)}
.ai-summary p{font-size:13px;line-height:2;color:var(--muted);margin-bottom:20px}
.ai-summary-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ai-summary p.ai-note{font-size:11px;margin:12px 0 0}
.single-body .entry-content{font-size:17px;line-height:2.4}
.single-body .entry-content h2{font-size:26px;margin-block:40px 16px}
.single-body .entry-content h3{font-size:21px;margin-block:28px 12px}
.single-body .entry-content p{margin-bottom:26px}
.single-body .entry-content :is(h2,h3){scroll-margin-top:24px}
.article-actions{display:flex;justify-content:center;gap:12px;margin-top:30px;padding:16px}
.article-comments{margin-top:48px;scroll-margin-top:24px}
.comments-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.comments-heading h2{font-size:22px;margin:0}
.comments-heading small{font-size:14px;font-weight:400;color:var(--muted)}
.comments-empty{padding:36px 20px;border:1px dashed var(--line);border-radius:18px;text-align:center;background:var(--surface-alt);color:var(--muted);font-size:14px}
.comment-respond{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px;margin-top:32px;box-shadow:var(--shadow);scroll-margin-top:24px}
.comment-reply-title{font-size:21px;margin:0 0 24px}
.comment-form{display:flex;flex-direction:column;gap:18px}
.comment-form p{margin:0}
.comment-form label{display:block;margin-bottom:8px;font-size:14px;font-weight:650}
.comment-form :is(input[type=text],input[type=email],input[type=url],textarea){width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}
.comment-form textarea{resize:vertical;min-height:140px}
.comment-form .comment-form-cookies-consent label{display:inline;font-weight:400}
.comment-form .comment-form-cookies-consent input{margin-inline-end:8px}
.comment-form .form-submit{display:flex;justify-content:flex-end}
.comment-rating{padding:0;border:0;margin:0}
.comment-rating legend{font-size:14px;font-weight:650;margin-bottom:8px}
.rating-options{display:flex;flex-wrap:wrap;gap:6px}
.rating-options label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;position:relative;min-width:48px;min-height:64px;padding:8px;border:1px solid var(--line);border-radius:12px;margin:0;background:var(--surface)}
.rating-options input{position:absolute;opacity:0;width:1px;height:1px}
.rating-options .jb-icon-star{width:26px;height:26px;color:var(--muted)}
.rating-value{font-size:12px;line-height:1;color:var(--muted)}
.rating-options label.is-filled{background:var(--soft);border-color:var(--green)}
.rating-options label.is-filled .jb-icon-star{color:var(--green)}
.rating-options label.is-filled .jb-icon-star path,.comment-score-stars .is-filled .jb-icon-star path{fill:currentColor}
.rating-options label:has(input:checked){outline:2px solid var(--green);outline-offset:2px}
.rating-options label:has(input:checked) .jb-icon-star{color:var(--green)}
.rating-options label:has(input:checked) .jb-icon-star path{fill:currentColor}
.rating-options label:focus-within{outline:3px solid var(--accent);outline-offset:3px}
.comment-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.comment-list .comment-body{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow-wrap:anywhere}
.comment-list .avatar{border-radius:50%;vertical-align:middle;margin-inline-end:10px}
.comment-list .comment-meta,.comment-list .commentmetadata{font-size:12px;color:var(--muted)}
.comment-list p{margin:12px 0 0}
.comment-score{color:var(--green);font-size:13px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-block:12px}
.comment-score-stars{display:inline-flex;gap:3px}
.comment-score-stars .jb-icon{width:19px;height:19px}
.comment-score-stars>span:not(.is-filled){color:var(--muted)}
.rating-feedback{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:14px;min-height:32px}
.comment-form .rating-status{font-size:13px;color:var(--green);font-weight:650;margin:0}
.rating-feedback button{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:12px;padding:6px 12px;min-height:36px}
.jb-floating-toc{position:fixed;inset-inline-start:24px;bottom:24px;z-index:95;width:max-content;padding:0;border:0;background:transparent}
.jb-floating-toc>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;min-height:48px;padding:11px 16px;border:1px solid var(--jb-brand-green-500);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:13px;font-weight:750}
.jb-floating-toc>summary::-webkit-details-marker{display:none}
.jb-floating-toc>summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.jb-floating-toc>summary .jb-icon-toc{color:var(--green)}
.jb-floating-toc>summary .jb-icon-down{width:16px;height:16px}
.jb-floating-toc[open]>summary .jb-icon-down{transform:rotate(180deg)}
.jb-floating-toc>nav{position:absolute;inset-inline-start:0;bottom:calc(100% + 12px);width:min(340px,calc(100vw - 32px));max-height:min(440px,55dvh);padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 12px 40px rgb(0 0 0 / 18%);overflow-y:auto;overscroll-behavior:contain}
.jb-floating-toc a{padding:9px 12px;border-radius:8px}
.jb-floating-toc a[aria-current=location]{color:var(--green);background:var(--soft);font-weight:750}
@media(max-width:600px){.jb-floating-toc{inset-inline-start:16px;bottom:max(16px,env(safe-area-inset-bottom))}.jb-floating-toc>summary{padding:10px 12px}}
@media print{.jb-floating-toc{display:none!important}}
.comment-form .comment-notes,.comment-form .logged-in-as{font-size:13px;color:var(--muted)}
:root[data-theme=dark] .ai-summary{background:linear-gradient(115deg,var(--surface),var(--jb-brand-navy-900));border-color:var(--jb-brand-navy-500)}
@media(min-width:1600px){.single-layout{grid-template-columns:minmax(0,1fr) 310px;gap:36px}}
@media(max-width:1050px){.single-main{width:calc(100% - 40px)}.single-layout{grid-template-columns:minmax(0,1fr) 235px;gap:24px}.article-panel{padding:20px}.ai-summary-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.single-layout{grid-template-columns:minmax(0,1fr)}.article-sidebar{position:static;max-height:none;overflow:visible;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.single-header{padding-bottom:28px}.single-header h1{font-size:30px}.single-cover{border-radius:16px}.single-body .entry-content{font-size:16px}}
@media(max-width:520px){.single-main{width:calc(100% - 32px);padding-top:24px}.single-header h1{font-size:26px;margin-block:16px 20px}.single-header .breadcrumbs{font-size:11px;margin-bottom:20px}.single-meta{gap:12px;font-size:11px}.article-sidebar{grid-template-columns:minmax(0,1fr)}.article-panel,.comment-respond{padding:18px;border-radius:16px}.single-body .entry-content{font-size:15px;line-height:2.3}.single-body .entry-content h2{font-size:23px}.comments-heading h2{font-size:19px}.ai-summary-links{gap:8px}.article-actions{padding:12px}.article-panel h2{font-size:16px}}
@media print{.article-sidebar,.ai-summary,.article-actions,.article-comments{display:none!important}.single-layout{display:block}.single-main{width:100%}.single-cover{max-width:600px}.single-header{padding-bottom:12px}}

/* Cumulative selection also works without JavaScript in browsers with :has(). */
.rating-options:has(input[value="1"]:checked)>label:nth-child(-n+1) .jb-icon-star{color:var(--green)}.rating-options:has(input[value="1"]:checked)>label:nth-child(-n+1) .jb-icon-star path{fill:currentColor}
.rating-options:has(input[value="2"]:checked)>label:nth-child(-n+2) .jb-icon-star{color:var(--green)}.rating-options:has(input[value="2"]:checked)>label:nth-child(-n+2) .jb-icon-star path{fill:currentColor}
.rating-options:has(input[value="3"]:checked)>label:nth-child(-n+3) .jb-icon-star{color:var(--green)}.rating-options:has(input[value="3"]:checked)>label:nth-child(-n+3) .jb-icon-star path{fill:currentColor}
.rating-options:has(input[value="4"]:checked)>label:nth-child(-n+4) .jb-icon-star{color:var(--green)}.rating-options:has(input[value="4"]:checked)>label:nth-child(-n+4) .jb-icon-star path{fill:currentColor}
.rating-options:has(input[value="5"]:checked)>label:nth-child(-n+5) .jb-icon-star{color:var(--green)}.rating-options:has(input[value="5"]:checked)>label:nth-child(-n+5) .jb-icon-star path{fill:currentColor}
