/* Near-black surfaces with restrained lime and lavender accents. */
/* Two responsive editorial illustrations; originals never ship with the theme. */
.hero-panel:has(.hero-portrait){grid-template-columns:1.1fr 1fr;padding:44px;gap:38px;align-items:center}
.hero-portrait{position:relative;margin:0;align-self:stretch;min-height:400px;border-radius:18px;overflow:hidden;background:#121418}
.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:55% center;display:block;position:absolute;inset:0}
.hero-portrait figcaption{position:absolute;bottom:0;left:0;right:0;padding:35px 15px 13px;background:linear-gradient(transparent,#090b0ee8);font-size:10px;color:#e5e7e9;letter-spacing:.02em;line-height:1.5}
.editorial-portrait{margin:30px 0;background:#14171c;border:1px solid #2b3038;border-radius:16px;overflow:hidden}
.editorial-portrait img{width:100%;height:auto;display:block;aspect-ratio:3/2}
.editorial-portrait figcaption{font-size:12px;line-height:1.6;padding:11px 16px;color:#a8afb8}
.source-link{display:inline-block;font-size:13px;color:#cef58b}
.ng-budget{border:1px solid #566b3d;border-radius:16px;padding:24px;margin:24px 0;background:#111811;color:#e7ecdf}
.ng-budget p{font-size:14px;line-height:1.65}.ng-budget .budget-intro{color:#b9c3b0}
.budget-balance{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0;font-weight:650}
.ng-budget input{box-sizing:border-box;max-width:100%;width:110px;min-width:0;color:#edf2e6;background:#0b100b;border:1px solid #667459;border-radius:6px;padding:8px}
.budget-row{min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:15px;border:0;border-top:1px solid #34402c;padding:12px 0;margin:0 0 14px}
.budget-row legend{font-size:14px;font-weight:600;padding:0 8px 0 0}.budget-row label{display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12px}
.budget-result{display:block;border-radius:9px;padding:16px;background:#d0f39a;color:#17200c;font-weight:700;line-height:1.5}
.budget-result[data-over-budget]{background:#f8d3a4;color:#38200a}.budget-footnote{margin:16px 0 0;color:#aab8a0!important}
@media(max-width:800px){.hero-panel:has(.hero-portrait){grid-template-columns:1fr;padding:30px;gap:25px}.hero-portrait{min-height:0;aspect-ratio:3/2;width:100%}.hero-portrait img{position:static;object-fit:cover;aspect-ratio:3/2}}
@media(max-width:520px){.hero-panel:has(.hero-portrait){padding:26px 22px}.ng-budget{padding:17px}.budget-row{grid-template-columns:1fr;gap:12px}.budget-balance{font-size:14px}.ng-budget input{width:100px}.hero-portrait figcaption{font-size:9px;padding:30px 10px 10px}}
:root{color-scheme:dark;--paper:#0b0d10;--white:#14171c;--ink:#f0f1ed;--muted:#a8afb8;--line:#2b3038;--lime:#cef58b;--olive:#d6f7ac;--purple:#bdacf0}
body{background:var(--paper);color:var(--ink)}a:hover{color:var(--lime)}
.site-header{background:#0b0d10;border-color:var(--line)}.header-inner{gap:24px;height:86px}.primary-nav{gap:23px}
.brand-symbol{background:var(--lime);color:#11170a}.brand-word small{color:var(--muted)}.age-pill{border-color:var(--line)}.nav-toggle{color:var(--ink)}
.hero-panel{background:radial-gradient(ellipse at 88% 0,#293022 0,transparent 55%),#11151a;border:1px solid #30372e}
.hero-copy>p:not(.eyebrow){color:#b7c0c7}.float-note{background:#232a23;color:#e9efdf;border:1px solid #536047;box-shadow:0 12px 35px #0006}.float-note small{color:#b1bcaa}.float-note.note-two{background:#30283c;border-color:#554765;color:#eadff9}.float-note.note-three{background:#26301f;color:#d6f4b2}.float-note.note-two small{color:#cbb8e1}
.button{background:var(--lime);color:#18210e!important}.button:hover{background:#e2ffb7;color:#18210e!important}
.category-card{border-color:var(--line)}.category-card .category-num,.category-card .arrow{color:var(--muted)}
.tool-card{background:var(--white);border-color:var(--line)}.tool-card:hover{border-color:#6e8156}.status-dot{color:#b6c89f}.status-dot:before{background:var(--lime)}
.card-feature{color:#b8cba0;background:#1c2418;border-color:#36432c}.card-bottom{border-color:var(--line)}
.filters button[aria-pressed=true]{background:var(--lime);color:#1c2511;border-color:var(--lime)}.tool-search input{border-color:#515965}.tool-search input::placeholder{color:var(--muted)}
.feature-story{background:#182019;border-color:#36422f}.feature-story.purple{background:#201b29;border-color:#3d334c}.feature-story .eyebrow{color:#b5cc9d}.feature-story.purple .eyebrow{color:#c6b4e3}.feature-story p{color:#b5bdaf}.feature-story.purple p{color:#c1b8cc}
.methodology{background:#121711;border-color:#30382b}.methodology p{color:#b4beb0}
.site-footer{background:#080a0c;border-top:1px solid var(--line);color:var(--ink)}.footer-main p,.footer-links a,.footer-bottom{color:#a8afb8}.footer-main h3{color:var(--ink)}.footer-bottom{border-color:var(--line)}
.article-layout{grid-template-columns:minmax(0,800px) 285px;gap:58px}
.article-content,.directory-content{color:#c6cbd2;font-size:17px;line-height:1.85}.article-content p,.article-content li{color:#c6cbd2}.article-content strong,.directory-content strong{color:var(--ink)}
.article-content h2,.article-content h3,.directory-content h2,.directory-content h3{color:var(--ink)}.article-content h2{margin-top:54px;padding-top:12px;scroll-margin-top:20px}.article-content a,.directory-content>p a{color:var(--lime)}.article-content .tool-card a{color:var(--ink)}
.article-content blockquote{background:#192016;border-color:#9cbd76}.editorial-note{background:#141b13;border-color:#34432b;color:#b4c4a6}
.sidebar-box{background:var(--white);border-color:var(--line)}.sidebar-box dt{color:#adb7a1}.toc-box{border-top:2px solid var(--lime);padding:22px 23px}.toc-box ol{padding-left:19px}.toc-box li{margin:13px 0;font-size:13px;line-height:1.55}.toc-box h2{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--lime)}.toc-box a{color:#b8c0ca}.toc-box a:hover,.toc-box a[aria-current=location]{color:var(--lime);text-decoration:underline}.article-sidebar{max-height:calc(100vh - 45px);overflow:auto;scrollbar-width:thin}
.table-scroll{background:var(--white);border-color:var(--line)}.comparison-table caption,.comparison-table thead{background:#1c2320;color:#c3cdbb}.comparison-table td,.comparison-table th{border-color:var(--line);color:#c8ced5}.comparison-table tbody th{color:#c1cbb5}.comparison-table tbody tr:nth-child(even){background:#171b20}
.article-content table:not(.comparison-table){border-collapse:collapse;width:100%;font-size:14px;line-height:1.65}.article-content table:not(.comparison-table) th,.article-content table:not(.comparison-table) td{padding:14px;border:1px solid var(--line);text-align:left;vertical-align:top}.article-content table:not(.comparison-table) th{background:#1d251b;color:var(--ink)}.article-content table:not(.comparison-table) td{background:var(--white)}
.ng-offer{border:1px solid #465836!important;background:#182015!important}.ng-offer p,.ng-offer .affiliate-note{color:#bcc8b2!important}.ng-offer .button{width:auto;min-width:190px}
.ng-offer .affiliate-note a{text-decoration:underline;text-underline-offset:3px}
.article-content .ng-offer>p:first-child strong{color:var(--ink)}
.toc-box summary{font-size:12px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--lime);cursor:pointer}.toc-box ol{margin-top:18px}.page-heading h1{font-size:clamp(2.3rem,4.2vw,3.8rem)}
@media(max-width:520px){.header-inner{flex-wrap:nowrap}.header-inner .brand{font-size:18px;margin-right:8px}.header-inner .brand-word small{display:none}.header-inner .language-switcher{margin-right:8px}.header-inner .language-switcher summary{padding:8px}.header-inner .nav-toggle{padding:7px}}
.search-form input{background:var(--white);border-color:var(--line);color:var(--ink)}.page-numbers{background:var(--white)}
.directory-content>h2{font-size:30px;margin-top:52px}.directory-content>p{max-width:830px}.home-reading{max-width:900px;padding-top:15px}.home-reading h2{font-size:32px}.home-reading p{color:#b8c0c8}.sitemap-list{columns:2;column-gap:35px}.sitemap-list li{break-inside:avoid;margin-bottom:12px}.skip-link:focus{background:var(--lime);color:#17210d}
@media(max-width:1100px){.primary-nav{gap:15px}.primary-nav a{font-size:13px}.header-inner{gap:16px}.article-layout{gap:30px;grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:900px) and (min-width:801px){.brand{font-size:20px}.brand-word small{letter-spacing:2px}.primary-nav{gap:12px}.primary-nav a{font-size:12px}.age-pill{display:none}}
@media(max-width:800px){.header-inner{height:78px;gap:0}.js .primary-nav{top:78px;background:#11151a}.article-layout{grid-template-columns:1fr}.article-sidebar{max-height:none;overflow:visible;display:block}.article-sidebar>.sidebar-box:not(.toc-box){display:none}.toc-box ol{columns:2}.article-content{font-size:16px}.site-header:has(.language-switcher){position:relative;z-index:30}}
@media(max-width:520px){.header-inner .brand{font-size:19px;gap:8px}.brand-word small{font-size:8px;letter-spacing:2.3px}.nav-toggle{font-size:11px;padding:7px 9px}.toc-box ol{columns:1}.page-heading h1{font-size:36px}.sitemap-list{columns:1}.article-content table:not(.comparison-table){font-size:12px}.article-content table:not(.comparison-table) td,.article-content table:not(.comparison-table) th{padding:10px}}

/* Shared topic navigation and visible breadcrumb hierarchy. */
/* The finder enhances native disclosure panels; initialization does not resize them. */
.article-content .ng-chat-finder{margin:26px 0;padding:24px;border:1px solid #536743;border-radius:16px;background:#111710}
.ng-finder-controls{display:none}.js .ng-finder-controls{display:block}
.ng-finder-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.ng-finder-fields label{min-width:0;font-size:14px;font-weight:600;color:var(--ink)}
.ng-finder-fields select{display:block;width:100%;min-width:0;min-height:48px;margin-top:8px;padding:10px;color:var(--ink);background:#0b0d10;border:1px solid #71845f;border-radius:7px;font-size:16px}
.ng-chat-finder .ng-finder-status{min-height:3em;margin:12px 0 20px;font-size:13px;line-height:1.5;color:#b4c1aa}
.ng-chat-finder .ng-finder-panels>h3{margin:24px 0 14px;font-size:21px}
.ng-chat-finder details{margin:10px 0;padding:0;border:1px solid #384833;border-radius:9px;background:#172014;scroll-margin-top:45px}
.ng-chat-finder details[open]{padding-bottom:8px}.ng-chat-finder details[data-selected]{border-color:var(--lime)}
.ng-chat-finder summary{min-height:48px;padding:13px 16px;font-size:16px;line-height:1.5;font-weight:600;color:var(--ink);cursor:pointer}
.ng-chat-finder details>p,.ng-chat-finder details>ol{margin:10px 16px 16px;font-size:15px;line-height:1.75}
.ng-chat-finder details>ol{padding-left:22px}.ng-chat-finder details li{margin-bottom:10px}
.ng-chat-finder .ng-finder-note{margin:20px 0 0;font-size:13px;line-height:1.7;color:#b4c1aa}
@media(max-width:700px){.ng-finder-fields{grid-template-columns:1fr}.article-content .ng-chat-finder{padding:16px}.ng-chat-finder .button{width:100%;min-height:48px}}
/* Explanatory figures stay as selectable, accessible text; no chart runtime. */
.article-content .ng-explainer{margin:28px 0;padding:22px;border:1px solid #536743;border-radius:16px;background:#111710;color:#dce5d4}
.ng-explainer .ng-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;margin:0;padding:0}
.ng-explainer .ng-flow>li{position:relative;min-width:0;margin:0;padding:16px;border:1px solid #37482e;border-radius:10px;background:#182115;overflow-wrap:anywhere}
.ng-explainer .ng-flow>li:not(:last-child)::after{content:"→";position:absolute;right:-21px;top:25px;color:var(--lime);font-size:20px}
.ng-explainer .ng-step{display:block;color:#cef58b;font-size:11px;font-weight:700;letter-spacing:.06em}
.ng-explainer h3{font-size:19px;line-height:1.35;margin:10px 0 14px;padding:0}
.ng-explainer p{font-size:14px;line-height:1.65;margin:12px 0}
.ng-explainer .ng-branch{border-top:1px solid #405535;padding-top:12px}.ng-explainer .ng-next{color:#cfddbF;font-size:12px}
.ng-explainer .ng-metric{padding:10px 0;border-block:1px solid #405535;font-size:15px}.ng-explainer .ng-metric strong{display:block;color:var(--lime);font-size:21px}
.ng-explainer figcaption{margin-top:18px;font-size:12px;line-height:1.65;color:#b4c1aa}
.article-content .ng-record{margin:24px 0;border-left:3px solid var(--purple);padding:10px 22px;background:#18151f}
.article-content .ng-record h3{margin-top:10px}.article-content .ng-worksheet{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;padding:20px;background:#14171c;border:1px solid #39424d;border-radius:10px;font-size:14px;line-height:1.8;color:#d6dde5}
.article-content table caption{padding:12px;text-align:left;color:var(--ink);font-size:13px;line-height:1.6}
@media(max-width:1100px){.ng-explainer .ng-flow{grid-template-columns:1fr;gap:24px}.ng-explainer .ng-flow>li:not(:last-child)::after{content:"↓";right:auto;left:18px;top:auto;bottom:-26px}.ng-explainer h3{font-size:20px}}
@media(max-width:520px){.article-content .ng-explainer{padding:15px}.ng-explainer .ng-flow>li{padding:15px}.article-content .ng-worksheet{padding:14px;font-size:13px}.article-content .ng-record{padding:10px 15px}}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0}.breadcrumb li{display:inline}.breadcrumb li>span[aria-hidden]{margin-left:5px}.ng-topic-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ng-topic-grid .category-card h3{font-size:23px}.topic-index{margin-bottom:40px}.topic-index>h2{font-size:27px}.topic-reading{margin-top:42px;border-top:1px solid var(--line);padding-top:12px}.topic-reading h2{font-size:25px;margin-top:22px}.topic-parent{font-size:14px}.topic-reading-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.topic-reading-list li{border-top:1px solid var(--line);padding:15px 0;line-height:1.5;min-width:0}.topic-reading-list li>span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.topic-reading-list a{font-size:14px}.topic-reading-list a:hover{text-decoration-thickness:2px}
@media(max-width:1000px){.ng-topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.ng-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-reading-list{grid-template-columns:1fr}.ng-topic-grid .category-card h3{font-size:21px}}

/* A single-tool fact table can wrap in place; multi-tool comparisons keep their scroll region. */
.comparison-table:has(thead th:nth-child(2):last-child){min-width:0;table-layout:fixed}
.comparison-table:has(thead th:nth-child(2):last-child) th,.comparison-table:has(thead th:nth-child(2):last-child) td{min-width:0;overflow-wrap:anywhere}
.comparison-table:has(thead th:nth-child(2):last-child) tr>:first-child{width:36%}

@media(max-width:800px){
  .header-inner .nav-toggle{min-height:44px;min-width:66px;font-size:14px;padding:9px 12px}
  .js .primary-nav{max-height:calc(100vh - 78px);max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain;gap:4px}
  .js .admin-bar .primary-nav{max-height:calc(100vh - 124px);max-height:calc(100dvh - 124px)}
  .primary-nav a{display:flex;align-items:center;min-height:44px;width:100%;font-size:15px;padding:8px 0}
  .toc-box{padding:12px 18px}
  .toc-box summary{min-height:44px;padding:12px 0;line-height:1.5}
  .toc-box li{margin:4px 0}
  .toc-box li a{display:block;min-height:44px;padding:10px 0}
  .ng-budget input,.ng-media-inputs input,.tool-search input,.search-form input{font-size:16px;min-height:44px}
  .comparison-table:has(thead th:nth-child(2):last-child){font-size:13px}
  .comparison-table:has(thead th:nth-child(2):last-child) th,.comparison-table:has(thead th:nth-child(2):last-child) td{padding:12px}
}

@media(max-width:360px){.header-inner .brand{font-size:16px;gap:5px;margin-right:4px}.header-inner .brand-symbol{width:26px;height:26px;font-size:23px}.header-inner .language-switcher{margin-right:4px}.header-inner .language-switcher summary{gap:4px;padding:8px 6px}.header-inner .nav-toggle{min-width:54px;padding:8px 6px;font-size:12px;white-space:nowrap}}
