/*
 Theme Name:   Vilva Pro Child
 Template:     vilva-pro
 Description:  Child theme for TurnerNet customizations
 Version:      2.0.4
*/

/* =============================================================
   0. CUSTOM PROPERTIES — design tokens
   ============================================================= */
:root {
    --tn-dark: #1a1118;
    --tn-dark-surface: #231a21;
    --tn-purple: #5e077a;
    --tn-purple-light: rgba(94, 7, 122, 0.12);
    --tn-teal: #90BAB5;
    --tn-teal-dim: rgba(144, 186, 181, 0.3);
    --tn-lavender: #faf7fb;
    --tn-border: #2e2430;
    --tn-text-muted: #9a8f9e;
    --tn-font-display: 'DM Serif Display', Georgia, serif;
    --tn-font-heading: 'DM Serif Display', Georgia, serif;
    --tn-font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    /* Override parent theme's font custom properties */
    --primary-font: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --secondary-font: 'DM Serif Display', Georgia, serif;
}

/* =============================================================
   0-FIX. OVERFLOW GUARD — prevent horizontal scrollbar
   ============================================================= */
html {
    overflow-x: clip !important;
}

body,
.site,
#page {
    overflow-x: clip;
}

/* Old header search bar — fully suppressed, replaced by overlay */
.header-search-wrap {
    display: none !important;
}

/* =============================================================
   0A. HIDE PARENT THEME HEADER ELEMENTS — suppress 3-tier chrome
   ============================================================= */
.site-header.style-one .header-t,
.site-header.style-one .header-mid,
.site-header.style-one .header-bottom,
.site-header.style-one {
    display: none !important;
}

/* Hide parent footer if it somehow renders alongside ours */
.site-footer .footer-t,
.site-footer .footer-b {
    display: none !important;
}

/* AI Lab utility footer: hide globally — only shown via AI Lab-scoped rules */
.tn-lab-utility-footer {
    display: none !important;
}

/* =============================================================
   0B. CUSTOM HEADER — single editorial bar
   ============================================================= */
.tn-header {
    background: var(--tn-dark);
    position: sticky;
    top: 0;
    z-index: 999;
    border-bottom: 1px solid var(--tn-border);
}

.tn-header__inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    gap: 24px;
}

/* Brand / Wordmark — single <a> wrapping logo + text */
.tn-header__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    text-decoration: none;
    color: inherit;
    border-radius: 8px;
}

.tn-header__brand:focus-visible {
    outline: 2px solid var(--tn-teal);
    outline-offset: 2px;
}

.tn-header__logo {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.tn-header__logo .custom-logo-link {
    display: block;
}

.tn-header__logo .custom-logo {
    width: 36px !important;
    height: 36px !important;
    border-radius: 6px;
    object-fit: cover;
}

.tn-header__wordmark {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.tn-header__name {
    font-family: var(--tn-font-display);
    font-size: 1.25rem;
    color: #fff;
    letter-spacing: -0.01em;
    transition: color 0.2s;
}

.tn-header__brand:hover .tn-header__name {
    color: var(--tn-teal);
}

.tn-header__tagline {
    font-family: var(--tn-font-body);
    font-size: 0.8125rem;
    color: rgba(144, 186, 181, 0.85);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-top: 2px;
}

/* Navigation */
.tn-header__nav {
    flex-grow: 1;
    display: flex;
    justify-content: center;
}

.tn-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 4px;
}

.tn-nav > li {
    position: relative;
}

.tn-nav > li > a {
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
    font-weight: 500;
    color: #c8bfcc;
    text-decoration: none;
    padding: 8px 14px;
    border-radius: 6px;
    transition: color 0.2s, background 0.2s;
    display: block;
    white-space: nowrap;
}

.tn-nav > li > a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

/* Dropdown menus */
.tn-nav > li > .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: var(--tn-dark-surface);
    border: 1px solid var(--tn-border);
    border-radius: 8px;
    padding: 6px 0;
    margin-top: 4px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
    list-style: none;
    z-index: 100;
}

.tn-nav > li:hover > .sub-menu,
.tn-nav > li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.tn-nav .sub-menu li a {
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    color: #b0a4b5;
    text-decoration: none;
    padding: 8px 16px;
    display: block;
    transition: color 0.15s, background 0.15s, padding-left 0.15s;
}

.tn-nav .sub-menu li a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.04);
    padding-left: 20px;
}

/* Actions (search, social) */
.tn-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.tn-header__search-btn {
    background: none;
    border: none;
    color: #c8bfcc;
    cursor: pointer;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    border-radius: 6px;
    transition: color 0.2s, background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tn-header__search-btn:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

.tn-header__social .social-networks {
    display: flex;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.tn-header__social .social-networks li a {
    color: var(--tn-text-muted);
    font-size: 0.82rem;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    border-radius: 4px;
    transition: color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tn-header__social .social-networks li a svg {
    width: 16px;
    height: 16px;
}

.tn-header__social .social-networks li a:hover {
    color: var(--tn-teal);
}

/* Header CTA button — ghost style */
.tn-header__cta {
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--tn-teal, #90BAB5);
    border: 1.5px solid var(--tn-teal, #90BAB5);
    background: transparent;
    padding: 6px 16px;
    border-radius: 20px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
    display: inline-block;
}

.tn-header__cta:hover {
    background: var(--tn-teal, #90BAB5);
    color: var(--tn-dark, #1a1118);
}

/* Mobile-only elements — hidden on desktop */
.tn-header__mobile-footer {
    display: none;
}

.tn-header__backdrop {
    display: none;
}

/* Mobile hamburger toggle */
.tn-header__toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    flex-direction: column;
    gap: 5px;
    z-index: 10;
    border-radius: 6px;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.tn-header__toggle:hover,
.tn-header__toggle:active {
    background: rgba(255, 255, 255, 0.06) !important;
}

.tn-header__toggle:hover span {
    background: #fff;
}

.tn-header__toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: #c8bfcc;
    border-radius: 1px;
    transition: transform 0.3s, opacity 0.3s, background 0.2s;
}

.tn-header__toggle.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.tn-header__toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.tn-header__toggle.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* =============================================================
   0B-MODAL. CONTACT FORM MODAL — "Let's Connect" (dark theme)
   ============================================================= */
.tn-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
.tn-modal.is-open {
    display: flex;
}
.tn-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.tn-modal__container {
    position: relative;
    background: var(--tn-dark-surface);
    border: 1px solid var(--tn-border);
    border-radius: 16px;
    width: 90%;
    max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(144, 186, 181, 0.08);
    animation: tn-modal-in 0.25s ease-out;
}
@keyframes tn-modal-in {
    from { opacity: 0; transform: translateY(16px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.tn-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 28px 0;
}
.tn-modal__title {
    font-family: var(--tn-font-display);
    font-size: 1.5rem;
    color: #fff;
    margin: 0;
}
.tn-modal__close {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    color: var(--tn-text-muted);
    border-radius: 8px;
    transition: background 0.2s, color 0.2s;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.tn-modal__close:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}
.tn-modal__divider {
    height: 2px;
    margin: 16px 28px 0;
    background: linear-gradient(90deg, var(--tn-purple), var(--tn-teal), transparent);
    border-radius: 2px;
}
.tn-modal__body {
    padding: 20px 28px;
}
.tn-modal__intro {
    color: var(--tn-text-muted);
    font-size: 0.95rem;
    margin: 0 0 20px;
    line-height: 1.5;
}
.tn-modal__footer {
    padding: 0 28px 24px;
    text-align: center;
    font-size: 0.85rem;
    color: var(--tn-text-muted);
}
.tn-modal__footer a {
    color: var(--tn-teal);
    text-decoration: underline;
    text-decoration-color: rgba(144, 186, 181, 0.3);
    text-underline-offset: 2px;
    transition: text-decoration-color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.tn-modal__footer a:hover {
    text-decoration-color: var(--tn-teal);
}
.tn-modal__footer svg {
    flex-shrink: 0;
}

/* CF7 form styling inside dark modal */
.tn-modal .wpcf7-form {
    margin: 0;
}
.tn-modal .wpcf7-form p {
    color: var(--tn-text-muted);
}
.tn-modal .tn-modal-form__label {
    display: block;
    margin: 0 0 6px;
    color: #dce8e5;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.35;
}
.tn-modal .tn-cf7-row {
    display: flex;
    gap: 12px;
    margin-bottom: 0;
}
.tn-modal .tn-cf7-field {
    flex: 1;
}
.tn-modal .wpcf7-form input[type="text"],
.tn-modal .wpcf7-form input[type="email"],
.tn-modal .wpcf7-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--tn-border);
    border-radius: 8px;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.04);
    color: #e0d8e3;
}
.tn-modal .wpcf7-form input::placeholder,
.tn-modal .wpcf7-form textarea::placeholder {
    color: var(--tn-text-muted);
    opacity: 0.7;
}
.tn-modal .wpcf7-form input:focus,
.tn-modal .wpcf7-form textarea:focus {
    border-color: var(--tn-teal);
    outline: none;
    background: rgba(255, 255, 255, 0.07);
    box-shadow: 0 0 0 3px rgba(144, 186, 181, 0.1);
}
.tn-modal .wpcf7-form textarea {
    min-height: 100px;
    resize: vertical;
}
.tn-modal .wpcf7-form input[type="submit"] {
    background: var(--tn-teal);
    color: var(--tn-dark);
    border: none;
    padding: 12px 28px;
    border-radius: 8px;
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    margin-top: 4px;
    text-transform: none;
    letter-spacing: 0;
}
.tn-modal .wpcf7-form input[type="submit"]:hover {
    background: #a3ccc7;
}
.tn-modal .wpcf7-form input[type="submit"]:active {
    transform: scale(0.98);
}

/* CF7 response messages — dark theme */
.tn-modal .wpcf7-response-output {
    border-color: var(--tn-teal) !important;
    background: rgba(144, 186, 181, 0.08) !important;
    color: var(--tn-teal) !important;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 0.9rem;
    margin: 12px 0 0 !important;
}
.tn-modal .wpcf7-not-valid-tip {
    color: #e57373;
    font-size: 0.8rem;
}
.tn-modal .wpcf7-form.invalid .wpcf7-response-output,
.tn-modal .wpcf7-form.unaccepted .wpcf7-response-output {
    border-color: #e57373 !important;
    background: rgba(229, 115, 115, 0.08) !important;
    color: #e57373 !important;
}

/* Modal responsive */
@media (max-width: 600px) {
    .tn-modal__container {
        width: 95%;
        border-radius: 12px;
    }
    .tn-modal__header {
        padding: 16px 16px 0;
    }
    .tn-modal__title {
        font-size: 1.25rem;
    }
    .tn-modal__divider {
        margin: 10px 16px 0;
    }
    .tn-modal__body {
        padding: 12px 16px;
    }
    .tn-modal__intro {
        font-size: 0.85rem;
        margin-bottom: 12px;
    }
    .tn-modal__footer {
        padding: 0 16px 16px;
    }
    .tn-modal .tn-cf7-row {
        flex-direction: column;
        gap: 0;
    }
    /* Tighten CF7 paragraph spacing in modal */
    .tn-modal .wpcf7-form p {
        margin: 0 0 8px;
    }
    .tn-modal .wpcf7-form input[type="text"],
    .tn-modal .wpcf7-form input[type="email"],
    .tn-modal .wpcf7-form textarea {
        padding: 10px 12px;
        font-size: 0.85rem;
    }
    .tn-modal .wpcf7-form textarea {
        min-height: 70px;
    }
    .tn-modal .wpcf7-form input[type="submit"] {
        padding: 10px 24px;
        font-size: 0.88rem;
    }
}

/* =============================================================
   0C. CUSTOM FOOTER — dark editorial canvas
   ============================================================= */
.tn-footer {
    background: var(--tn-dark);
    color: #c8bfcc;
    font-family: var(--tn-font-body);
}

.tn-footer__divider {
    height: 3px;
    background: linear-gradient(to right, transparent, var(--tn-teal), var(--tn-purple), var(--tn-teal), transparent);
    opacity: 0.85;
}

.tn-footer__main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 56px 24px 40px;
}

.tn-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr 0.8fr 1fr;
    gap: 40px;
}

/* Brand column */
.tn-footer__wordmark {
    font-family: var(--tn-font-display);
    font-size: 1.5rem;
    color: #fff;
    text-decoration: none;
    display: inline-block;
    transition: color 0.2s;
}

.tn-footer__wordmark:hover {
    color: var(--tn-teal);
}

.tn-footer__tagline {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tn-teal);
    margin: 6px 0 14px;
}

.tn-footer__desc {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--tn-text-muted);
    margin: 0 0 20px;
}

.tn-footer__social .social-networks {
    display: flex;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.tn-footer__social .social-networks li a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--tn-border);
    color: var(--tn-text-muted);
    font-size: 0.85rem;
    transition: all 0.2s;
    text-decoration: none;
}

.tn-footer__social .social-networks li a svg {
    width: 16px;
    height: 16px;
}

.tn-footer__social .social-networks li a:hover {
    background: var(--tn-purple);
    border-color: var(--tn-purple);
    color: #fff;
    transform: translateY(-2px);
}

/* Column headings */
.tn-footer__heading {
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--tn-teal);
    margin: 0 0 18px;
}

/* Link columns */
.tn-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tn-footer__links li {
    margin-bottom: 10px;
}

.tn-footer__links a {
    font-size: 0.88rem;
    color: #b0a4b5;
    text-decoration: underline;
    text-decoration-color: rgba(176, 164, 181, 0.3);
    text-underline-offset: 3px;
    transition: color 0.2s, padding-left 0.2s, text-decoration-color 0.2s;
    display: inline-block;
}

.tn-footer__links a:hover {
    color: #fff;
    padding-left: 4px;
    text-decoration-color: rgba(255, 255, 255, 0.5);
}

/* CTA column */
.tn-footer__cta-text {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--tn-text-muted);
    margin: 0 0 18px;
}

.tn-footer__cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}

.tn-footer__cta-btn:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
    color: #fff;
}

.tn-footer__cta-btn svg {
    transition: transform 0.2s;
}

.tn-footer__cta-btn:hover svg {
    transform: translateX(3px);
}

/* Bottom bar */
.tn-footer__bottom {
    border-top: 1px solid var(--tn-border);
}

.tn-footer__bottom-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 18px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tn-footer__copyright {
    font-size: 0.78rem;
    color: var(--tn-text-muted);
    margin: 0;
}

.tn-footer__bottom-links {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    padding-right: 72px; /* Clear the chat FAB (60px + gap) */
}

.tn-footer__bottom-links a {
    color: var(--tn-text-muted);
    text-decoration: none;
    transition: color 0.2s;
}

.tn-footer__bottom-links a:hover {
    color: #fff;
}

.tn-footer__sep {
    color: var(--tn-border);
}

/* =============================================================
   0D. HEADER + FOOTER RESPONSIVE
   ============================================================= */
/* --- Staggered header breakpoints --- */

/* 1100px: hide tagline on smaller laptops */
@media (max-width: 1100px) {
    .tn-header__tagline {
        display: none;
    }

    /* Tighter nav spacing */
    .tn-nav > li > a {
        font-size: 0.8rem;
        padding: 8px 10px;
    }
}

/* 1300px: hide social icons before they overflow */
@media (max-width: 1300px) {
    .tn-header__social {
        display: none;
    }
}

/* 991px: hamburger menu — nav collapses */
@media (max-width: 991px) {
    /* Show hamburger toggle (lives in .tn-header__actions, always visible) */
    .tn-header__toggle {
        display: flex;
    }

    .tn-header__actions {
        margin-left: auto;
    }

    /* Hide desktop CTA — it appears in mobile menu footer instead */
    .tn-header__actions .tn-header__cta {
        display: none;
    }

    /* Mobile overlay on the <nav> wrapper, not just the <ul> */
    .tn-header__nav {
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--tn-dark);
        padding: 8px 24px 16px;
        z-index: 998;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
    }

    .tn-header__nav.is-open {
        opacity: 1;
        visibility: visible;
    }

    .tn-nav {
        flex-direction: column;
        gap: 2px;
    }

    .tn-nav > li > a {
        font-size: 1rem;
        padding: 12px 16px;
    }

    .tn-nav > li > .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: transparent;
        border: none;
        margin: 0;
        padding: 0 0 0 16px;
    }

    /* Mobile menu footer — social + CTA */
    .tn-header__mobile-footer {
        display: flex;
        flex-direction: column;
        gap: 16px;
        padding: 20px 0;
        margin-top: 16px;
        border-top: 1px solid var(--tn-border);
    }

    .tn-header__mobile-footer .social-networks {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        list-style: none;
        margin: 0;
        padding: 0;
        justify-content: center;
    }

    .tn-header__mobile-footer .social-networks li a {
        color: var(--tn-text-muted);
        padding: 10px;
        min-width: 44px;
        min-height: 44px;
        border-radius: 6px;
        transition: color 0.2s, background 0.2s;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .tn-header__mobile-footer .social-networks li a:hover {
        color: var(--tn-teal);
        background: rgba(255, 255, 255, 0.06);
    }

    .tn-header__mobile-footer .social-networks li a svg {
        width: 18px;
        height: 18px;
    }

    .tn-header__mobile-footer .tn-header__cta {
        display: block;
        text-align: center;
        padding: 12px 24px;
        font-size: 0.95rem;
    }

    /* Mobile menu backdrop */
    .tn-header__backdrop {
        display: block;
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 997;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
    }

    .tn-header__backdrop.is-open {
        opacity: 1;
        visibility: visible;
    }
}

/* Admin bar — push sticky header below WP admin bar */
.admin-bar .tn-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .tn-header {
        top: 46px;
    }
}

/* Admin bar — push mobile overlay + backdrop below admin bar + header */
.admin-bar .tn-header__nav,
.admin-bar .tn-header__backdrop {
    top: calc(64px + 32px);
}

@media screen and (max-width: 782px) {
    .admin-bar .tn-header__nav,
    .admin-bar .tn-header__backdrop {
        top: calc(64px + 46px);
    }
}

/* 767px: footer grid adjustment */
@media (max-width: 767px) {
    .tn-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .tn-footer__col--brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 480px) {
    .tn-header__inner {
        padding: 0 12px;
        gap: 8px;
    }

    .tn-header__logo {
        width: 30px;
        height: 30px;
    }

    .tn-header__logo .custom-logo {
        width: 30px !important;
        height: 30px !important;
    }

    .tn-header__name {
        font-size: 1.05rem;
    }

    .tn-header__search-btn {
        padding: 8px;
        min-width: 44px;
        min-height: 44px;
    }

    .tn-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px 16px;
    }

    .tn-footer__col--brand {
        grid-column: 1 / -1;
        margin-bottom: 0;
    }

    .tn-footer__col--cta {
        grid-column: 1 / -1;
        margin-top: 4px;
    }

    /* Hide redundant text on mobile — hero already covers this */
    .tn-footer__desc {
        display: none;
    }

    .tn-footer__tagline {
        margin: 2px 0 6px;
    }

    .tn-footer__bottom-inner {
        flex-direction: column;
        gap: 4px;
        text-align: center;
        padding-bottom: 80px; /* Clear floating chat + back-to-top buttons */
    }

    .tn-footer__bottom-links {
        padding-right: 0;
    }

    /* Hero adjustments — compact for mobile */
    .tn-page-hero {
        padding: 24px 24px 16px;
    }

    .tn-page-hero__text {
        font-size: 0.85rem;
        line-height: 1.5;
    }

    .tn-page-hero__ctas {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .tn-page-hero__cta {
        font-size: 0.85rem;
        padding: 10px 24px;
    }

    .tn-page-hero--fade::after {
        height: 16px;
        bottom: -16px;
    }

    .tn-page-hero--compact {
        padding: 20px 24px 12px;
    }

    /* Positioning strip — mobile */
    .tn-positioning {
        padding: 20px 20px;
    }

    .tn-positioning__text {
        font-size: 0.95rem;
    }

    .tn-cta-band__heading {
        font-size: 1.3rem;
    }

    /* ── Vertical + horizontal spacing tightened for mobile ── */

    .tn-positioning {
        max-width: 100%;
        overflow-x: hidden;
    }

    .tn-how-i-help__inner {
        margin-bottom: 12px;
    }

    /* Latest Insights heading */
    .tn-insights-header {
        margin-bottom: 16px;
    }

    .tn-blog-featured {
        margin-top: 12px;
    }

    /* Services page sections (base overrides — component blocks handle padding) */
    .tn-services-tech {
        padding: 16px 16px;
    }

    .tn-services-cta {
        padding: 20px 16px;
    }

    .tn-services-cta__form {
        padding: 0;
    }

    .tn-testimonials {
        padding: 16px 16px 12px;
    }

    .tn-testimonials__heading {
        font-size: 1.3rem;
        margin-bottom: 16px;
    }

    .tn-testimonials__grid {
        gap: 12px;
    }

    .tn-testimonial {
        padding: 20px 16px 16px;
    }

    .tn-testimonial__text {
        font-size: 0.82rem;
        margin-bottom: 12px;
    }

    .tn-testimonial__attribution {
        padding-top: 10px;
    }

    /* CTA band */
    .tn-cta-band {
        padding: 20px 16px;
    }

    .tn-cta-band__text {
        margin-bottom: 16px;
    }

    .tn-cta-band::after {
        margin-top: 16px;
    }

    /* Blog sections */
    .tn-blog-grid {
        padding-left: 24px;
        padding-right: 24px;
    }

    /* CF7 form field spacing — tighten <p> wrappers */
    .wpcf7-form p {
        margin-top: 0;
        margin-bottom: 12px;
    }

    /* Footer — compact on mobile (target: <50% viewport height)
       Desktop footer has 4 columns: brand | navigate | resources | CTA.
       Mobile: brand+social row, two link columns tight, hide CTA column
       (redundant — every page already has CTA buttons above the footer). */
    .tn-footer__main {
        padding: 16px 16px 8px;
    }

    .tn-footer__wordmark {
        font-size: 1.15rem;
    }

    .tn-footer__tagline {
        margin: 2px 0 4px;
        font-size: 0.68rem;
    }

    .tn-footer__col {
        margin-bottom: 0;
    }

    /* Hide CTA column — every page already ends with a CTA above footer */
    .tn-footer__col--cta {
        display: none;
    }

    .tn-footer__heading {
        margin-bottom: 4px;
        font-size: 0.68rem;
    }

    .tn-footer__links {
        gap: 0;
    }

    .tn-footer__links li {
        margin-bottom: 1px;
    }

    .tn-footer__links a {
        font-size: 0.78rem;
        padding: 2px 0;
    }

    .tn-footer__social {
        margin-bottom: 0;
    }

    .tn-footer__social .social-networks {
        gap: 2px;
    }

    .tn-footer__social .social-networks li a {
        width: 32px;
        height: 32px;
        min-width: 32px;
        min-height: 32px;
    }

    .tn-footer__bottom-inner {
        padding: 10px 16px 20px;
    }

    /* Touch targets — minimum 48px */
    .back-to-top,
    .scroll-to-top,
    #back-to-top {
        min-width: 48px !important;
        min-height: 48px !important;
    }

    /* Touch targets — invisible tap padding (no visual size increase) */
    .tn-filter-pill {
        position: relative;
    }
    .tn-filter-pill::after {
        content: '';
        position: absolute;
        top: -8px;
        bottom: -8px;
        left: -4px;
        right: -4px;
    }

    .tn-blog-filter__pill {
        position: relative;
    }
    .tn-blog-filter__pill::after {
        content: '';
        position: absolute;
        top: -8px;
        bottom: -8px;
        left: -4px;
        right: -4px;
    }

    /* Resume tab labels — smaller to prevent "Achie..." truncation */
    label[for*="tab-"] {
        font-size: 0.75rem;
    }

    /* Contact page — compact form on mobile */
    .tn-contact__form .wpcf7-form input[type="text"],
    .tn-contact__form .wpcf7-form input[type="email"],
    .tn-contact__form .wpcf7-form textarea {
        padding: 10px 12px;
        font-size: 0.88rem;
    }

    .tn-contact__form .wpcf7-form textarea {
        min-height: 100px;
    }

    .tn-contact__form .wpcf7-form input[type="submit"] {
        width: 100%;
        padding: 12px 16px;
    }
}

/* Ultra-narrow: Galaxy Fold and similar (sub-320px) */
@media (max-width: 320px) {
    .tn-header__inner {
        padding: 0 8px;
        gap: 6px;
    }

    .tn-header__name {
        font-size: 0.95rem;
    }

    .tn-header__logo {
        width: 26px;
        height: 26px;
    }

    .tn-header__logo .custom-logo {
        width: 26px !important;
        height: 26px !important;
    }

    .tn-page-hero {
        padding: 28px 12px 24px;
    }

    .tn-page-hero__cta {
        font-size: 0.82rem;
        padding: 8px 16px;
    }

    .tn-cta-band {
        padding: 32px 12px;
    }

    .tn-cta-band__heading {
        font-size: 1.15rem;
    }

    .tn-cta-band__btn {
        font-size: 0.85rem;
        padding: 10px 20px;
    }

    /* Post cards single column + tighter */
    .entry-content .wp-block-latest-posts.columns-3,
    .entry-content .wp-block-latest-posts.wp-block-latest-posts__list {
        gap: 14px;
    }
}

/* =============================================================
   0E. GLOBAL TYPOGRAPHY — DM Sans body, DM Serif Display headings
   ============================================================= */
body,
p,
li,
.entry-content,
.entry-content p,
.entry-content li,
.widget,
#secondary,
.site-description,
.post-navigation,
.breadcrumb,
input,
textarea,
select,
button {
    font-family: var(--tn-font-body) !important;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title,
.page-title,
.widget-title,
#secondary h2 {
    font-family: var(--tn-font-display) !important;
}

/* =============================================================
   0F. HERO PAGE TEMPLATE — full-width layout matching blog
   ============================================================= */

/* Remove .container max-width so hero + sections are full-width
   (same rule the blog uses: .blog .site-content .container) */
.tn-hero-page-body .site-content .container {
    max-width: none;
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

/* Hero: container is full-width, so disable the 100vw breakout */
.tn-hero-page > .tn-page-hero {
    width: 100%;
    left: 0;
    transform: none;
    margin-top: 0;
}

/* Remove gradient fade on homepage hero — other pages use --compact (no fade) */
.home .tn-page-hero--fade::after {
    display: none;
}

/* Remove gradient fade on all hero-template pages (methodology steps, etc.) */
.tn-hero-page-body .tn-page-hero--fade::after {
    display: none;
}

/* Hide breadcrumb top-bar on hero template pages */
.tn-hero-page-body .top-bar,
.home .top-bar {
    display: none !important;
}

/* Hide breadcrumbs/top bars across the public site. */
.top-bar {
    display: none !important;
}

/* AI Readiness + Client Workspace should render like hero-template pages
   even if WordPress page template assignment drifts. */
.tn-ai-readiness-page .site-content .container,
.tn-client-workspace-page .site-content .container {
    max-width: none;
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

.tn-ai-readiness-page .content-area,
.tn-ai-readiness-page #primary,
.tn-client-workspace-page .content-area,
.tn-client-workspace-page #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}

.tn-ai-readiness-page #secondary,
.tn-client-workspace-page #secondary {
    display: none !important;
}

.tn-ai-readiness-page .entry-header,
.tn-ai-readiness-page .page-header,
.tn-client-workspace-page .entry-header,
.tn-client-workspace-page .page-header {
    display: none !important;
}

.tn-ai-readiness-page .entry-content,
.tn-client-workspace-page .entry-content {
    margin-top: 0;
}

/* Hide the broken Owl Carousel slider on homepage */
.home .site-banner,
.home .site-banner.style-one {
    display: none !important;
}

/* Full-width homepage: remove sidebar, expand content area */
.home.no-sidebar .site-content .content-area,
.home.no-sidebar #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}

.home.no-sidebar #secondary {
    display: none !important;
}

/* =============================================================
   0G. CONTENT AREA — subtle background tint + spacing fixes
   ============================================================= */
.site-content {
    background: #faf9fb;
}

/* Top margin for hero image when page title is hidden */
.home .site-content .entry-content > .wp-block-image:first-child {
    margin-top: 24px;
}

/* Reduce white gap between content and footer */
.site-content,
#content,
.site-main,
.page .site-main {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.site-content .content-area {
    padding-bottom: 0;
    margin-bottom: 0;
}

footer.tn-footer {
    margin-top: 0 !important;
}

/* =============================================================
   0H. HEADER ENHANCEMENTS — scroll shadow + active nav
   ============================================================= */
.tn-header.is-scrolled {
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

.tn-nav > li.current-menu-item > a,
.tn-nav > li.current_page_item > a {
    color: #fff;
    background: rgba(144, 186, 181, 0.15);
    box-shadow: inset 0 -2.5px 0 var(--tn-teal);
    font-weight: 600;
}

/* Focus indicators — WCAG 2.4.7 */
.tn-nav > li > a:focus-visible,
.tn-header__search-btn:focus-visible,
.tn-header__social .social-networks li a:focus-visible,
.tn-header__toggle:focus-visible,
.tn-header__cta:focus-visible {
    outline: 2px solid var(--tn-teal);
    outline-offset: 2px;
}

/* Skip link visible on focus */
.skip-link:focus,
.skip-link:focus-visible,
a[href="#content"]:focus,
a[href="#content"]:focus-visible,
.screen-reader-text:focus {
    clip: auto !important;
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    position: fixed !important;
    top: 8px;
    left: 8px;
    z-index: 10000;
    background: var(--tn-purple, #5e077a);
    color: #fff !important;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 0.9rem;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* =============================================================
   0I. SIDEBAR — widget titles, search, comments
   ============================================================= */
/* Hide default sidebar search — replaced by AI search overlay in header */
#secondary .wp-block-search,
#secondary .widget_search {
    display: none !important;
}

#secondary .widget-title,
#secondary .wp-block-heading {
    font-size: 1.2rem;
    color: var(--tn-purple, #5e077a);
    border-bottom: 2px solid var(--tn-teal, #90BAB5);
    padding-bottom: 8px;
    margin-bottom: 16px;
}

#secondary .wp-block-search__input,
#secondary .search-form .search-field,
#secondary input[type="search"] {
    border: 1px solid #e0d5e3 !important;
    border-radius: 6px 0 0 6px !important;
    padding: 10px 15px;
    font-size: 0.9rem;
    background: #fff;
}

#secondary .wp-block-search__button,
#secondary .search-form .search-submit,
#secondary input[type="submit"] {
    background: var(--tn-purple, #5e077a) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 6px 6px 0 !important;
    padding: 10px 16px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.2s;
}

#secondary .wp-block-search__button:hover {
    background: #7a1a9e;
}

#secondary .wp-block-latest-comments {
    padding-left: 0;
}

#secondary .wp-block-latest-comments__comment {
    border-left: 3px solid var(--tn-purple, #5e077a);
    padding-left: 12px;
    margin-bottom: 14px;
    font-size: 0.88rem;
    line-height: 1.5;
}

#secondary .wp-block-latest-comments__comment-author {
    font-weight: 600;
    color: #333;
}

#secondary .wp-block-latest-comments__comment-link {
    color: var(--tn-purple, #5e077a);
    text-decoration: none;
}

#secondary .wp-block-latest-comments__comment-link:hover {
    text-decoration: underline;
}

/* =============================================================
   0J. BACK-TO-TOP BUTTON — match brand styling
   ============================================================= */
.back-to-top,
.scroll-to-top,
#back-to-top {
    background: var(--tn-teal, #90BAB5) !important;
    color: var(--tn-dark, #212429) !important;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(144, 186, 181, 0.35);
    transition: background 0.2s, transform 0.2s, opacity 0.3s ease, visibility 0.3s ease;
    /* Push above chatbot FAB (56px button + 1.5rem offset + breathing room) */
    bottom: 6.5rem !important;
    z-index: 9998;
    /* Hidden by default — JS adds .active on scroll */
    opacity: 0;
    visibility: hidden;
}

.back-to-top.active,
.scroll-to-top.active,
#back-to-top.active {
    opacity: 1;
    visibility: visible;
}

.back-to-top:hover,
.scroll-to-top:hover,
#back-to-top:hover {
    background: #7cc5be !important;
    transform: translateY(-2px);
}

/* =============================================================
   1. ACCORDION STYLING — <details>/<summary> (wp-block-details)
   ============================================================= */
.wp-block-details {
    border: 1px solid #e0d5e3;
    border-left: 4px solid #5e077a;
    border-radius: 6px;
    margin-bottom: 12px;
    padding: 0;
    background: #faf7fb;
    transition: background 0.2s;
}

.wp-block-details[open] {
    background: #fff;
}

.wp-block-details summary {
    padding: 14px 18px;
    font-weight: 600;
    color: #5e077a;
    cursor: pointer;
    list-style: none;
}

.wp-block-details summary::-webkit-details-marker {
    display: none;
}

.wp-block-details summary::before {
    content: "\25B8 ";
    color: #90BAB5;
    margin-right: 8px;
    display: inline-block;
    transition: transform 0.2s;
}

.wp-block-details[open] > summary::before {
    content: "\25BE ";
}

.wp-block-details > :not(summary) {
    padding: 0 18px 14px;
}

/* Section 2: (removed — resume sticky nav no longer used, Plan 030) */

/* =============================================================
   3. CTA BUTTON — brand purple, no underline
   ============================================================= */
.wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link {
    background-color: #5e077a !important;
    border-color: #5e077a !important;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 1.1rem;
    letter-spacing: 0.5px;
    padding: 12px 28px;
    border-radius: 6px;
    transition: background-color 0.3s, transform 0.2s;
}

.wp-block-button__link:hover,
.wp-block-button.is-style-fill .wp-block-button__link:hover {
    background-color: #7a1a9e !important;
    transform: translateY(-2px);
    color: #fff !important;
    text-decoration: none !important;
}

/* =============================================================
   4. DITTY NEWS TICKER — visible height
   ============================================================= */
.ditty,
.ditty.ditty-ticker {
    height: auto !important;
    min-height: 40px;
    padding: 8px 16px;
    overflow: hidden;
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #5e077a !important;
    border-radius: 4px;
    background: #f2e8f3;
    font-size: 0.95rem;
    line-height: 1.4;
    margin-bottom: 24px;
    transition: opacity 0.4s ease;
}

/* Hide empty ticker until content loads */
.ditty:not(.ditty--loaded):empty,
.ditty.ditty-ticker:not(.ditty--loaded) .ditty__items:empty {
    opacity: 0;
    min-height: 0;
    height: 0 !important;
    padding: 0;
    margin: 0;
    border-width: 0 !important;
}

/* =============================================================
   5. POST GRID — wp:latest-posts card styling
   ============================================================= */
.entry-content .wp-block-latest-posts.columns-3,
.entry-content .wp-block-latest-posts.wp-block-latest-posts__list {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    list-style: none;
    padding: 0;
}

.entry-content .wp-block-latest-posts__list-item,
.entry-content .wp-block-latest-posts li {
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(94, 7, 122, 0.08);
    transition: transform 0.2s, box-shadow 0.2s;
    padding-bottom: 16px;
}

.entry-content .wp-block-latest-posts li:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.15);
}

.entry-content .wp-block-latest-posts__featured-image {
    margin-bottom: 0;
}

.entry-content .wp-block-latest-posts__featured-image img {
    border-radius: 10px 10px 0 0;
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.entry-content .wp-block-latest-posts__post-title {
    padding: 12px 16px 0;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
}

.entry-content .wp-block-latest-posts__post-title a {
    text-decoration: none;
    color: var(--tn-purple, #5e077a);
    transition: color 0.2s;
}

.entry-content .wp-block-latest-posts__post-title a:hover {
    color: #3d7a74;
}

.entry-content .wp-block-latest-posts__post-date {
    padding: 4px 16px 0;
    font-size: 0.78rem;
    color: #3d7a74;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.entry-content .wp-block-latest-posts__post-excerpt {
    padding: 8px 16px 0;
    font-size: 0.9rem;
    color: #555;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Responsive: 2 columns on tablet, 1 on mobile */
@media (max-width: 768px) {
    .entry-content .wp-block-latest-posts.columns-3,
    .entry-content .wp-block-latest-posts.wp-block-latest-posts__list {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 480px) {
    .entry-content .wp-block-latest-posts.columns-3,
    .entry-content .wp-block-latest-posts.wp-block-latest-posts__list {
        grid-template-columns: 1fr;
    }
}

/* Sidebar post list — reset grid, clean styling */
#secondary .wp-block-latest-posts,
#secondary .wp-block-latest-posts.wp-block-latest-posts__list {
    display: block !important;
    grid-template-columns: none;
}

#secondary .wp-block-latest-posts li {
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding-bottom: 0;
    border-left: 3px solid var(--tn-teal, #90BAB5);
    padding-left: 12px;
    margin-bottom: 12px;
    background: none;
    transform: none;
    transition: none;
}

#secondary .wp-block-latest-posts li:hover {
    transform: none;
    box-shadow: none;
}

#secondary .wp-block-latest-posts__post-title {
    padding: 0;
    font-size: 0.9rem;
}

#secondary .wp-block-latest-posts__post-title a {
    color: #333;
    text-decoration: none;
}

#secondary .wp-block-latest-posts__post-title a:hover {
    color: var(--tn-purple, #5e077a);
}

/* =============================================================
   6. SEPARATORS — gradient themed line
   ============================================================= */
.wp-block-separator,
hr.wp-block-separator {
    border: none !important;
    height: 3px;
    background: linear-gradient(to right, transparent, #90BAB5, #5e077a, #90BAB5, transparent);
    width: 85%;
    margin: 40px auto;
    opacity: 0.85;
}

/* =============================================================
   7. SECTION SPACING — breathing room between content blocks
   ============================================================= */
.entry-content > .wp-block-image {
    margin-bottom: 24px;
}

.entry-content > .wp-block-details:first-of-type {
    margin-top: 24px;
}

.entry-content > .wp-block-buttons {
    margin: 32px 0;
}

/* =============================================================
   8. HERO IMAGE — subtle polish
   ============================================================= */
.entry-content > .wp-block-image img {
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

/* =============================================================
   9. RESUME — career timeline branding
   ============================================================= */
.cd-timeline__img,
#cd-timeline .cd-timeline__img {
    background: #5e077a !important;
}

.cd-timeline__content {
    box-shadow: 0 3px 12px rgba(94, 7, 122, 0.1);
    border: 1px solid #e8e0eb;
    border-radius: 8px;
}

#cd-timeline::before {
    background: #90BAB5;
}

/* =============================================================
   10. RESUME — education timeline styling
   ============================================================= */
.education-timeline {
    max-width: 800px;
}

.education-item {
    display: flex;
    gap: 20px;
    margin-bottom: 24px;
    align-items: flex-start;
    background: #faf7fb;
    border-left: 4px solid #90BAB5;
    border-radius: 8px;
    padding: 20px;
}

.education-icon {
    flex-shrink: 0;
    width: 60px;
}

.education-icon img {
    width: 60px;
    height: auto;
}

.education-content h3 {
    margin-top: 0;
    margin-bottom: 4px;
    font-size: 1.1em;
}

.education-content p {
    margin-top: 0;
    color: #666;
}

/* =============================================================
   11. RESUME — skills columns polish
   ============================================================= */
.entry-content .wp-block-columns .wp-block-column ul {
    background: #faf7fb;
    border-radius: 8px;
    padding: 20px 20px 20px 36px;
    border-top: 3px solid #90BAB5;
}

.entry-content .wp-block-columns .wp-block-column li {
    padding: 6px 0;
    border-bottom: 1px solid #f0eaf2;
}

.entry-content .wp-block-columns .wp-block-column li:last-child {
    border-bottom: none;
}

.entry-content .wp-block-columns .wp-block-column li::marker {
    color: #5e077a;
}

/* =============================================================
   12. SITE BANNER / OWL CAROUSEL SLIDER — spacing + captions
   ============================================================= */
/* Remove gap between header and slider */
.site-banner.style-one {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Fix 110px inter-slide gaps from Owl Carousel inline margin-right */
.site-banner .owl-carousel .owl-item {
    margin-right: 0 !important;
}

/* Dark-themed slider captions */
.site-banner .item-wrap .banner-caption,
.site-banner .banner-caption,
.site-banner .item .banner-caption {
    background: rgba(26, 17, 24, 0.85) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-radius: 10px;
    border: 1px solid rgba(144, 186, 181, 0.2);
    padding: 24px 28px;
}

.site-banner .banner-caption .cat-links a,
.site-banner .banner-caption .category a {
    color: var(--tn-teal) !important;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.site-banner .banner-caption .title a,
.site-banner .banner-caption h2 a,
.site-banner .banner-caption .entry-title a {
    color: #fff !important;
    font-family: var(--tn-font-display) !important;
    text-decoration: none;
}

.site-banner .banner-caption .title a:hover,
.site-banner .banner-caption h2 a:hover,
.site-banner .banner-caption .entry-title a:hover {
    color: var(--tn-teal) !important;
}

.site-banner .banner-caption .posted-on,
.site-banner .banner-caption .byline,
.site-banner .banner-caption .entry-meta {
    color: var(--tn-text-muted) !important;
}

.site-banner .banner-caption .posted-on a,
.site-banner .banner-caption .byline a,
.site-banner .banner-caption .entry-meta a {
    color: var(--tn-text-muted) !important;
}

/* Slider bottom spacing */
.smart-slider-wrapper,
.n2-ss-slider-wrapper-inside {
    margin-bottom: 48px !important;
}

/* =============================================================
   12A. UNIFIED PAGE HERO — shared across all pages
   ============================================================= */
.tn-page-hero {
    background: var(--tn-dark);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0;
    padding: 48px 24px 40px;
    text-align: center;
    box-sizing: border-box;
}

.tn-page-hero__inner {
    max-width: 720px;
    margin: 0 auto;
}

.tn-page-hero__badge {
    display: inline-block;
    padding: 4px 14px;
    background: rgba(94, 7, 122, 0.2);
    border: 1px solid rgba(94, 7, 122, 0.4);
    border-radius: 20px;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--tn-teal);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 18px;
}

.tn-page-hero .tn-page-hero__heading,
.tn-page-hero__heading {
    font-family: var(--tn-font-display) !important;
    font-size: clamp(1.6rem, 4vw, 2.5rem) !important;
    line-height: 1.3;
    margin: 0 0 16px;
    color: #fff;
    background: linear-gradient(135deg, #fff 40%, var(--tn-teal) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.tn-page-hero__text {
    font-family: var(--tn-font-body) !important;
    font-size: 1rem;
    color: var(--tn-text-muted);
    margin: 0;
    line-height: 1.7;
    letter-spacing: 0.02em;
}

/* Hero with CTAs below text */
.tn-page-hero__text + .tn-page-hero__ctas {
    margin-top: 28px;
}

.tn-page-hero__ctas {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.tn-page-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    padding: 12px 28px;
    border-radius: 8px;
    transition: all 0.25s;
}

.tn-page-hero__cta--primary {
    background: var(--tn-purple);
    color: #fff;
    border: 1px solid var(--tn-purple);
}

.tn-page-hero__cta--primary:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
    color: #fff;
}

.tn-page-hero__cta--outline {
    color: var(--tn-teal);
    border: 1px solid var(--tn-teal-dim);
}

.tn-page-hero__cta--outline:hover {
    background: rgba(144, 186, 181, 0.12);
    border-color: var(--tn-teal);
    color: #fff;
    transform: translateY(-2px);
}

.tn-page-hero__cta span {
    display: inline-block;
    transition: transform 0.2s;
}

.tn-page-hero__cta:hover span {
    transform: translateX(4px);
}

/* Compact variant — tighter spacing for pages with dense content below */
.tn-page-hero--compact {
    padding: 36px 24px 28px;
}

/* =============================================================
   12A2. HOMEPAGE POSITIONING STRIP
   ============================================================= */
.tn-positioning {
    background: #fff;
    border-bottom: 1px solid #e8e0eb;
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 28px 24px;
    box-sizing: border-box;
}

.tn-positioning__inner {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.tn-positioning__text {
    font-family: var(--tn-font-body) !important;
    font-size: 1.1rem;
    font-weight: 400;
    font-style: italic;
    color: #555;
    line-height: 1.6;
    letter-spacing: 0.01em;
    margin: 0;
}

/* =============================================================
   12A3. HOMEPAGE "WHAT CHANGES" SECTION
   ============================================================= */
.tn-how-i-help {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px;
    text-align: center;
}

.tn-how-i-help__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 2rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 12px;
    letter-spacing: -0.5px;
}

.tn-how-i-help__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    color: #888;
    line-height: 1.6;
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.tn-how-i-help__inner {
    margin-bottom: 48px;
}

.tn-how-i-help__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
    margin-top: 52px;
}

.tn-help-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit;
    border: none;
    border-radius: 16px;
    padding: 44px 36px;
    background: #fff;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative;
    overflow: hidden;
}

.tn-help-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(94, 7, 122, 0.03) 0%, rgba(144, 186, 181, 0.02) 100%);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

.tn-help-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 48px rgba(94, 7, 122, 0.14);
}

.tn-help-card:hover::before {
    opacity: 1;
}

.tn-help-card::after {
    content: 'Explore \2192';
    display: block;
    margin-top: 18px;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--tn-purple);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s, transform 0.3s;
    position: relative;
    z-index: 1;
}

.tn-help-card:hover::after {
    opacity: 1;
    transform: translateY(0);
}

.tn-help-card__icon {
    width: 240px;
    height: 160px;
    margin-bottom: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tn-help-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0.95;
    transition: opacity 0.3s;
}

.tn-help-card:hover .tn-help-card__icon img {
    opacity: 1;
}

.tn-help-card__title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.35rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 16px;
    line-height: 1.2;
}

.tn-help-card__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    font-weight: 400;
    color: #555;
    line-height: 1.7;
    margin: 0 0 16px;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
}

.tn-help-card__explore {
    font-family: var(--tn-font-body) !important;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--tn-purple);
    letter-spacing: 0.04em;
    margin-top: auto;
}

.tn-help-card:hover .tn-help-card__explore {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .tn-how-i-help {
        padding: 32px 20px;
    }

    .tn-how-i-help__heading {
        font-size: 1.75rem;
        margin-bottom: 6px;
    }

    .tn-how-i-help__grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        margin-top: 24px;
    }

    .tn-help-card {
        padding: 24px 20px;
    }

    .tn-help-card__icon {
        width: 160px;
        height: 110px;
        margin-bottom: 12px;
    }

    .tn-help-card__title {
        font-size: 1.1rem;
        margin-bottom: 8px;
    }

    .tn-help-card__text {
        font-size: 0.88rem;
        margin-bottom: 8px;
    }
}

@media (max-width: 480px) {
    .tn-how-i-help {
        padding: 16px 16px 20px;
    }

    .tn-how-i-help__heading {
        font-size: 1.5rem;
        margin-bottom: 4px;
    }

    .tn-how-i-help__grid {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 16px;
    }

    .tn-help-card {
        padding: 16px 16px;
    }

    .tn-help-card::after {
        display: none;
    }

    .tn-help-card__icon {
        width: 140px;
        height: 90px;
        margin-bottom: 8px;
    }

    .tn-help-card__title {
        font-size: 1.05rem;
        margin-bottom: 6px;
    }

    .tn-help-card__text {
        font-size: 0.85rem;
        line-height: 1.5;
        margin-bottom: 6px;
    }
}

/* =============================================================
   12A4. HOMEPAGE "LATEST INSIGHTS" HEADER
   ============================================================= */
.tn-insights-header {
    text-align: center;
    padding: 10px 24px 0;
    margin: 0 0 40px;
    position: relative;
}

.tn-insights-header::before {
    content: "";
    display: block;
    width: min(720px, 82%);
    height: 1px;
    margin: 0 auto 28px;
    background: linear-gradient(
        90deg,
        rgba(94, 7, 122, 0) 0%,
        rgba(94, 7, 122, 0.22) 25%,
        rgba(144, 186, 181, 0.44) 50%,
        rgba(94, 7, 122, 0.22) 75%,
        rgba(94, 7, 122, 0) 100%
    );
}

.tn-insights-header__inner {
    max-width: 640px;
    margin: 0 auto;
}

.tn-insights-header__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: var(--tn-purple);
    margin: 0 0 8px;
}

.tn-insights-header__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    color: #888;
    margin: 0;
    line-height: 1.6;
}

/* Gradient fade from hero to content */
.tn-page-hero--fade::after {
    content: '';
    position: absolute;
    bottom: -48px;
    left: 0;
    right: 0;
    height: 48px;
    background: linear-gradient(to bottom, var(--tn-dark), transparent);
    pointer-events: none;
    z-index: 1;
}

/* =============================================================
   12B. HOMEPAGE FEATURED POST — first card spans full width
   ============================================================= */
.home .entry-content .wp-block-latest-posts {
    max-width: 1100px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: 64px;
}

/* First post: large horizontal featured card */
.home .entry-content .wp-block-latest-posts li:first-child {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 0;
    padding-bottom: 0;
    min-height: 300px;
    position: relative;
}

/* "LATEST" badge on featured card */
.home .entry-content .wp-block-latest-posts li:first-child::before {
    content: 'LATEST';
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    padding: 4px 12px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    border-radius: 4px;
    text-transform: uppercase;
}

.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__featured-image {
    margin-bottom: 0;
}

.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__featured-image img {
    border-radius: 10px 0 0 10px;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
}

.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-title {
    padding: 28px 24px 0;
    font-size: 1.35rem;
}

.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-date {
    padding: 6px 24px 0;
}

.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-excerpt {
    padding: 8px 24px 24px;
    font-size: 0.92rem;
    -webkit-line-clamp: 5;
}

/* Featured post date — slightly larger */
.home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-date {
    font-size: 0.82rem;
}

@media (max-width: 768px) {

    .home .entry-content .wp-block-latest-posts li:first-child {
        grid-template-columns: 1fr;
    }

    .home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__featured-image img {
        border-radius: 10px 10px 0 0;
        height: 200px;
        min-height: auto;
    }

    .home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-title {
        font-size: 1.15rem;
        padding: 16px 16px 0;
    }

    .home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-date,
    .home .entry-content .wp-block-latest-posts li:first-child .wp-block-latest-posts__post-excerpt {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* "View All Posts" link */
.tn-view-all {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin: 32px 0 48px;
}

.tn-view-all a {
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
    padding: 10px 28px;
    border: 1px solid #e0d5e3;
    border-radius: 8px;
    transition: all 0.25s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tn-view-all a:hover {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    transform: translateY(-2px);
}

/* =============================================================
   12C. HOMEPAGE IDENTITY STRIP — replaces accordions
   ============================================================= */
.tn-identity {
    background: #fff;
    border-top: 1px solid #e8e0eb;
    border-bottom: 1px solid #e8e0eb;
    width: 100%;
    max-width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 48px;
    padding: 52px 24px;
    text-align: center;
    box-sizing: border-box;
    overflow: hidden;
}

.tn-identity__inner {
    max-width: 680px;
    margin: 0 auto;
}

.tn-identity__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: var(--tn-purple);
    margin: 0 0 12px;
}

.tn-identity__text {
    font-family: var(--tn-font-body) !important;
    font-size: 1rem;
    line-height: 1.7;
    color: #555;
    margin: 0 0 28px;
}

.tn-identity__topics {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.tn-topic-chip {
    display: inline-block;
    padding: 8px 18px;
    background: var(--tn-lavender);
    border: 1px solid #e0d5e3;
    border-radius: 20px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--tn-purple);
    text-decoration: none;
    transition: all 0.25s;
}

.tn-topic-chip:hover {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    transform: translateY(-2px);
}

.tn-topic-chip--alt {
    background: transparent;
    border-style: dashed;
    color: var(--tn-teal);
    border-color: var(--tn-teal-dim);
}

.tn-topic-chip--alt:hover {
    background: var(--tn-teal);
    color: var(--tn-dark);
    border-color: var(--tn-teal);
}

/* =============================================================
   12D. HOMEPAGE NEWSLETTER CTA BAND — dark bookend
   ============================================================= */
.tn-cta-band {
    background: var(--tn-dark);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 56px 24px;
    text-align: center;
    box-sizing: border-box;
}

.tn-cta-band__inner {
    max-width: 560px;
    margin: 0 auto;
}

.tn-cta-band__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: #fff;
    margin: 0 0 10px;
}

.tn-cta-band__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: var(--tn-text-muted);
    margin: 0 0 28px;
    line-height: 1.6;
}

.tn-cta-band__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.25s;
}

.tn-cta-band__btn:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
    color: #fff;
}

.tn-cta-band__btn span {
    display: inline-block;
    transition: transform 0.2s;
}

.tn-cta-band__btn:hover span {
    transform: translateX(4px);
}

/* Teal accent line at bottom of CTA band — separates from footer */
.tn-cta-band::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background: var(--tn-teal);
    margin: 40px auto 0;
    border-radius: 2px;
    opacity: 0.6;
}

/* =============================================================
   12E. HOMEPAGE MICRO-INTERACTIONS — polish & delight
   ============================================================= */

/* Enhanced card hover with bouncy easing + purple glow */
.entry-content .wp-block-latest-posts li {
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.25s ease,
                border-color 0.25s ease;
}

.entry-content .wp-block-latest-posts li:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.12),
                0 0 0 1px rgba(94, 7, 122, 0.08);
    border-color: rgba(94, 7, 122, 0.2);
}

/* Animated teal underline on post title hover */
.entry-content .wp-block-latest-posts__post-title a {
    background-image: linear-gradient(var(--tn-teal), var(--tn-teal));
    background-position: 0 100%;
    background-size: 0% 2px;
    background-repeat: no-repeat;
    transition: background-size 0.3s ease, color 0.2s;
    padding-bottom: 2px;
}

.entry-content .wp-block-latest-posts__post-title a:hover {
    background-size: 100% 2px;
}

/* Scroll-driven fade-in (progressive enhancement — Chrome/Edge 115+, Firefox 121+) */
@supports (animation-timeline: view()) {
    .tn-hero__inner,
    .tn-identity,
    .tn-cta-band__inner,
    .home .entry-content .wp-block-latest-posts {
        animation: fadeSlideUp linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 25%;
    }
}

@keyframes fadeSlideUp {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =============================================================
   20. RSS NEWS HUB — hero + word cloud + filters + feed
   ============================================================= */

/* News Hub: full-width layout (no sidebar) */
.page-id-2157 .site-content .content-area,
.page-id-2157 #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}
.page-id-2157 #secondary { display: none !important; }
.page-id-2157 .page-header { display: none; }

/* Hide default page title + breadcrumb on News Hub — hero replaces it */
.page-id-2157 .entry-header { display: none; }
.page-id-2157 .top-bar { display: none; }

/* --- 20A. News Hub hero — uses .tn-page-hero--compact (see section 12A) --- */
/* News Hub specific: z-index to layer above word cloud background */
.page-id-2157 .tn-page-hero {
    z-index: 2;
    margin-bottom: 0;
}

/* --- 20B. Word Cloud --- */
.tn-newshub-wordcloud {
    background: var(--tn-dark);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    padding: 0 24px 16px;
    text-align: center;
}

.tn-newshub-wordcloud__hint {
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    color: #999;
    text-align: center;
    margin: 8px 0 0;
    letter-spacing: 0.03em;
}

.tn-newshub-wordcloud__inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 4px 12px;
    min-height: 36px;
}

.tn-newshub-wordcloud__loading {
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    color: var(--tn-text-muted);
    font-style: italic;
    margin: 0;
}

.tn-cloud-word {
    font-family: var(--tn-font-display) !important;
    color: var(--tn-teal);
    cursor: pointer;
    transition: color 0.2s, transform 0.2s, background 0.2s;
    white-space: nowrap;
    line-height: 1.4;
    padding: 2px 6px;
    border-radius: 4px;
}

.tn-cloud-word:hover {
    color: #fff;
    transform: scale(1.1);
}

.tn-cloud-word--active {
    color: #fff !important;
    background: rgba(144, 186, 181, 0.25);
    opacity: 1 !important;
    transform: scale(1.1);
}

/* Gradient fade removed — clean edge to match homepage */
.tn-newshub-wordcloud::after {
    display: none;
}

/* --- 20C. Source Filters --- */
.tn-newshub-filters {
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 0 8px;
}

.tn-newshub-filters__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.tn-filter-pill {
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 500;
    padding: 6px 14px;
    border: 1px solid #e0d5e3;
    border-radius: 20px;
    background: #fff;
    color: #666;
    cursor: pointer;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tn-filter-pill:hover {
    border-color: var(--tn-purple);
    color: var(--tn-purple);
    background: var(--tn-lavender);
}

.tn-filter-pill--active {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
}

.tn-filter-pill--active:hover {
    background: var(--tn-purple);
    color: #fff;
}

.tn-filter-pill__count {
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    padding: 1px 6px;
    min-width: 16px;
    text-align: center;
}

.tn-filter-pill--active .tn-filter-pill__count {
    background: rgba(255, 255, 255, 0.25);
}

.tn-filter-pill--disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

/* --- 20C½. Timeline Range Slider --- */
#tn-timeline {
    max-width: 1100px;
    margin: 0 auto;
    padding: 16px 0 4px;
}

#tn-timeline .tn-tl-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border: 1px solid #e2e0e8;
    border-radius: 10px;
    padding: 0.7rem 1.25rem;
}

#tn-timeline .tn-tl-dates {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
    font-family: var(--tn-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--tn-dark);
    white-space: nowrap;
}

#tn-timeline .tn-tl-sep {
    color: #94a3b8;
    margin: 0 0.15rem;
}

/* Slider — explicit height, all children absolutely positioned */
#tn-timeline .tn-tl-slider {
    flex: 1;
    position: relative;
    height: 24px;
    min-width: 200px;
}

#tn-timeline .tn-tl-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 4px;
    background: #e2e0e8;
    border-radius: 2px;
}

#tn-timeline .tn-tl-range {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 6px;
    background: var(--tn-purple);
    border-radius: 3px;
    cursor: grab;
}

#tn-timeline .tn-tl-range:active {
    cursor: grabbing;
}

#tn-timeline .tn-tl-thumb {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 16px;
    background: #fff;
    border: 2px solid var(--tn-purple);
    border-radius: 50%;
    cursor: grab;
    z-index: 2;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    transition: transform 0.1s;
}

#tn-timeline .tn-tl-thumb:hover {
    transform: translate(-50%, -50%) scale(1.25);
}

#tn-timeline .tn-tl-thumb:active {
    cursor: grabbing;
}

/* Right side: presets + count */
#tn-timeline .tn-tl-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

#tn-timeline .tn-tl-presets {
    display: flex;
    gap: 0.25rem;
}

#tn-timeline .tn-tl-presets button {
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.5rem;
    border: none;
    border-radius: 4px;
    background: none;
    color: #475569;
    cursor: pointer;
    transition: background 0.15s;
}

#tn-timeline .tn-tl-presets button:hover {
    background: #f1f5f9;
}

#tn-timeline .tn-tl-preset--active {
    background: #f1f5f9 !important;
    color: var(--tn-purple) !important;
    font-weight: 600 !important;
}

#tn-timeline .tn-tl-count {
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 500;
    color: #64748b;
    white-space: nowrap;
}

/* Empty state */
.tn-empty-state {
    text-align: center;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    color: #999;
    padding: 48px 24px;
    margin: 0;
}

/* --- 20D. Feed Container --- */
.page-id-2157 .entry-content {
    max-width: 1100px;
    margin: 0 auto;
    padding-top: 0;
}

/* WP RSS Aggregator output — card grid */
.page-id-2157 .wpra-item-list,
.page-id-2157 .wprss-feed-container {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    list-style: none !important;
    padding: 0 !important;
    margin-top: 16px;
}

.page-id-2157 .wpra-item-list .wpra-item,
.page-id-2157 .wprss-feed-container .feed-item,
.page-id-2157 .wprss-feed-container li {
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    padding: 20px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(94, 7, 122, 0.06);
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s, border-color 0.25s;
    list-style: none !important;
    position: relative;
}

.page-id-2157 .wpra-item-list .wpra-item:hover,
.page-id-2157 .wprss-feed-container li:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.12);
    border-color: rgba(94, 7, 122, 0.2);
}

.page-id-2157 .wpra-item-list .wpra-item > a,
.page-id-2157 .wprss-feed-container li a:first-child {
    font-family: var(--tn-font-display) !important;
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--tn-purple);
    text-decoration: none;
    transition: color 0.2s;
}

.page-id-2157 .wpra-item-list .wpra-item > a:hover,
.page-id-2157 .wprss-feed-container li a:hover {
    color: #3d7a74;
}

/* --- 20D2. Card OG Images --- */
.tn-card-image {
    margin: -20px -20px 14px -20px;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #f3f0f5;
}

.tn-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- 20E. Source Badges on Cards --- */
.tn-source-badge {
    display: inline-block;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 2px 8px;
    border-radius: 4px;
    margin-right: 8px;
    vertical-align: middle;
}

.tn-source-badge--academic {
    background: rgba(231, 76, 60, 0.12);
    color: #c0392b;
}

.tn-source-badge--industry {
    background: rgba(16, 163, 127, 0.12);
    color: #0e8c6e;
}

.tn-source-badge--independent {
    background: rgba(243, 156, 18, 0.12);
    color: #d68910;
}

.tn-source-badge--strategy {
    background: rgba(142, 68, 173, 0.12);
    color: #7d3c98;
}

.tn-source-badge--product {
    background: rgba(41, 128, 185, 0.12);
    color: #2471a3;
}

.tn-source-badge--source {
    background: rgba(144, 186, 181, 0.15);
    color: #3d7a74;
}

/* --- 20F. Feed Meta --- */
.page-id-2157 .wpra-item-list .wprss-feed-meta,
.page-id-2157 .wprss-feed-container .feed-item-date,
.page-id-2157 .wprss-feed-container .feed-item-source,
.page-id-2157 .wprss-feed-container li .feed-source {
    font-size: 0.78rem;
    color: #3d7a74;
    letter-spacing: 0.04em;
    font-weight: 500;
    margin-top: 10px;
}

.page-id-2157 .wpra-item-list .feed-source a {
    color: #3d7a74;
    text-decoration: none;
}

.page-id-2157 .wpra-item-list .feed-date {
    color: var(--tn-text-muted);
    display: block;
    margin-top: 4px;
}

.page-id-2157 .wpra-item-list .feed-author {
    color: var(--tn-text-muted);
    font-size: 0.75rem;
    display: block;
    margin-top: 2px;
}

/* --- 20F½. News Hub CTA --- */
.tn-newshub-cta {
    max-width: 1100px;
    margin: 48px auto;
    padding: 0;
}

.tn-newshub-cta__inner {
    background: linear-gradient(135deg, #1a0a20 0%, #2d1238 60%, #1a0a20 100%);
    border-radius: 16px;
    padding: 48px 40px;
    text-align: center;
}

.tn-newshub-cta__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    color: #fff;
    margin: 0 0 12px;
}

.tn-newshub-cta__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.7);
    margin: 0 0 24px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.tn-newshub-cta__btn {
    display: inline-block;
    padding: 12px 28px;
    background: var(--tn-purple);
    color: #fff !important;
    text-decoration: none;
    border-radius: 8px;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    font-weight: 600;
    transition: background 0.2s, transform 0.2s;
}

.tn-newshub-cta__btn:hover {
    background: #7a1fa0;
    transform: translateY(-2px);
}

/* --- 20G. Responsive --- */
@media (max-width: 768px) {
    .page-id-2157 .wpra-item-list,
    .page-id-2157 .wprss-feed-container {
        grid-template-columns: 1fr;
    }

    .tn-newshub-hero {
        padding: 32px 16px 24px;
    }

    .tn-newshub-wordcloud {
        padding: 0 12px 12px;
    }

    .tn-newshub-filters {
        padding: 32px 16px 8px;
    }

    .tn-newshub-filters__inner {
        justify-content: flex-start;
    }

    #tn-timeline {
        padding: 12px 12px 0;
    }

    #tn-timeline .tn-tl-bar {
        flex-wrap: wrap;
        gap: 0.5rem 1rem;
        padding: 0.6rem 1rem;
    }

    #tn-timeline .tn-tl-dates {
        order: 1;
        font-size: 0.82rem;
    }

    #tn-timeline .tn-tl-right {
        order: 2;
        margin-left: auto;
    }

    #tn-timeline .tn-tl-slider {
        order: 3;
        flex-basis: 100%;
        min-width: 0;
    }

    #tn-timeline .tn-tl-thumb {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 480px) {
    .tn-newshub-wordcloud__inner {
        gap: 3px 8px;
    }
}

/* --- 20H. AI Voices on X Section --- */
.tn-newshub-xfeed {
    background: var(--tn-dark);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    padding: 48px 24px 56px;
    margin-top: 48px;
}

.tn-newshub-xfeed__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.tn-newshub-xfeed__header {
    text-align: center;
    margin-bottom: 36px;
}

.tn-newshub-xfeed__badge {
    display: inline-block;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #fff;
    background: var(--tn-purple);
    padding: 5px 16px;
    border-radius: 20px;
    margin-bottom: 16px;
}

.tn-newshub-xfeed__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 2rem;
    color: #fff;
    margin: 0 0 12px;
    font-weight: 400;
}

.tn-newshub-xfeed__text {
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
    line-height: 1.6;
}

/* Voice Cards Grid */
.tn-xvoices-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.tn-xvoice-card {
    display: flex;
    flex-direction: column;
    padding: 20px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.25s ease;
    cursor: pointer;
}

.tn-xvoice-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: var(--tn-purple);
    transform: translateY(-2px);
}

.tn-xvoice-card__handle {
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    color: var(--tn-teal);
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.tn-xvoice-card__name {
    font-family: var(--tn-font-display) !important;
    font-size: 1.1rem;
    color: #fff;
    font-weight: 400;
    margin-bottom: 6px;
    line-height: 1.3;
}

.tn-xvoice-card__role {
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
    line-height: 1.4;
}

/* CTA Link */
.tn-newshub-xfeed__cta {
    text-align: center;
    margin-top: 32px;
}

.tn-xfeed-list-link {
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--tn-teal);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: color 0.2s;
}

.tn-xfeed-list-link:hover {
    color: #fff;
}

@media (max-width: 1024px) {
    .tn-xvoices-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .tn-newshub-xfeed {
        padding: 32px 16px 40px;
        margin-top: 32px;
    }

    .tn-newshub-xfeed__heading {
        font-size: 1.5rem;
    }

    .tn-xvoices-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .tn-xvoice-card {
        padding: 16px;
    }
}

@media (max-width: 480px) {
    .tn-xvoices-grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   21. AI STRATEGY / SERVICES PAGE
   ============================================================= */

/* AI Strategy: full-width layout (no sidebar) */
.page-id-75415 .site-content .content-area,
.page-id-75415 #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}
.page-id-75415 #secondary { display: none !important; }
.page-id-75415 .page-header { display: none; }

/* Hide default page title + breadcrumb — hero replaces it */
.page-id-75415 .entry-header { display: none; }
.page-id-75415 .top-bar { display: none; }

/* Services hero — uses .tn-page-hero (see section 12A) */

/* Remove gradient fade on services page — clean edge */
.page-id-75415 .tn-page-hero--fade::after {
    display: none;
}

/* Service cards section */
.tn-services {
    max-width: 1100px;
    margin: 0 auto;
    padding: 56px 24px;
}

.tn-services__section-heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: var(--tn-purple);
    text-align: center;
    margin: 0 0 36px;
}

.tn-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.tn-service-card {
    border: 1px solid #e8e0eb;
    border-radius: 12px;
    padding: 28px 24px;
    background: #fff;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s, border-color 0.25s;
}

.tn-service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.12);
    border-color: rgba(94, 7, 122, 0.2);
}

.tn-service-card__icon {
    font-size: 2rem;
    margin-bottom: 14px;
}

.tn-service-card__title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.1rem;
    color: #333;
    margin: 0 0 10px;
}

.tn-service-card__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.9rem;
    color: #666;
    line-height: 1.6;
    margin: 0;
}

/* Tech chips section */
.tn-services-tech {
    background: var(--tn-lavender);
    border-top: 1px solid #e8e0eb;
    border-bottom: 1px solid #e8e0eb;
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 48px 24px;
    text-align: center;
    box-sizing: border-box;
}

.tn-services-tech__inner {
    max-width: 800px;
    margin: 0 auto;
}

.tn-tech-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.tn-tech-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid #e0d5e3;
    border-radius: 20px;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--tn-purple);
    transition: all 0.25s;
}

.tn-tech-chip:hover {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    transform: translateY(-2px);
}

/* Tech chip logo icons via ::before pseudo-element */
.tn-tech-chip[class*="--"]::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.tn-tech-chip:hover::before {
    filter: brightness(0) invert(1);
}

/* --- LLM Platforms --- */
.tn-tech-chip--openai::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--anthropic::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.3041%203.541h-3.6718l6.696%2016.918H24Zm-10.6082%200L0%2020.459h3.7442l1.3693-3.5527h7.0052l1.3693%203.5528h3.7442L10.5363%203.5409Zm-.3712%2010.2232%202.2914-5.9456%202.2914%205.9456Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--googlegemini::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.04%2019.32Q12%2021.51%2012%2024q0-2.49.93-4.68.96-2.19%202.58-3.81t3.81-2.55Q21.51%2012%2024%2012q-2.49%200-4.68-.93a12.3%2012.3%200%200%201-3.81-2.58%2012.3%2012.3%200%200%201-2.58-3.81Q12%202.49%2012%200q0%202.49-.96%204.68-.93%202.19-2.55%203.81a12.3%2012.3%200%200%201-3.81%202.58Q2.49%2012%200%2012q2.49%200%204.68.96%202.19.93%203.81%202.55t2.55%203.81%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--meta::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6.915%204.03c-1.968%200-3.683%201.28-4.871%203.113C.704%209.208%200%2011.883%200%2014.449c0%20.706.07%201.369.21%201.973a6.624%206.624%200%200%200%20.265.86%205.297%205.297%200%200%200%20.371.761c.696%201.159%201.818%201.927%203.593%201.927%201.497%200%202.633-.671%203.965-2.444.76-1.012%201.144-1.626%202.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152%203.595c.724%201.21%201.665%202.556%202.47%203.314%201.046.987%201.992%201.22%203.06%201.22%201.075%200%201.876-.355%202.455-.843a3.743%203.743%200%200%200%20.81-.973c.542-.939.861-2.127.861-3.745%200-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047%200-2.088.467-3.053%201.308-.652.57-1.257%201.29-1.82%202.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16%202.053c1.147%200%202.188.758%202.992%201.999%201.132%201.748%201.647%204.195%201.647%206.4%200%201.548-.368%202.9-1.839%202.9-.58%200-1.027-.23-1.664-1.004-.496-.601-1.343-1.878-2.832-4.358l-.617-1.028a44.908%2044.908%200%200%200-1.255-1.98c.07-.109.141-.224.211-.327%201.12-1.667%202.118-2.602%203.358-2.602zm-10.201.553c1.265%200%202.058.791%202.675%201.446.307.327.737.871%201.234%201.579l-1.02%201.566c-.757%201.163-1.882%203.017-2.837%204.338-1.191%201.649-1.81%201.817-2.486%201.817-.524%200-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046%200-2.221.63-4.535%201.66-6.088.454-.687.964-1.226%201.533-1.533a2.264%202.264%200%200%201%201.088-.285z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--xai::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.79%207.73L19.2%2024H22.52L22.94%201.81ZM22.94%200H17.87L9.93%2011.35L12.46%2014.96ZM1.07%2024H6.13L8.66%2020.39L6.13%2016.77ZM1.07%207.73L12.46%2024H17.52L6.13%207.73Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--groq::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%226%202%2022%2029%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m18.445%204.406-9.468%2013.74%207.341.665-1.69%209.578%209.469-13.74-7.342-.664%201.69-9.579Z%22%2F%3E%3C%2Fsvg%3E");
}

/* --- Development & Tooling --- */
.tn-tech-chip--vercel::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m12%201.608%2012%2020.784H0Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--azure::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5.483%2021.3H24L14.025%204.163l-3.038%205.608%205.032%209.146H5.075zm-1.21%200L12.514%202.7H7.591L0%2021.3z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--nextdotjs::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.665%2021.978C16.758%2023.255%2014.465%2024%2012%2024%205.377%2024%200%2018.623%200%2012S5.377%200%2012%200s12%205.377%2012%2012c0%203.583-1.574%206.801-4.067%209.001L9.219%207.2H7.2v9.596h1.615V9.251l9.85%2012.727Zm-3.332-8.533%201.6%202.061V7.2h-1.6v6.245Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--cognigy::before {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAB8klEQVR42t2VPUgcQRiGn5k5TvIjGIKFCSQEkiakEptACluTziYYUoSUCjaePyBYCBYW1lYKVoKFtmJnIwg2FlqIoggK/hSCynnq7jj78VU7nluIjfPxHuy93z7z7tztDM9zGEpatqDDPcnshhYGGBS1AjbqgLf0BXeI3xhywwGTeK11DJa445f6xzTE9GbOuOE6qIanHXARoCO41aCtPKAEVPDB8vq5cD9A3R0a8s9fZpuURJVS4wtgKQbo/J14boNCadOEOhQDLLBMyk3QKbt4kqATmiRbIcBhaMuii/WHDyQC83RrhkIAzOC5DjqkEVjSqw1ccQILvOeCVG4ZAww/s/UI5ekA3AMAjTgiX6dU+SjIEhuaYRGwDwFMqJfsa/ss4ATZo8hbvmGwdQHS/DcLLOv+HYMTaBMnCp0EXF2AsFdJqQWtINeKnRBAyhnNgLkXILP9wJPIgnUhtyrmcwaV5gpQqgeAOY26xwsJD6gzr842ZXEigAU+caXzDEd/mnY0G52ZFwGkfVyf9JyW3KtjMazp6iwDNgZAI0cacxpw0Qv+T3+flDagHAP+k1ClRkJrBDChXnEQ2i+DpgSQ21Asm/isNCIQZRjFa73D5Lc0QxdD9DPI1xigGd5QkU20l9cQbaqPHw49RoqPmuhgeQ7jDjUZCcAw8NYpAAAAAElFTkSuQmCC");
}

.tn-tech-chip--mcp::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%227%207%20166%20166%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M23.6%2085.25L86.2%2022.65C94.85%2014.01%20108.86%2014.01%20117.5%2022.65%20126.15%2031.29%20126.15%2045.31%20117.5%2053.95L70.23%20101.23%22%20stroke%3D%22black%22%20stroke-width%3D%2211%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M70.88%20100.58L117.5%2053.95C126.15%2045.31%20140.16%2045.31%20148.81%2053.95L149.13%2054.28C157.78%2062.92%20157.78%2076.94%20149.13%2085.58L92.51%20142.2C89.63%20145.08%2089.63%20149.75%2092.51%20152.63L104.14%20164.26%22%20stroke%3D%22black%22%20stroke-width%3D%2211%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M101.85%2038.3L55.55%2084.6C46.91%2093.24%2046.91%20107.26%2055.55%20115.9%2064.2%20124.55%2078.21%20124.55%2086.85%20115.9L133.15%2069.6%22%20stroke%3D%22black%22%20stroke-width%3D%2211%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--chroma::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%20fill%3D%22none%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2.54917%200.199602C1.91659%200.199602%201.42257%200.687067%201.42257%201.28155H1.22528C1.22528%200.571991%201.81383%200.00231171%202.54917%200.00231171C3.28163%200.00231171%203.88633%200.555617%203.88633%201.26797C3.88633%201.97885%203.28317%202.5472%202.5492%202.5472C2.29999%202.5472%202.06627%202.48189%201.86607%202.36789L1.96372%202.19646C2.13458%202.29376%202.33473%202.34989%202.5492%202.34989C3.1832%202.34989%203.68901%201.8611%203.68901%201.26797C3.68901%200.676281%203.18474%200.199602%202.54917%200.199602Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M1.33713%200.19729C0.703122%200.19729%200.19729%200.686107%200.19729%201.27924C0.19729%201.87253%200.690046%202.34998%201.32389%202.34998C1.95916%202.34998%202.46373%201.87118%202.46373%201.27924H2.66105C2.66105%201.99131%202.05663%202.54727%201.32389%202.54727C0.589786%202.54727%200%201.98998%200%201.27924C0%200.568328%200.60316%200%201.33713%200C1.58327%200%201.81434%200.0637099%202.01286%200.175122L1.91629%200.347176C1.74682%200.252069%201.54896%200.19729%201.33713%200.19729Z%22%20fill%3D%22black%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2.45104%200.216869C1.8693%200.26732%201.42257%200.764633%201.42257%201.33186V2.34348C2.01091%202.29738%202.46346%201.84241%202.46375%201.28217L2.45104%200.216869ZM1.22528%201.33188C1.22528%200.626358%201.80902%200.0154114%202.54849%200.0154114H2.64595L2.66107%201.28164C2.66107%201.99427%202.05607%202.54464%201.32394%202.54464H1.22528V1.33188Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E");
}

/* --- ML & Data Science --- */
.tn-tech-chip--huggingface::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.025%201.13c-5.77%200-10.449%204.647-10.449%2010.378%200%201.112.178%202.181.503%203.185.064-.222.203-.444.416-.577a.96.96%200%200%201%20.524-.15c.293%200%20.584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653%201.552%201.657%202.54.616.605%201.01%201.223%201.082%201.912.055.537-.096%201.059-.38%201.572.637.121%201.294.187%201.967.187.657%200%201.298-.063%201.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307%201.081-1.913%201.004-.987%201.647-2.513%201.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08%201.08%200%200%201%20.787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97%200%200%201%20.524.151c.228.143.373.388.43.625l.006.04a10.3%2010.3%200%200%200%20.534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327%206.583a1.5%201.5%200%200%201%20.713.174%201.487%201.487%200%200%201%20.617%202.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487%201.487%200%200%201%20.69-2.803m7.486%200a1.487%201.487%200%200%201%20.689%202.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487%201.487%200%200%201%20.617-2.013%201.5%201.5%200%200%201%20.713-.174m-10.68%201.55a.96.96%200%201%201%200%201.921.96.96%200%200%201%200-1.92m13.838%200a.96.96%200%201%201%200%201.92.96.96%200%200%201%200-1.92M8.489%2011.458c.588.01%201.965%201.157%203.572%201.164%201.607-.007%202.984-1.155%203.572-1.164.196-.003.305.12.305.454%200%20.886-.424%202.328-1.563%203.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1%201%200%200%200-.058.09l-.014.025q-.049.088-.11.19a1%201%200%200%201-.083.116%201.2%201.2%200%200%201-.173.18q-.035.029-.075.058a1.3%201.3%200%200%201-.251-.243%201%201%200%200%201-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3%203%200%200%200-.135.096%203%203%200%200%200-.26.219%202%202%200%200%200-.12.121%202%202%200%200%200-.106.128l-.002.002a2%202%200%200%200-.09.132l-.001.001a1.2%201.2%200%200%200-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203%200-.334.109-.457.305-.454m.836%2010.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97%201.499.202%202.362c1.173.864-.233%201.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647%202.822%202.813%202.562%203.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473%201.23%202.037%202.16c1.564.932%201.686%201.178%201.464%201.53s-3.675-2.511-4-1.297c-.323%201.214%203.524%201.567%203.287%202.405-.238.839-2.71-1.587-3.216-.642-.506.946%203.49%202.056%203.522%202.064%201.29.33%204.568%201.028%205.713-.624m5.349%200c-.824-1.19-.766-2.082.365-3.194%201.13-1.112%201.789-2.738%201.789-2.738s.246-.945.806-.858.97%201.499-.202%202.362c-1.173.864.233%201.45.685.64.451-.812%201.683-2.896%202.322-3.295s1.089-.175.938.647-2.822%202.813-2.562%203.244%201.176-.506%201.176-.506%202.866-2.567%203.49-1.898-.473%201.23-2.037%202.16c-1.564.932-1.686%201.178-1.464%201.53s3.675-2.511%204-1.297c.323%201.214-3.524%201.567-3.287%202.405.238.839%202.71-1.587%203.216-.642.506.946-3.49%202.056-3.522%202.064-1.29.33-4.568%201.028-5.713-.624%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--pytorch::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.005%200L4.952%207.053a9.865%209.865%200%20000%2014.022%209.866%209.866%200%200014.022%200c3.984-3.9%203.986-10.205.085-14.023l-1.744%201.743c2.904%202.905%202.904%207.634%200%2010.538s-7.634%202.904-10.538%200-2.904-7.634%200-10.538l4.647-4.646.582-.665zm3.568%203.899a1.327%201.327%200%2000-1.327%201.327%201.327%201.327%200%20001.327%201.328A1.327%201.327%200%200016.9%205.226%201.327%201.327%200%200015.573%203.9z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-tech-chip--scikitlearn::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.601%205.53c-1.91.035-3.981.91-5.63%202.56-2.93%202.93-2.083%208.53-1.088%209.525.805.804%206.595%201.843%209.526-1.088a9.74%209.74%200%200%200%20.584-.643c.043-.292.205-.66.489-1.106a1.848%201.848%200%200%201-.537.176c-.144.265-.37.55-.676.855-.354.335-.607.554-.76.656a.795.795%200%200%201-.437.152c-.35%200-.514-.308-.494-.924-.22.316-.425.549-.612.7a.914.914%200%200%201-.578.224c-.194%200-.36-.09-.496-.273a1.03%201.03%200%200%201-.193-.507%204.016%204.016%200%200%201-.726.583c-.224.132-.47.197-.74.197-.3%200-.543-.096-.727-.288a.978.978%200%200%201-.257-.524v.004c-.3.276-.564.48-.79.611a1.295%201.295%200%200%201-.649.197.693.693%200%200%201-.571-.275c-.145-.183-.218-.43-.218-.739%200-.464.101-1.02.302-1.67.201-.65.445-1.25.733-1.797l.842-.312a.21.21%200%200%201%20.06-.013c.063%200%20.116.047.157.14.04.095.061.221.061.38%200%20.451-.104.888-.312%201.31-.207.422-.532.873-.974%201.352-.018.23-.027.388-.027.474%200%20.193.036.345.106.458.071.113.165.169.282.169a.71.71%200%200%200%20.382-.13c.132-.084.333-.26.602-.523.028-.418.187-.798.482-1.142.324-.38.685-.569%201.08-.569.206%200%20.37.054.494.16a.524.524%200%200%201%20.186.417c0%20.458-.486.829-1.459%201.114.088.43.32.646.693.646a.807.807%200%200%200%20.417-.117c.129-.076.321-.243.575-.497.032-.252.118-.495.259-.728.182-.3.416-.544.701-.73.285-.185.537-.278.756-.278.276%200%20.47.127.58.381l.677-.374h.186l-.292.971c-.15.488-.226.823-.226%201.004%200%20.19.067.285.202.285.086%200%20.181-.045.285-.137.104-.092.25-.232.437-.42v.001c.143-.155.274-.32.392-.494-.19-.084-.285-.21-.285-.375%200-.17.058-.352.174-.545.116-.194.275-.29.479-.29.172%200%20.258.088.258.265%200%20.139-.05.338-.149.596.367-.04.687-.32.961-.842l.228-.01c1.059-2.438.828-5.075-.83-6.732-1.019-1.02-2.408-1.5-3.895-1.471zm4.725%208.203a8.938%208.938%200%200%201-1.333%202.151%201.09%201.09%200%200%200-.012.147c0%20.168.047.309.14.423.092.113.206.17.34.17.296%200%20.714-.264%201.254-.787-.001.04-.003.08-.003.121%200%20.146.012.368.036.666l.733-.172c0-.2.003-.357.01-.474.01-.157.033-.33.066-.517.02-.11.07-.216.152-.315l.186-.216a5.276%205.276%200%200%201%20.378-.397c.062-.055.116-.099.162-.13a.26.26%200%200%201%20.123-.046c.055%200%20.083.035.083.106%200%20.07-.052.236-.156.497-.194.486-.292.848-.292%201.084%200%20.175.046.314.136.418a.45.45%200%200%200%20.358.155c.365%200%20.803-.269%201.313-.808v-.381c-.361.426-.623.64-.784.64-.109%200-.163-.067-.163-.2%200-.1.065-.316.195-.65.19-.486.285-.836.285-1.048a.464.464%200%200%200-.112-.319.36.36%200%200%200-.282-.127c-.165%200-.354.077-.567.233-.213.156-.5.436-.863.84.053-.262.165-.622.335-1.08l-.809.156a6.54%206.54%200%200%200-.399%201.074c-.04.156-.07.316-.092.48a7.447%207.447%200%200%201-.49.45.38.38%200%200%201-.229.08.208.208%200%200%201-.174-.082.352.352%200%200%201-.064-.222c0-.1.019-.214.056-.343.038-.13.12-.373.249-.731l.308-.849zm-17.21-2.927c-.863-.016-1.67.263-2.261.854-1.352%201.352-1.07%203.827.631%205.527%201.7%201.701%204.95%201.21%205.527.632.467-.466%201.07-3.827-.631-5.527-.957-.957-2.158-1.465-3.267-1.486zm12.285.358h.166v.21H15.4zm.427%200h.166v.865l.46-.455h.195l-.364.362.428.684h-.198l-.357-.575-.164.166v.41h-.166zm1.016%200h.166v.21h-.166zm.481.122h.166v.288h.172v.135h-.172v.717c0%20.037.006.062.02.075.012.013.037.02.074.02a.23.23%200%200%200%20.078-.01v.141a.802.802%200%200%201-.136.014.23.23%200%200%201-.15-.043.15.15%200%200%201-.052-.123v-.79h-.141v-.136h.141zm-3.562.258c.081%200%20.15.012.207.038.057.024.1.061.13.11s.045.106.045.173h-.176c-.006-.111-.075-.167-.208-.167a.285.285%200%200%200-.164.041.134.134%200%200%200-.06.117c0%20.035.015.065.045.088.03.024.08.044.15.06l.16.039a.47.47%200%200%201%20.224.105c.047.046.07.108.07.186a.3.3%200%200%201-.052.175.327.327%200%200%201-.152.116.585.585%200%200%201-.226.041c-.136%200-.24-.03-.309-.088-.069-.059-.105-.149-.109-.269h.176c.004.037.01.065.017.084a.166.166%200%200%200%20.034.054c.044.043.112.065.204.065a.31.31%200%200%200%20.177-.045.139.139%200%200%200%20.067-.119.116.116%200%200%200-.038-.09.287.287%200%200%200-.124-.055l-.156-.038a1.248%201.248%200%200%201-.159-.05.359.359%200%200%201-.098-.061.22.22%200%200%201-.058-.083.32.32%200%200%201-.016-.108c0-.096.036-.174.109-.232a.45.45%200%200%201%20.29-.087zm1.035%200a.46.46%200%200%201%20.202.043.351.351%200%200%201%20.187.212.577.577%200%200%201%20.023.126h-.168a.256.256%200%200%200-.078-.168.242.242%200%200%200-.17-.06.248.248%200%200%200-.155.05.306.306%200%200%200-.1.144.662.662%200%200%200-.034.224.58.58%200%200%200%20.035.214.299.299%200%200%200%20.101.135.261.261%200%200%200%20.157.048c.142%200%20.227-.084.256-.252h.167a.519.519%200%200%201-.065.22.35.35%200%200%201-.146.138.464.464%200%200%201-.216.048.448.448%200%200%201-.246-.066.441.441%200%200%201-.161-.192.703.703%200%200%201-.057-.293c0-.085.01-.163.032-.233a.522.522%200%200%201%20.095-.182.403.403%200%200%201%20.15-.117.453.453%200%200%201%20.191-.04zm.603.03h.166v1.046H15.4zm1.443%200h.166v1.046h-.166zm-5.05.618c-.08%200-.2.204-.356.611-.155.407-.308.977-.459%201.71.281-.312.509-.662.683-1.05.175-.387.262-.72.262-.999a.455.455%200%200%200-.036-.197c-.025-.05-.056-.075-.093-.075zm4.662%201.797c-.221%200-.431.188-.629.563-.197.376-.296.722-.296%201.038%200%20.12.029.216.088.29a.273.273%200%200%200%20.223.111c.221%200%20.43-.188.625-.565.196-.377.294-.725.294-1.043a.457.457%200%200%200-.083-.29.269.269%200%200%200-.222-.104zm-2.848.007c-.146%200-.285.11-.417.333-.133.222-.2.51-.2.866.566-.159.849-.452.849-.881%200-.212-.077-.318-.232-.318Z%22%2F%3E%3C%2Fsvg%3E");
}

/* =============================================================
   21A-TESTIMONIALS. Colleague testimonials on services page
   ============================================================= */
.tn-testimonials {
    width: 100%;
    padding: 56px 24px 48px;
    text-align: center;
}

.tn-testimonials__inner {
    max-width: 1000px;
    margin: 0 auto;
}

.tn-testimonials__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.85rem;
    font-weight: 400;
    color: #333;
    margin: 0 0 40px;
}

.tn-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.tn-testimonial {
    background: var(--tn-lavender, #faf7fb);
    border: 1px solid #e8e0eb;
    border-radius: 12px;
    padding: 32px 24px 28px;
    margin: 0;
    display: flex;
    flex-direction: column;
    text-align: left;
    position: relative;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
}

.tn-testimonial__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    color: #555;
    line-height: 1.7;
    margin: 0 0 20px;
    flex: 1;
}

.tn-testimonial__attribution {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-top: 1px solid #e8e0eb;
    padding-top: 16px;
}

.tn-testimonial__name {
    font-family: var(--tn-font-body) !important;
    font-size: 0.85rem;
    font-weight: 600;
    color: #333;
    font-style: normal;
}

.tn-testimonial__role {
    font-family: var(--tn-font-body) !important;
    font-size: 0.78rem;
    color: var(--tn-text-muted, #9a8f9e);
    font-style: normal;
}

@media (max-width: 768px) {
    .tn-testimonials__grid {
        grid-template-columns: 1fr;
        gap: 20px;
        max-width: 500px;
        margin: 0 auto;
    }
}

/* FAQ Section */
.tn-faq {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 64px 24px;
    background: var(--tn-surface, #f8f9fa);
}
.tn-faq__inner {
    max-width: 760px;
    margin: 0 auto;
}
.tn-faq__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    color: var(--tn-dark);
    text-align: center;
    margin-bottom: 40px;
    letter-spacing: -0.02em;
}
.tn-faq__item {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.tn-faq__item:first-child {
    border-top: 1px solid rgba(0,0,0,0.08);
}
.tn-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    font-family: var(--tn-font-display) !important;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--tn-dark);
    cursor: pointer;
    list-style: none;
    transition: color 0.2s ease;
}
.tn-faq__question::-webkit-details-marker {
    display: none;
}
.tn-faq__question::after {
    content: '+';
    font-size: 1.4rem;
    font-weight: 300;
    color: var(--tn-accent, #4a90d9);
    flex-shrink: 0;
    margin-left: 16px;
    transition: transform 0.2s ease;
}
.tn-faq__item[open] .tn-faq__question::after {
    content: '\2212';
}
.tn-faq__question:hover {
    color: var(--tn-accent, #4a90d9);
}
.tn-faq__answer {
    padding: 0 0 24px;
    color: #444;
    line-height: 1.7;
}
.tn-faq__answer p:first-child {
    font-weight: 600;
    color: var(--tn-dark);
    margin-bottom: 12px;
}
.tn-faq__answer p:last-child {
    margin-bottom: 0;
}
.tn-faq__answer a {
    color: var(--tn-accent, #4a90d9);
    text-decoration: underline;
    text-underline-offset: 2px;
}
@media (max-width: 600px) {
    .tn-faq {
        padding: 48px 16px;
    }
    .tn-faq__heading {
        font-size: 1.3rem;
    }
    .tn-faq__question {
        font-size: 0.95rem;
        padding: 16px 0;
    }
}

/* Services CTA */
.tn-services-cta {
    background: var(--tn-dark);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 48px 24px;
    text-align: center;
    box-sizing: border-box;
}

.tn-services-cta__inner {
    max-width: 560px;
    margin: 0 auto;
}

.tn-services-cta__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: #fff;
    margin: 0 0 12px;
}

.tn-services-cta__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: var(--tn-text-muted);
    margin: 0 0 28px;
    line-height: 1.6;
}

.tn-services-cta__buttons {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.tn-services-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.25s;
}

.tn-services-cta__btn--primary {
    background: var(--tn-purple);
    color: #fff;
    border: 1px solid var(--tn-purple);
}

.tn-services-cta__btn--primary:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
    color: #fff;
}

.tn-services-cta__btn--outline {
    background: transparent;
    color: var(--tn-teal);
    border: 1px solid var(--tn-teal-dim);
}

.tn-services-cta__btn--outline:hover {
    background: rgba(144, 186, 181, 0.12);
    border-color: var(--tn-teal);
    color: #fff;
    transform: translateY(-2px);
}

/* Teal separator at CTA bottom */
.tn-services-cta::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background: var(--tn-teal);
    margin: 40px auto 0;
    border-radius: 2px;
    opacity: 0.6;
}

/* Featured service card (Von Restorff effect) */
.tn-service-card--featured {
    border: 2px solid var(--tn-purple);
    background: var(--tn-lavender);
    position: relative;
}

.tn-service-card--featured::before {
    content: 'FLAGSHIP';
    position: absolute;
    top: -10px;
    left: 20px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 2px 10px;
    border-radius: 4px;
    text-transform: uppercase;
}

.tn-service-card--featured:hover {
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.2);
}

/* =============================================================
   21A-1B. POINT OF VIEW (opinionated insights section)
   ============================================================= */
.tn-pov {
    max-width: 900px;
    margin: 0 auto;
    padding: 48px 24px 32px;
}
.tn-pov__inner {
    text-align: center;
}
.tn-pov__heading {
    font-family: var(--tn-font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--tn-dark);
    margin-bottom: 8px;
}
.tn-pov__intro {
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    color: #64748b;
    margin-bottom: 32px;
}
.tn-pov__statements {
    display: grid;
    gap: 20px;
    text-align: left;
}
.tn-pov__statement {
    background: #f8f7fa;
    border-left: 3px solid var(--tn-purple);
    border-radius: 8px;
    padding: 20px 24px;
}
.tn-pov__text {
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--tn-dark);
    margin: 0;
}
@media (min-width: 768px) {
    .tn-pov {
        padding: 64px 32px 40px;
    }
    .tn-pov__statements {
        grid-template-columns: 1fr 1fr;
    }
}

/* =============================================================
   21A-1C. THE SIGNAL TEST (framework showcase)
   ============================================================= */
.tn-framework {
    max-width: 1000px;
    margin: 0 auto;
    padding: 48px 24px;
}
.tn-framework__inner {
    text-align: center;
}
.tn-framework__heading {
    font-family: var(--tn-font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--tn-dark);
    margin-bottom: 8px;
}
.tn-framework__intro {
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    color: #64748b;
    max-width: 640px;
    margin: 0 auto 36px;
}
.tn-framework__questions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-align: left;
}
.tn-framework__question {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: #fff;
    border: 1px solid #e2e0e8;
    border-radius: 10px;
    padding: 20px 24px;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.tn-framework__question:hover {
    border-color: var(--tn-purple);
    box-shadow: 0 4px 16px rgba(94, 7, 122, 0.08);
}
.tn-framework__number {
    font-family: var(--tn-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--tn-purple);
    line-height: 1;
    flex-shrink: 0;
    min-width: 32px;
}
.tn-framework__question-title {
    font-family: var(--tn-font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--tn-dark);
    margin: 0 0 6px;
}
.tn-framework__question-text {
    font-family: var(--tn-font-body);
    font-size: 0.88rem;
    line-height: 1.55;
    color: #555;
    margin: 0;
}
@media (min-width: 768px) {
    .tn-framework {
        padding: 64px 32px;
    }
}

/* ---- AI Pilot Accelerator (Plan 113) ---- */
.tn-accelerator {
    background: linear-gradient(180deg, #0f0b14 0%, #1a1128 100%);
    color: #e8e4ec;
    padding: 48px 16px;
}
.tn-accelerator__inner {
    max-width: 900px;
    margin: 0 auto;
}
.tn-accelerator__badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--tn-teal, #90BAB5);
    border: 1px solid var(--tn-teal, #90BAB5);
    border-radius: 20px;
    padding: 4px 14px;
    margin-bottom: 16px;
}
.tn-accelerator__heading {
    font-family: var(--tn-font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 12px;
}
.tn-accelerator__promise {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #c4bfcc;
    margin: 0 0 40px;
    max-width: 700px;
}
.tn-accelerator__subheading {
    font-family: var(--tn-font-heading);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--tn-teal, #90BAB5);
    margin: 0 0 20px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(144, 186, 181, 0.2);
}

/* Deliverables grid */
.tn-accelerator__deliverables {
    margin-bottom: 40px;
}
.tn-accelerator__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media (min-width: 640px) {
    .tn-accelerator__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (min-width: 900px) {
    .tn-accelerator__grid {
        grid-template-columns: 1fr 1fr 1fr;
    }
}
.tn-accelerator__item {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 16px 18px;
}
.tn-accelerator__item strong {
    display: block;
    font-size: 0.9rem;
    color: #fff;
    margin-bottom: 6px;
}
.tn-accelerator__item p {
    font-size: 0.82rem;
    line-height: 1.5;
    color: #a09aac;
    margin: 0;
}

/* Process steps */
.tn-accelerator__process {
    margin-bottom: 40px;
}
.tn-accelerator__steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.tn-accelerator__step {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.tn-accelerator__step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    background: var(--tn-teal, #90BAB5);
    color: #0f0b14;
    font-size: 0.75rem;
    font-weight: 700;
}
.tn-accelerator__step strong {
    display: block;
    font-size: 0.9rem;
    color: #fff;
    margin-bottom: 2px;
}
.tn-accelerator__step p {
    font-size: 0.82rem;
    line-height: 1.45;
    color: #a09aac;
    margin: 0;
}

/* Pricing tiers */
.tn-accelerator__pricing {
    margin-bottom: 40px;
}
.tn-accelerator__pricing-note {
    font-size: 0.85rem;
    color: #a09aac;
    margin: 0 0 20px;
}
.tn-accelerator__tiers {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
@media (min-width: 640px) {
    .tn-accelerator__tiers {
        grid-template-columns: 1fr 1fr 1fr;
    }
}
.tn-accelerator__tier {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 20px;
    text-align: center;
}
.tn-accelerator__tier--highlight {
    border-color: var(--tn-teal, #90BAB5);
    background: rgba(144, 186, 181, 0.06);
}
.tn-accelerator__tier-band {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--tn-teal, #90BAB5);
    margin-bottom: 4px;
}
.tn-accelerator__tier-score {
    display: block;
    font-size: 0.72rem;
    color: #8a849a;
    margin-bottom: 8px;
}
.tn-accelerator__tier-price {
    display: block;
    font-family: var(--tn-font-heading);
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 10px;
}
.tn-accelerator__tier p {
    font-size: 0.78rem;
    line-height: 1.45;
    color: #a09aac;
    margin: 0;
}

/* CTA */
.tn-accelerator__cta {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.tn-accelerator__cta p {
    font-size: 0.88rem;
    color: #c4bfcc;
    margin: 0 0 16px;
}

@media (min-width: 768px) {
    .tn-accelerator {
        padding: 64px 32px;
    }
    .tn-accelerator__heading {
        font-size: 2.4rem;
    }
}

/* =============================================================
   21A-2. SERVICE PILLARS (3-pillar services layout)
   ============================================================= */
.tn-services__pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
    margin-top: 40px;
}

.tn-service-pillar {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 20px;
    border: 1px solid #e8e0eb;
    border-radius: 12px;
    background: #fff;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s, border-color 0.25s;
}

.tn-service-pillar:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.12);
    border-color: rgba(94, 7, 122, 0.2);
}

.tn-service-pillar__icon {
    width: 240px;
    height: 170px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.tn-service-pillar__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform: scale(1.1);
}

.tn-service-pillar__title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.15rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 10px;
}

.tn-service-pillar__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    color: #666;
    line-height: 1.65;
    margin: 0 0 16px;
}

.tn-service-pillar__includes {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid #e8e0eb;
    padding-top: 14px;
    width: 100%;
}

.tn-service-pillar__includes li {
    font-family: var(--tn-font-body) !important;
    font-size: 0.8rem;
    color: var(--tn-purple);
    font-weight: 500;
    padding: 4px 0;
}

.tn-service-pillar__includes li::before {
    content: '\2713';
    margin-right: 6px;
    font-weight: 700;
    opacity: 0.6;
}

.tn-service-pillar__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.tn-service-pillar__link:hover {
    opacity: 0.8;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .tn-services__pillars {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }
}

@media (max-width: 480px) {
    .tn-services__pillars {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .tn-service-pillar {
        padding: 16px 16px;
    }
    .tn-service-pillar__icon {
        width: 140px;
        height: 90px;
        margin-bottom: 8px;
    }
    .tn-service-pillar__includes li {
        font-size: 0.75rem;
        word-break: break-word;
    }
}

/* =============================================================
   21A-3. HOW WE WORK METHODOLOGY SECTION
   ============================================================= */
.tn-methodology {
    max-width: 1000px;
    margin: 0 auto;
    padding: 56px 24px 48px;
    text-align: center;
}

.tn-methodology__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 40px;
    letter-spacing: -0.3px;
}

.tn-methodology__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    position: relative;
}

.tn-methodology__steps::before {
    content: '';
    position: absolute;
    top: 28px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: linear-gradient(to right, var(--tn-purple), var(--tn-teal));
    opacity: 0.25;
    z-index: 0;
}

.tn-methodology__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.tn-methodology__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--tn-lavender);
    border: 2px solid rgba(94, 7, 122, 0.2);
    font-family: var(--tn-font-display) !important;
    font-size: 1rem;
    font-weight: 600;
    color: var(--tn-purple);
    margin-bottom: 14px;
    transition: all 0.25s;
}

.tn-methodology__step:hover .tn-methodology__number {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(94, 7, 122, 0.25);
}

.tn-methodology__step-title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.05rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 8px;
}

.tn-methodology__step-text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.82rem;
    color: #666;
    line-height: 1.6;
    margin: 0;
}

@media (max-width: 768px) {
    .tn-methodology__steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 24px;
    }
    .tn-methodology__steps::before {
        display: none;
    }
}

@media (max-width: 480px) {
    .tn-methodology__steps {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .tn-methodology {
        padding: 20px 16px 16px;
    }
    .tn-methodology__heading {
        margin-bottom: 16px;
    }
    .tn-methodology__number {
        width: 44px;
        height: 44px;
        font-size: 0.85rem;
        margin-bottom: 8px;
    }
    .tn-methodology__step-title {
        font-size: 0.9rem;
        margin-bottom: 4px;
    }
    .tn-methodology__step-text {
        font-size: 0.78rem;
    }
}

/* =============================================================
   21A-4. TECH NARRATIVE (replaces tag cloud on services page)
   ============================================================= */
.tn-services-tech__narrative {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: #555;
    line-height: 1.7;
    max-width: 640px;
    margin: 0 auto 24px;
    text-align: center;
}

.tn-tech-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    max-width: 780px;
    margin: 0 auto;
}

@media (max-width: 480px) {
    .tn-services-tech__narrative {
        font-size: 0.88rem;
        padding: 0 8px;
    }
    .tn-tech-chips {
        gap: 8px;
    }
}

/* =============================================================
   21B. SOCIAL PROOF / TRACK RECORD SECTION
   ============================================================= */
.tn-proof {
    background: #fff;
    border-top: 1px solid #e8e0eb;
    border-bottom: 1px solid #e8e0eb;
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 48px 24px;
    text-align: center;
    box-sizing: border-box;
}

.tn-proof__inner {
    max-width: 900px;
    margin: 0 auto;
}

.tn-proof__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: var(--tn-purple);
    margin: 0 0 32px;
}

.tn-proof__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.tn-proof__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.tn-proof__number {
    font-family: var(--tn-font-display) !important;
    font-size: 2.8rem;
    font-weight: 400;
    color: var(--tn-purple);
    line-height: 1.1;
}

.tn-proof__label {
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    color: #666;
    line-height: 1.5;
    max-width: 240px;
}

/* =============================================================
   21C. TECH GROUPS — categorized chip layout
   ============================================================= */
.tn-tech-group {
    margin-bottom: 20px;
}

.tn-tech-group:last-child {
    margin-bottom: 0;
}

.tn-tech-group__label {
    display: block;
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--tn-purple);
    margin-bottom: 10px;
}

.tn-tech-group__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

/* =============================================================
   21D. CONTACT FORM 7 — dark-themed inline form
   ============================================================= */
.tn-services-cta__form {
    max-width: 520px;
    margin: 0 auto 20px;
    text-align: left;
}

.tn-services-cta__form .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.tn-cf7-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.tn-services-cta__form input[type="text"],
.tn-services-cta__form input[type="email"],
.tn-services-cta__form textarea {
    width: 100%;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
}

.tn-services-cta__form input[type="text"]:focus,
.tn-services-cta__form input[type="email"]:focus,
.tn-services-cta__form textarea:focus {
    outline: none;
    border-color: var(--tn-teal);
    background: rgba(255, 255, 255, 0.12);
}

.tn-services-cta__form input::placeholder,
.tn-services-cta__form textarea::placeholder {
    color: rgba(255, 255, 255, 0.4);
}

.tn-services-cta__form textarea {
    min-height: 120px;
    resize: vertical;
}

.tn-services-cta__form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 32px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.92rem;
    font-weight: 600;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
    align-self: center;
}

.tn-services-cta__form input[type="submit"]:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
}

.tn-services-cta__form .wpcf7-response-output {
    color: var(--tn-teal);
    font-size: 0.88rem;
    text-align: center;
    border: none !important;
    padding: 8px 0 !important;
    margin: 0 !important;
}

.tn-services-cta__form .wpcf7-not-valid-tip {
    color: #ff8a80;
    font-size: 0.78rem;
    margin-top: 4px;
}

.tn-services-cta__alt {
    font-family: var(--tn-font-body) !important;
    font-size: 0.85rem;
    color: var(--tn-text-muted);
    margin: 0;
}

.tn-services-cta__alt a {
    color: var(--tn-teal);
    text-decoration: none;
    transition: color 0.2s;
}

.tn-services-cta__alt a:hover {
    color: #fff;
}

/* Services responsive */
@media (max-width: 768px) {
    .tn-services__grid {
        grid-template-columns: 1fr 1fr;
    }

    .tn-proof__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }

    .tn-proof__number {
        font-size: 2.2rem;
    }

    .tn-cf7-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .tn-services__grid {
        grid-template-columns: 1fr;
    }

    .tn-proof__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .tn-proof__number {
        font-size: 2.5rem;
    }

    .tn-services-cta__form {
        padding: 0 8px;
    }
}

/* Resume: full-width layout (no sidebar) */
.page-id-199 .site-content .content-area,
.page-id-199 #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}
.page-id-199 #secondary { display: none !important; }
.page-id-199 .top-bar { display: none; }
.page-id-199 .entry-header,
.page-id-199 .page-header { display: none; }

/* Blog archive page — home.php takes over layout; suppress parent chrome */
.blog .page-header { display: none; }
.blog .top-bar { display: none; }
.blog #banner_section { display: none; }
.blog #secondary { display: none !important; }
.blog .site-content .content-area,
.blog #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
    margin-top: 0;
    padding: 0;
}

/* Let blog template break out of .container max-width */
.blog .site-content .container {
    max-width: none;
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

/* Hero: container is already full-width on blog, so disable breakout offset
   and reset margin-top (parent content area has no default top spacing here) */
.blog .tn-page-hero {
    left: 0;
    transform: none;
    margin-top: 0;
}

/* =============================================================
   13. BACKGROUND PAGE — Prospect-Converting About (Plan 030 v3)
   Full-bleed alternating sections, design tokens, responsive
   ============================================================= */

/* --- Full-bleed section base --- */
.bg-intro,
.bg-capabilities,
.bg-proof,
.bg-built,
.bg-credentials,
.bg-cta-band {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    padding: 64px 24px;
}

/* --- Section 1: Photo + Intro --- */
.bg-intro {
    background: #2a2030;
}

.bg-intro__inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

.bg-intro__photo-col {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.bg-intro__headshot {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 3px solid var(--tn-purple, #5e077a);
    box-shadow: 0 12px 40px rgba(94, 7, 122, 0.3);
    object-fit: cover;
    object-position: center 18%;
}

.bg-intro__chips {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}

.bg-intro__chip {
    display: block;
    padding: 12px 20px;
    background: rgba(144, 186, 181, 0.12);
    border: 1.5px solid rgba(144, 186, 181, 0.3);
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    text-align: center;
    transition: all 0.2s;
}

.bg-intro__chip:hover {
    background: var(--tn-purple, #5e077a);
    border-color: var(--tn-purple, #5e077a);
    color: #fff;
    box-shadow: 0 4px 16px rgba(94, 7, 122, 0.3);
    transform: translateY(-2px);
}

.bg-intro__text-col p {
    font-size: 1rem;
    line-height: 1.85;
    color: #e0d8e3;
    margin: 0 0 20px;
}

.bg-intro__text-col p:last-child {
    margin-bottom: 0;
}

/* --- Section 2: How I Can Help --- */
.bg-capabilities {
    background: #14101a;
}

.bg-capabilities__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.bg-capabilities__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 36px;
    text-align: center;
}

.bg-capabilities__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.bg-cap-card {
    background: var(--tn-dark-surface, #231a21);
    border: 1px solid var(--tn-border, #2e2430);
    border-radius: 12px;
    padding: 32px 28px;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}

.bg-cap-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.18);
    border-color: rgba(94, 7, 122, 0.3);
}

.bg-cap-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 16px;
}

.bg-cap-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bg-cap-card__list li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 10px;
    font-size: 0.88rem;
    line-height: 1.65;
    color: #e0d8e3;
}

.bg-cap-card__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tn-teal, #90BAB5);
}

/* --- Section 3: Social Proof --- */
.bg-proof {
    background: #2a2030;
}

.bg-proof__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.bg-proof__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 36px;
    text-align: center;
}

.bg-proof__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.bg-proof-card {
    background: var(--tn-dark, #1a1118);
    border: 1px solid var(--tn-border, #2e2430);
    border-left: 4px solid var(--tn-teal, #90BAB5);
    border-radius: 12px;
    padding: 32px;
}

.bg-proof-card__quote {
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.6;
    color: #fff;
    margin: 0 0 16px;
}

.bg-proof-card__body {
    font-size: 0.88rem;
    line-height: 1.7;
    color: var(--tn-text-muted, #9a8f9e);
    margin: 0 0 20px;
}

.bg-proof-card__attribution {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 16px;
    border-top: 1px solid var(--tn-border, #2e2430);
}

.bg-proof-card__attribution strong {
    font-size: 0.9rem;
    color: #fff;
    font-weight: 600;
}

.bg-proof-card__attribution span {
    font-size: 0.82rem;
    color: var(--tn-teal, #90BAB5);
}

.bg-proof__note {
    text-align: center;
    margin: 36px 0 0;
}

.bg-proof__note a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.95rem;
    font-weight: 500;
    color: #fff;
    text-decoration: none;
    padding: 10px 24px;
    border: 1.5px solid var(--tn-border, #2e2430);
    border-radius: 8px;
    transition: all 0.2s;
}

.bg-proof__note a:hover {
    border-color: var(--tn-teal, #90BAB5);
    color: var(--tn-teal, #90BAB5);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(144, 186, 181, 0.15);
}

/* --- Section 4: What I've Built --- */
.bg-built {
    background: #14101a;
}

.bg-built__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.bg-built__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 36px;
    text-align: center;
}

.bg-built__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.bg-built-card {
    background: var(--tn-dark-surface, #231a21);
    border: 1px solid var(--tn-border, #2e2430);
    border-radius: 12px;
    padding: 28px;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}

.bg-built-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.15);
    border-color: rgba(94, 7, 122, 0.3);
}

.bg-built-card__context {
    display: inline-block;
    padding: 3px 12px;
    background: rgba(144, 186, 181, 0.1);
    border: 1px solid rgba(144, 186, 181, 0.2);
    border-radius: 12px;
    font-size: 0.75rem;
    color: var(--tn-teal, #90BAB5);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 12px;
}

.bg-built-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 10px;
    line-height: 1.4;
}

.bg-built-card__desc {
    font-size: 0.88rem;
    line-height: 1.7;
    color: #e0d8e3;
    margin: 0;
}

/* --- Section 5: Credentials --- */
.bg-credentials {
    background: #2a2030;
}

.bg-credentials__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.bg-credentials__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 36px;
    text-align: center;
}

.bg-credentials__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.bg-cred-item {
    background: var(--tn-dark, #1a1118);
    border: 1px solid var(--tn-border, #2e2430);
    border-radius: 12px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bg-cred-item__label {
    display: inline-block;
    padding: 2px 10px;
    background: rgba(144, 186, 181, 0.1);
    border: 1px solid rgba(144, 186, 181, 0.2);
    border-radius: 10px;
    font-size: 0.72rem;
    color: var(--tn-teal, #90BAB5);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    align-self: flex-start;
    margin-bottom: 4px;
}

.bg-cred-item strong {
    font-size: 0.9rem;
    color: #fff;
    line-height: 1.4;
}

.bg-cred-item span:last-child {
    font-size: 0.82rem;
    color: var(--tn-text-muted, #9a8f9e);
}

/* --- Section 6: CTA Band (matching homepage) --- */
.bg-cta-band {
    background: #14101a;
    text-align: center;
    padding: 72px 24px;
}

.bg-cta-band__inner {
    max-width: 560px;
    margin: 0 auto;
}

.bg-cta-band__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    color: #fff;
    margin: 0 0 12px;
}

.bg-cta-band__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: var(--tn-text-muted, #9a8f9e);
    margin: 0 0 28px;
    line-height: 1.6;
}

.bg-cta-band__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    background: var(--tn-purple, #5e077a);
    color: #fff;
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.25s;
}

.bg-cta-band__btn:hover {
    background: #7a1a9e;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.3);
    color: #fff;
}

.bg-cta-band__btn span {
    display: inline-block;
    transition: transform 0.2s;
}

.bg-cta-band__btn:hover span {
    transform: translateX(4px);
}

.bg-cta-band::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background: var(--tn-teal, #90BAB5);
    margin: 40px auto 0;
    border-radius: 2px;
    opacity: 0.6;
}

/* --- Background Page Responsive --- */
@media (max-width: 991px) {
    .bg-capabilities__grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin: 0 auto;
    }

    .bg-credentials__grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .bg-intro__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .bg-intro__photo-col {
        align-items: center;
    }

    .bg-intro__chips {
        flex-direction: row;
        justify-content: center;
    }

    .bg-proof__grid,
    .bg-built__grid {
        grid-template-columns: 1fr;
    }

    .bg-credentials__grid {
        grid-template-columns: 1fr;
    }

    .bg-intro,
    .bg-capabilities,
    .bg-proof,
    .bg-built,
    .bg-credentials,
    .bg-cta-band {
        padding: 48px 20px;
    }
}

@media (max-width: 480px) {
    .bg-intro__headshot {
        width: 220px;
        height: 220px;
    }

    .bg-intro,
    .bg-capabilities,
    .bg-proof,
    .bg-built,
    .bg-credentials,
    .bg-cta-band {
        padding: 36px 16px;
    }

    .bg-capabilities__heading,
    .bg-proof__heading,
    .bg-built__heading,
    .bg-credentials__heading {
        font-size: 1.3rem;
    }

    .bg-cta-band__heading {
        font-size: 1.25rem;
    }
}

/* ==========================================================================
   Section 23: Contact Page (Talk Strategy)
   ========================================================================== */

/* Hero section with gradient background */
.tn-contact-hero {
    position: relative;
    padding: 80px 24px 48px;
    text-align: center;
    background: linear-gradient(135deg, rgba(144, 186, 181, 0.12) 0%, rgba(26, 26, 46, 0) 60%),
                radial-gradient(ellipse at 70% 20%, rgba(144, 186, 181, 0.08) 0%, transparent 50%);
}

.tn-contact-hero__inner {
    max-width: 640px;
    margin: 0 auto;
}

.tn-contact-hero__heading {
    font-family: var(--tn-font-display) !important;
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 700;
    color: #fff;
    margin: 0 0 16px;
}

.tn-contact-hero__text {
    font-family: var(--tn-font-body);
    font-size: 1.1rem;
    color: var(--tn-text-muted);
    line-height: 1.7;
    margin: 0;
}

/* Form section */
.tn-contact {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 24px 64px;
}

.tn-contact__inner {
    max-width: 100%;
}

/* CF7 form rows (2-col grid, same as modal) */
.tn-contact__form .tn-cf7-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.tn-contact__form .wpcf7-form input[type="text"],
.tn-contact__form .wpcf7-form input[type="email"],
.tn-contact__form .wpcf7-form textarea {
    display: block;
    width: 100%;
    padding: 12px 14px;
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    border: 1.5px solid var(--tn-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    color: #e0d8e3;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.tn-contact__form .wpcf7-form input[type="text"]:focus,
.tn-contact__form .wpcf7-form input[type="email"]:focus,
.tn-contact__form .wpcf7-form textarea:focus {
    outline: none;
    border-color: var(--tn-teal);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: 0 0 0 3px rgba(144, 186, 181, 0.1);
}

.tn-contact__form .wpcf7-form input::placeholder,
.tn-contact__form .wpcf7-form textarea::placeholder {
    color: var(--tn-text-muted);
    opacity: 0.7;
}

.tn-contact__form .wpcf7-form textarea {
    min-height: 160px;
    resize: vertical;
    margin-bottom: 8px;
}

.tn-contact__form .wpcf7-form input[type="submit"] {
    display: inline-block;
    margin-top: 8px;
    padding: 14px 36px;
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--tn-dark);
    background: var(--tn-teal);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
}

.tn-contact__form .wpcf7-form input[type="submit"]:hover {
    background: #a3ccc7;
    transform: translateY(-1px);
}

.tn-contact__form .wpcf7-response-output {
    margin-top: 16px;
    padding: 12px 16px;
    border-radius: 8px;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    border-color: var(--tn-teal) !important;
    background: rgba(144, 186, 181, 0.08) !important;
    color: var(--tn-teal) !important;
}

/* Personal note below form */
.tn-contact__personal {
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    color: var(--tn-text-muted);
    text-align: center;
    margin: 32px 0 0;
    opacity: 0.8;
    font-style: italic;
}

/* LinkedIn alternative */
.tn-contact__alt {
    text-align: center;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--tn-border);
}

.tn-contact__alt p {
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    color: var(--tn-text-muted);
    margin: 0;
}

.tn-contact__alt a {
    color: var(--tn-teal);
    text-decoration: none;
    font-weight: 600;
}

.tn-contact__alt a:hover {
    text-decoration: underline;
}

/* Dark page background */
.page-id-16 .tn-hero-page,
.page-id-16 .site-content {
    background: var(--tn-dark);
}

/* Hide any stray sidebar or comment form */
.page-id-16 #secondary,
.page-id-16 #comments,
.page-id-16 .comments-area {
    display: none !important;
}

@media (max-width: 768px) {
    .tn-contact-hero {
        padding: 48px 24px 32px;
    }
    .tn-contact {
        padding: 0 24px 48px;
    }
    .tn-contact__form .tn-cf7-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 375px) {
    .tn-contact-hero {
        padding: 36px 16px 24px;
    }
    .tn-contact {
        padding: 0 16px 40px;
    }
    .tn-contact-hero__text {
        font-size: 1rem;
    }
}

/* =============================================================
   AI SUMMARY — Blog post TL;DR box
   ============================================================= */
.tn-ai-summary {
  background: linear-gradient(135deg, #faf7fb 0%, #f3eef6 100%);
  border-left: 4px solid #5e077a;
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin-bottom: 2rem;
  font-family: var(--tn-font-body, "DM Sans", sans-serif);
}

.tn-ai-summary__header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.tn-ai-summary__icon {
  font-size: 1rem;
}

.tn-ai-summary__label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #5e077a;
}

.tn-ai-summary__text {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #374151;
  margin: 0;
}

/* =============================================================
   AI TTS PLAYER — Audio narration for blog posts
   ============================================================= */
.tn-tts-player {
  background: linear-gradient(135deg, #f3eef6 0%, #ede6f0 100%);
  border: 1px solid #e0d5e3;
  border-radius: 10px;
  padding: 0.85rem 1.25rem;
  margin-bottom: 1.75rem;
  font-family: var(--tn-font-body, "DM Sans", sans-serif);
}

.tn-tts-player__header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}

.tn-tts-player__icon {
  color: var(--tn-purple, #5e077a);
  flex-shrink: 0;
}

.tn-tts-player__label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--tn-purple, #5e077a);
}

.tn-tts-player__audio {
  width: 100%;
  height: 36px;
  border-radius: 18px;
  outline: none;
}

/* Style the native audio controls to match the purple theme */
.tn-tts-player__audio::-webkit-media-controls-panel {
  background: #fff;
  border-radius: 18px;
}

.tn-tts-player__audio:focus-visible {
  outline: 2px solid var(--tn-teal, #90BAB5);
  outline-offset: 2px;
}

@media (max-width: 480px) {
  .tn-tts-player {
    padding: 0.75rem 1rem;
  }
}

/* =============================================================
   AI CHATBOT — Floating widget
   ============================================================= */
#tn-chatbot {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 9999;
  font-family: var(--tn-font-body, "DM Sans", sans-serif);
}

/* Trigger button — branded purple with teal glow */
.tn-chatbot__trigger {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #5e077a 0%, #3d0550 100%);
  color: #fff;
  border: 2px solid rgba(144, 186, 181, 0.3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(94, 7, 122, 0.35), 0 0 0 0 rgba(144, 186, 181, 0);
  transition: transform 0.2s, box-shadow 0.3s, border-color 0.3s;
}
.tn-chatbot__trigger:hover {
  transform: scale(1.08);
  border-color: rgba(144, 186, 181, 0.6);
  box-shadow: 0 6px 24px rgba(94, 7, 122, 0.45), 0 0 12px rgba(144, 186, 181, 0.2);
}
.tn-chatbot__trigger.is-hidden {
  display: none;
}

/* Chat panel — dark header, soft body */
.tn-chatbot__panel {
  display: none;
  flex-direction: column;
  width: 420px;
  max-width: calc(100vw - 2rem);
  height: 600px;
  max-height: calc(100vh - 4rem);
  background: #1a1118;
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(26, 17, 24, 0.45), 0 4px 16px rgba(26, 17, 24, 0.2);
  overflow: hidden;
}
.tn-chatbot__panel.is-open {
  display: flex;
}

/* Header — dark with subtle gradient */
.tn-chatbot__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, #1a1118 0%, #2a1530 100%);
  color: #fff;
  border-bottom: 2px solid rgba(144, 186, 181, 0.2);
}
.tn-chatbot__title {
  font-family: var(--tn-font-heading, "DM Serif Display", serif);
  font-weight: 400;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.tn-chatbot__trace-toggle {
  margin-left: auto;
  margin-right: 0.25rem;
  border: 1px solid rgba(144, 186, 181, 0.35);
  background: rgba(144, 186, 181, 0.08);
  color: #90BAB5;
  border-radius: 999px;
  padding: 0.18rem 0.58rem;
  font-size: 0.68rem;
  line-height: 1.2;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.tn-chatbot__trace-toggle:hover,
.tn-chatbot__trace-toggle:focus {
  background: rgba(144, 186, 181, 0.2);
  color: #e8fff8;
  border-color: rgba(144, 186, 181, 0.55);
  outline: none;
}
.tn-chatbot__trace-toggle.is-active {
  background: rgba(144, 186, 181, 0.25);
  color: #fff;
  border-color: rgba(144, 186, 181, 0.75);
}
.tn-chatbot__close {
  background: none !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0.5rem;
  margin: 0;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.4rem;
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s;
  -webkit-appearance: none;
  appearance: none;
}
.tn-chatbot__close:hover,
.tn-chatbot__close:focus,
.tn-chatbot__close:active {
  background: none !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: #90BAB5;
}

/* Messages area */
.tn-chatbot__messages {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background: #faf7fb;
}
.tn-chatbot__messages::-webkit-scrollbar { width: 4px; }
.tn-chatbot__messages::-webkit-scrollbar-track { background: transparent; }
.tn-chatbot__messages::-webkit-scrollbar-thumb { background: rgba(94, 7, 122, 0.15); border-radius: 2px; }

/* Message bubbles */
.tn-chatbot__msg {
  max-width: 88%;
  padding: 0.65rem 0.95rem;
  border-radius: 14px;
  font-size: 0.85rem;
  line-height: 1.6;
}
.tn-chatbot__msg p { margin: 0 0 0.4em; }
.tn-chatbot__msg p:last-child { margin-bottom: 0; }
.tn-chatbot__msg strong { font-weight: 600; }
.tn-chatbot__msg ul { margin: 0.3em 0; padding-left: 1.2em; }
.tn-chatbot__msg li { margin-bottom: 0.2em; }
.tn-chatbot__msg a {
  color: #5e077a;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.tn-chatbot__msg a:hover { color: #90BAB5; }

/* Bot messages — light lavender background */
.tn-chatbot__msg--bot {
  background: #fff;
  color: #1a1118;
  align-self: flex-start;
  border: 1px solid #e8e0eb;
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 3px rgba(94, 7, 122, 0.06);
}

/* Suggested action chips */
.tn-chatbot__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-self: flex-start;
  max-width: 88%;
  padding: 0.15rem 0;
}
.tn-chatbot__chip {
  background: #fff;
  color: #5e077a;
  border: 1px solid rgba(94, 7, 122, 0.25);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.78rem;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  line-height: 1.3;
  white-space: nowrap;
}
.tn-chatbot__chip:hover,
.tn-chatbot__chip:focus {
  background: #5e077a;
  color: #fff;
  border-color: #5e077a;
  outline: none;
}
.tn-chatbot__chip:active {
  transform: scale(0.96);
}

/* User messages — purple gradient */
.tn-chatbot__msg--user {
  background: linear-gradient(135deg, #5e077a 0%, #7a1b96 100%);
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 4px;
  box-shadow: 0 2px 8px rgba(94, 7, 122, 0.2);
}
.tn-chatbot__msg--user a { color: #90BAB5; }

/* Streaming cursor */
.tn-chatbot__cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: #5e077a;
  margin-left: 1px;
  vertical-align: text-bottom;
  animation: tn-blink 0.8s step-end infinite;
}
@keyframes tn-blink {
  50% { opacity: 0; }
}

/* Loading state */
.tn-chatbot__msg--loading p {
  color: #9ca3af;
}
.tn-chatbot__msg--loading .tn-chatbot__dots span {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #5e077a;
  margin: 0 2px;
  opacity: 0.3;
  animation: tn-dot-bounce 1.4s ease-in-out infinite;
}
.tn-chatbot__msg--loading .tn-chatbot__dots span:nth-child(2) { animation-delay: 0.2s; }
.tn-chatbot__msg--loading .tn-chatbot__dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes tn-dot-bounce {
  0%, 80%, 100% { opacity: 0.3; transform: translateY(0); }
  40% { opacity: 1; transform: translateY(-4px); }
}

/* Input area */
.tn-chatbot__input {
  display: flex;
  border-top: 1px solid #e8e0eb;
  padding: 0.5rem;
  background: #fff;
}
.tn-chatbot__input input {
  flex: 1;
  border: 1px solid #e8e0eb;
  border-radius: 10px;
  padding: 0.55rem 0.85rem;
  font-size: 0.85rem;
  outline: none;
  font-family: inherit;
  background: #faf7fb;
  color: #1a1118;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.tn-chatbot__input input:focus {
  border-color: #5e077a;
  box-shadow: 0 0 0 2px rgba(94, 7, 122, 0.1);
}
.tn-chatbot__input input:disabled {
  opacity: 0.5;
}
.tn-chatbot__input button {
  background: none;
  border: none;
  color: #5e077a;
  cursor: pointer;
  padding: 0.5rem;
  transition: color 0.2s, transform 0.2s;
}
.tn-chatbot__input button:hover {
  color: #90BAB5;
  transform: scale(1.1);
}
.tn-chatbot__input button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
  transform: none;
}
.tn-chatbot__input.is-loading input {
  opacity: 0.5;
  pointer-events: none;
}
.tn-chatbot__input.is-loading button {
  opacity: 0.3;
  pointer-events: none;
}

/* Footer */
.tn-chatbot__footer {
  padding: 0.25rem 1rem 0.5rem;
  text-align: center;
  background: #fff;
}
.tn-chatbot__remaining {
  font-size: 0.7rem;
  color: #9ca3af;
  letter-spacing: 0.02em;
}

.tn-chatbot__continuity {
  margin-top: 0.45rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.tn-chatbot__continuity-btn {
  border: 1px solid #d8cde0;
  border-radius: 999px;
  background: #fff;
  color: #4d4053;
  font-family: var(--tn-font-body);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  padding: 0.2rem 0.58rem;
  cursor: pointer;
}

.tn-chatbot__continuity-btn:hover {
  border-color: #b99fca;
  background: #f7f0fa;
}

.tn-chatbot__continuity-btn:disabled {
  opacity: 0.62;
  cursor: not-allowed;
}

.tn-chatbot__continuity-status {
  color: #6a6070;
  font-family: var(--tn-font-body);
  font-size: 0.66rem;
  line-height: 1.35;
}

.tn-chatbot__continuity-status.is-loading { color: #2563eb; }
.tn-chatbot__continuity-status.is-success { color: #15803d; }
.tn-chatbot__continuity-status.is-warning { color: #b45309; }
.tn-chatbot__continuity-status.is-error { color: #b91c1c; }

/* Orchestration transparency panel */
.tn-chatbot__trace {
  border-top: 1px solid rgba(232, 224, 235, 0.75);
  background: #fff;
  padding: 0.55rem 0.8rem 0.75rem;
}
.tn-chatbot__trace-head {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #3e3642;
  margin-bottom: 0.45rem;
}
.tn-chatbot__trace-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.26rem 0.5rem;
  font-size: 0.69rem;
  color: #524a56;
}
.tn-chatbot__trace-status {
  margin-top: 0.45rem;
  font-size: 0.69rem;
  color: #6b6571;
}
.tn-chatbot__trace-status.is-loading { color: #2563eb; }
.tn-chatbot__trace-status.is-success { color: #15803d; }
.tn-chatbot__trace-status.is-warning { color: #b45309; }
.tn-chatbot__trace-status.is-error { color: #b91c1c; }

.tn-chatbot__trace-log {
  margin-top: 0.5rem;
  max-height: 120px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-right: 0.15rem;
}
.tn-chatbot__trace-line {
  display: flex;
  gap: 0.32rem;
  align-items: flex-start;
  font-size: 0.67rem;
  line-height: 1.45;
  color: #352f38;
}
.tn-chatbot__trace-phase-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  border-radius: 999px;
  padding: 0.08rem 0.33rem;
  background: #f1e7f4;
  color: #5e077a;
  border: 1px solid #ddcbe3;
  font-size: 0.6rem;
  letter-spacing: 0.04em;
  font-weight: 700;
  text-transform: uppercase;
}
.tn-chatbot__trace-line-text {
  flex: 1;
}
.tn-chatbot__trace-links {
  margin: 0.55rem 0 0;
  font-family: var(--tn-font-body);
  font-size: 0.69rem;
}
.tn-chatbot__trace-links a {
  color: var(--tn-purple);
  font-weight: 600;
}
.tn-chatbot__trace-links a:hover {
  color: #760f96;
}

.tn-chatbot__inline-trace {
  margin-top: 0.55rem;
  border: 1px solid rgba(94, 7, 122, 0.18);
  border-radius: 10px;
  background: rgba(250, 247, 251, 0.9);
  overflow: hidden;
}

.tn-chatbot__inline-trace-summary {
  width: 100%;
  border: 0;
  background: rgba(94, 7, 122, 0.08);
  color: #3a2e42;
  font-family: var(--tn-font-body, "DM Sans", sans-serif);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-align: left;
  padding: 0.38rem 0.52rem;
  cursor: pointer;
}

.tn-chatbot__inline-trace-summary:hover,
.tn-chatbot__inline-trace-summary:focus {
  background: rgba(94, 7, 122, 0.16);
  outline: none;
}

.tn-chatbot__inline-trace-details {
  border-top: 1px solid rgba(94, 7, 122, 0.14);
  padding: 0.38rem 0.48rem 0.5rem;
}

.tn-chatbot__inline-trace-pipeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.22rem;
}

.tn-chatbot__inline-trace-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(94, 7, 122, 0.2);
  border-radius: 8px;
  min-height: 34px;
  padding: 0.18rem 0.12rem;
  background: #ffffff;
}

.tn-chatbot__inline-trace-node-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  margin-bottom: 0.15rem;
  background: #a8a0b1;
}

.tn-chatbot__inline-trace-node-label {
  font-size: 0.54rem;
  letter-spacing: 0.02em;
  color: #4f4457;
  font-weight: 700;
  line-height: 1.1;
}

.tn-chatbot__inline-trace-node.is-active {
  border-color: rgba(46, 211, 111, 0.65);
  background: rgba(46, 211, 111, 0.12);
}

.tn-chatbot__inline-trace-node.is-active .tn-chatbot__inline-trace-node-dot {
  background: #1ebf63;
  box-shadow: 0 0 0 5px rgba(46, 211, 111, 0.2);
}

.tn-chatbot__inline-trace-node.is-complete {
  border-color: rgba(44, 167, 98, 0.55);
  background: rgba(46, 211, 111, 0.08);
}

.tn-chatbot__inline-trace-node.is-complete .tn-chatbot__inline-trace-node-dot {
  background: #22b15f;
}

.tn-chatbot__inline-trace-stats {
  margin-top: 0.36rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.22rem 0.36rem;
  font-size: 0.62rem;
  color: #4b4152;
}

.tn-chatbot__inline-trace-log {
  margin-top: 0.4rem;
  max-height: 120px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.24rem;
  padding-right: 0.12rem;
}

.tn-chatbot__inline-trace-line {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.28rem;
  align-items: start;
}

.tn-chatbot__inline-trace-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  border-radius: 999px;
  border: 1px solid rgba(94, 7, 122, 0.22);
  background: rgba(94, 7, 122, 0.08);
  color: #5e077a;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.1;
  padding: 0.07rem 0.24rem;
}

.tn-chatbot__inline-trace-line-text {
  font-size: 0.62rem;
  line-height: 1.35;
  color: #352e3d;
}

.tn-chatbot__inline-trace-empty {
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.35;
  color: #5e5268;
}

/* Chatbot mobile — full-width panel, properly-sized trigger */
@media (max-width: 480px) {
  #tn-chatbot {
    bottom: 1rem;
    right: 1rem;
  }
  .tn-chatbot__trigger {
    width: 52px;
    height: 52px;
  }
  .tn-chatbot__trigger svg {
    width: 24px;
    height: 24px;
  }
  .tn-chatbot__panel {
    width: calc(100vw - 1rem);
    height: calc(100vh - 5rem);
    border-radius: 14px 14px 0 0;
  }
  .tn-chatbot__chip {
    font-size: 0.75rem;
    padding: 0.4rem 0.7rem;
  }
  .tn-chatbot__inline-trace-pipeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .tn-chatbot__inline-trace-stats {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   AI SEARCH — Modern command-palette overlay
   ============================================================= */

/* Overlay container */
#tn-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12vh;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
#tn-search-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Backdrop */
.tn-search__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 17, 24, 0.7);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

/* Main container */
.tn-search__container {
  position: relative;
  width: 90%;
  max-width: 620px;
  background: #1a1118;
  border-radius: 16px;
  box-shadow:
    0 24px 64px rgba(26, 17, 24, 0.45),
    0 4px 16px rgba(26, 17, 24, 0.2);
  overflow: hidden;
  transform: translateY(-12px) scale(0.97);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
#tn-search-overlay.is-open .tn-search__container {
  transform: translateY(0) scale(1);
}

/* Header / input area */
.tn-search__header {
  background: linear-gradient(135deg, #1a1118 0%, #2a1530 100%);
  padding: 0.85rem 1.25rem 0.2rem;
}
.tn-search__label {
  display: block;
  margin: 0 0 0.42rem;
  color: #d9ecfb;
  font-family: "DM Sans", sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.tn-search__input-wrap {
  display: flex;
  align-items: center;
  padding: 0;
  gap: 0.75rem;
}
.tn-search__icon {
  flex-shrink: 0;
  color: #90BAB5;
  opacity: 0.8;
}
.tn-search__input {
  flex: 1;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  font-family: "DM Sans", sans-serif;
  font-size: 1.1rem;
  color: #faf7fb !important;
  caret-color: #90BAB5;
  letter-spacing: 0.01em;
  padding: 0 !important;
  margin: 0;
  height: auto;
  min-height: 0;
  line-height: 1.4;
}
.tn-search__input:focus {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: #faf7fb !important;
}
.tn-search__input::placeholder {
  color: rgba(250, 247, 251, 0.45) !important;
}
.tn-search__kbd {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.15rem 0.5rem;
  font-family: "DM Sans", sans-serif;
  font-size: 0.65rem;
  font-weight: 500;
  color: rgba(250, 247, 251, 0.4);
  border: 1px solid rgba(250, 247, 251, 0.15);
  border-radius: 4px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Body — hidden until results exist */
.tn-search__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  background: #faf7fb;
}
.tn-search__body.has-results {
  max-height: 460px;
}

/* Results list */
.tn-search__results {
  max-height: 380px;
  overflow-y: auto;
  padding: 0.5rem 0;
}
.tn-search__results::-webkit-scrollbar {
  width: 4px;
}
.tn-search__results::-webkit-scrollbar-track {
  background: transparent;
}
.tn-search__results::-webkit-scrollbar-thumb {
  background: rgba(94, 7, 122, 0.2);
  border-radius: 2px;
}

/* Source badge inside results */
.tn-search__source {
  padding: 0.5rem 1.25rem 0.25rem;
  font-family: "DM Sans", sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #5e077a;
  opacity: 0.7;
}

/* Individual result */
.tn-search__result {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.25rem;
  text-decoration: none;
  color: #1a1118;
  border-radius: 8px;
  margin: 0 0.5rem;
  transition: background 0.15s ease;
}
.tn-search__result:hover {
  background: rgba(94, 7, 122, 0.06);
}
.tn-search__result:hover .tn-search__result-arrow {
  opacity: 1;
  transform: translateX(2px);
}
.tn-search__result-text {
  flex: 1;
  min-width: 0;
}
.tn-search__result-title {
  display: block;
  font-family: "DM Serif Display", serif;
  font-size: 0.95rem;
  font-weight: 400;
  color: #1a1118;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tn-search__result-snippet {
  font-family: "DM Sans", sans-serif;
  font-size: 0.8rem;
  color: #6b7280;
  line-height: 1.45;
  margin-top: 0.2rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tn-search__result-relevance {
  flex-shrink: 0;
  font-family: "DM Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  color: #5e077a;
  background: rgba(94, 7, 122, 0.08);
  padding: 0.2rem 0.5rem;
  border-radius: 12px;
  letter-spacing: 0.02em;
}
.tn-search__result-arrow {
  flex-shrink: 0;
  color: #90BAB5;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

/* Footer */
.tn-search__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 1.25rem;
  border-top: 1px solid rgba(94, 7, 122, 0.08);
  background: rgba(94, 7, 122, 0.02);
}
.tn-search__hint {
  font-family: "DM Sans", sans-serif;
  font-size: 0.7rem;
  color: #9ca3af;
}
.tn-search__hint kbd {
  display: inline-block;
  padding: 0.1rem 0.35rem;
  font-family: "DM Sans", sans-serif;
  font-size: 0.65rem;
  color: #6b7280;
  background: rgba(26, 17, 24, 0.05);
  border: 1px solid rgba(26, 17, 24, 0.1);
  border-radius: 3px;
  font-weight: 500;
}
.tn-search__badge {
  font-family: "DM Sans", sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #90BAB5;
}

/* Loading state */
.tn-search__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 2rem 1rem;
  font-family: "DM Sans", sans-serif;
  font-size: 0.85rem;
  color: #9ca3af;
}
.tn-search__spinner {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(94, 7, 122, 0.15);
  border-top-color: #5e077a;
  border-radius: 50%;
  animation: tn-search-spin 0.7s linear infinite;
}
@keyframes tn-search-spin {
  to { transform: rotate(360deg); }
}

/* Empty state */
.tn-search__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 2rem 1rem;
  text-align: center;
  color: #9ca3af;
}
.tn-search__empty svg {
  opacity: 0.4;
}
.tn-search__empty p {
  font-family: "DM Sans", sans-serif;
  font-size: 0.9rem;
  color: #6b7280;
  margin: 0;
}
.tn-search__empty strong {
  color: #1a1118;
}
.tn-search__empty span {
  font-family: "DM Sans", sans-serif;
  font-size: 0.75rem;
  color: #9ca3af;
}

/* Mobile adjustments */
@media (max-width: 600px) {
  #tn-search-overlay {
    padding-top: 5vh;
  }
  .tn-search__container {
    width: 95%;
    border-radius: 12px;
  }
  .tn-search__input {
    font-size: 1rem;
  }
  .tn-search__kbd {
    display: none;
  }
}

/* =============================================================
   COMPLIANZ COOKIE BANNER — hide unconfigured links
   ============================================================= */
/* Keep banner anchored to viewport edge so it does not float mid-page over key UI */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
    position: fixed !important;
    right: auto !important;
    left: 16px !important;
    bottom: 16px !important;
    top: auto !important;
    max-width: min(420px, calc(100vw - 32px)) !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-height: min(64vh, 520px) !important;
    overflow-y: auto !important;
    z-index: 10002 !important;
}

@media (max-width: 640px) {
    #cmplz-cookiebanner-container .cmplz-cookiebanner {
        right: 10px !important;
        left: 10px !important;
        bottom: 10px !important;
        width: auto !important;
        max-width: none !important;
        max-height: 42vh !important;
    }
}

/* Keep the "manage consent" button predictable and away from right-side floating controls */
#cmplz-manage-consent {
    position: fixed !important;
    left: 12px !important;
    right: auto !important;
    bottom: 92px !important;
    z-index: 10001 !important;
}

/* Cookie banner is anchored left; keep right-side controls visible. */

/* Accessibility: visible focus ring on cookie controls (Complianz styles default to minimal/no outline) */
#cmplz-cookiebanner-container .cmplz-cookiebanner a:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner button:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner [role="button"]:focus-visible,
#cmplz-manage-consent a:focus-visible,
#cmplz-manage-consent button:focus-visible,
#cmplz-manage-consent [role="button"]:focus-visible {
    outline: 3px solid var(--tn-teal, #90BAB5) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 4px rgba(94, 7, 122, 0.18) !important;
    border-radius: 10px !important;
}

/* Impressum is a German legal requirement — not applicable for US-only site */
.cmplz-link.impressum {
    display: none !important;
}

/* TCF vendor management — only relevant when TCF is active (it's not) */
.cmplz-manage-vendors.tcf {
    display: none !important;
}

/* =============================================================
   22. BLOG ARCHIVE — card grid, filter bar, featured post
   ============================================================= */

/* Filter bar */
.tn-blog-filter {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 24px 0;
}

.tn-blog-filter__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tn-blog-filter__pill {
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 500;
    padding: 6px 14px;
    border: 1px solid #e0d5e3;
    border-radius: 20px;
    background: #fff;
    color: #666;
    cursor: pointer;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tn-blog-filter__pill:hover {
    border-color: var(--tn-purple);
    color: var(--tn-purple);
    background: var(--tn-lavender);
}

.tn-blog-filter__pill--active {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
}

.tn-blog-filter__pill--active:hover {
    background: var(--tn-purple);
    color: #fff;
}

.tn-blog-filter__pill:focus-visible {
    outline: 2px solid var(--tn-teal);
    outline-offset: 2px;
}

/* Pill count badge */
.tn-blog-filter__count {
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    padding: 1px 6px;
    min-width: 16px;
    text-align: center;
    display: inline-block;
}

.tn-blog-filter__pill--active .tn-blog-filter__count {
    background: rgba(255, 255, 255, 0.25);
}

/* Disabled pill (zero count from disjunctive faceting) */
.tn-blog-filter__pill--disabled {
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

/* Screen reader announcement region */
.tn-blog-sr-status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* =============================================================
   22c. BLOG TIMELINE SLIDER
   ============================================================= */
#tn-blog-timeline {
    max-width: 1100px;
    margin: 0 auto;
    padding: 16px 24px 4px;
}

#tn-blog-timeline .tn-tl-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border: 1px solid #e2e0e8;
    border-radius: 10px;
    padding: 0.7rem 1.25rem;
}

#tn-blog-timeline .tn-tl-dates {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
    font-family: var(--tn-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--tn-dark);
    white-space: nowrap;
}

#tn-blog-timeline .tn-tl-sep {
    color: #94a3b8;
    margin: 0 0.15rem;
}

#tn-blog-timeline .tn-tl-slider {
    flex: 1;
    position: relative;
    height: 24px;
    min-width: 200px;
}

#tn-blog-timeline .tn-tl-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 4px;
    background: #e2e0e8;
    border-radius: 2px;
}

#tn-blog-timeline .tn-tl-range {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 6px;
    background: var(--tn-purple);
    border-radius: 3px;
    cursor: grab;
}

#tn-blog-timeline .tn-tl-range:active {
    cursor: grabbing;
}

#tn-blog-timeline .tn-tl-thumb {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    height: 16px;
    background: #fff;
    border: 2px solid var(--tn-purple);
    border-radius: 50%;
    cursor: grab;
    z-index: 2;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    transition: transform 0.1s;
}

#tn-blog-timeline .tn-tl-thumb:hover {
    transform: translate(-50%, -50%) scale(1.25);
}

#tn-blog-timeline .tn-tl-thumb:active {
    cursor: grabbing;
}

#tn-blog-timeline .tn-tl-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

#tn-blog-timeline .tn-tl-presets {
    display: flex;
    gap: 0.25rem;
}

#tn-blog-timeline .tn-tl-presets button {
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.25rem 0.5rem;
    border: none;
    border-radius: 4px;
    background: none;
    color: #475569;
    cursor: pointer;
    transition: background 0.15s;
}

#tn-blog-timeline .tn-tl-presets button:hover {
    background: #f1f5f9;
}

#tn-blog-timeline .tn-tl-preset--active {
    background: #f1f5f9 !important;
    color: var(--tn-purple) !important;
    font-weight: 600 !important;
}

#tn-blog-timeline .tn-tl-count {
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 500;
    color: #64748b;
    white-space: nowrap;
}

/* Featured post (first post, full-width) */
.tn-blog-featured {
    max-width: 1100px;
    margin: 32px auto 0;
    padding: 0 24px;
}

.tn-blog-featured__inner {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 0;
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(94, 7, 122, 0.08);
    transition: transform 0.2s, box-shadow 0.2s;
    min-height: 300px;
    position: relative;
}

.tn-blog-featured__inner:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.15);
}

.tn-blog-featured__image {
    position: relative;
    overflow: hidden;
}

.tn-blog-featured__image img {
    width: 100%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
    border-radius: 10px 0 0 10px;
}

.tn-blog-featured__image-fallback {
    width: 100%;
    height: 100%;
    min-height: 280px;
    background: linear-gradient(135deg, var(--tn-dark) 0%, var(--tn-purple) 100%);
    border-radius: 10px 0 0 10px;
}

.tn-blog-featured__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    padding: 4px 12px;
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    border-radius: 4px;
    text-transform: uppercase;
}

.tn-blog-featured__content {
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tn-blog-featured__title {
    font-family: var(--tn-font-display);
    font-size: 1.35rem;
    line-height: 1.3;
    margin: 8px 0 0;
}

.tn-blog-featured__title a {
    text-decoration: none;
    color: var(--tn-purple);
    transition: color 0.2s;
}

.tn-blog-featured__title a:hover {
    color: #3d7a74;
}

.tn-blog-featured__meta {
    font-size: 0.78rem;
    color: #3d7a74;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.tn-blog-featured__excerpt {
    font-size: 0.92rem;
    color: #555;
    line-height: 1.55;
    margin-top: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Post card grid */
.tn-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1100px;
    margin: 32px auto 0;
    padding: 0 24px 64px;
}

.tn-blog-card {
    display: flex;
    flex-direction: column;
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 2px 8px rgba(94, 7, 122, 0.08);
    transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
}

.tn-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.15);
}

/* Filter animation */
.tn-blog-card[hidden] {
    display: none;
}

.tn-blog-featured[hidden] {
    display: none;
}

/* Empty state when filter has no matching posts */
.tn-blog-empty {
    max-width: 1100px;
    margin: 48px auto;
    padding: 0 24px;
    text-align: center;
    color: #666;
    font-size: 1rem;
}

.tn-blog-empty[hidden] {
    display: none;
}

.tn-blog-empty a {
    color: var(--tn-purple);
    text-decoration: underline;
}

.tn-blog-empty__reset {
    background: none;
    border: none;
    color: var(--tn-purple);
    text-decoration: underline;
    cursor: pointer;
    font-size: 1rem;
    font-family: var(--tn-font-body);
}

.tn-blog-card__image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 10px 10px 0 0;
    display: block;
}

.tn-blog-card__image-fallback {
    width: 100%;
    height: 180px;
    background: linear-gradient(135deg, var(--tn-dark) 0%, var(--tn-purple) 100%);
    border-radius: 10px 10px 0 0;
}

.tn-blog-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 12px 16px 16px;
}


/* Category pill on cards — small, muted, uppercase */
.tn-blog-card__category {
    display: inline-block;
    padding: 2px 8px;
    background: var(--tn-lavender);
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    font-family: var(--tn-font-body);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
}

/* Override parent theme h3 (1.72em) inside entry-content */
.tn-blog-card__title,
.tn-blog-card__title h3 {
    font-family: var(--tn-font-display) !important;
    font-size: 1rem !important;
    font-weight: 600;
    line-height: 1.3 !important;
    margin: 8px 0 0 !important;
}

.tn-blog-card__title a {
    text-decoration: none;
    color: var(--tn-purple);
    transition: color 0.2s;
}

.tn-blog-card__title a:hover {
    color: #3d7a74;
}

.tn-blog-card__meta {
    font-size: 0.78rem;
    color: #3d7a74;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.tn-blog-card__meta span[aria-hidden="true"] {
    opacity: 0.5;
}

.tn-blog-card__excerpt {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.55;
    margin-top: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Single post: full-width layout (no sidebar) */
.single-post.no-sidebar .site-content .content-area,
.single-post.no-sidebar #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}
.single-post.no-sidebar #secondary {
    display: none !important;
}

/* =============================================================
   22a. SINGLE POST — meta bar + related posts
   ============================================================= */

.tn-blog-post-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e8e0eb;
}

.tn-blog-post-meta__read-time {
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 500;
    color: #3d7a74;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* =============================================================
   BLOG POST CTA CARD — contextual services CTA between content & related
   ============================================================= */
.tn-blog-cta {
    position: relative;
    margin: 56px 0 0;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(135deg, #1a0a20 0%, #2d1238 50%, #1a0a20 100%);
    box-shadow:
        0 4px 24px rgba(94, 7, 122, 0.15),
        0 1px 3px rgba(0, 0, 0, 0.1);
}

/* Teal accent bar at top */
.tn-blog-cta__accent {
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, var(--tn-teal) 20%, var(--tn-teal) 80%, transparent 100%);
    opacity: 0.7;
}

.tn-blog-cta__inner {
    padding: 44px 40px 48px;
    text-align: center;
}

.tn-blog-cta__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.55rem;
    color: #fff;
    margin: 0 0 12px;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.tn-blog-cta__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.65);
    margin: 0 auto 32px;
    max-width: 440px;
    line-height: 1.65;
}

.tn-blog-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 32px;
    background: var(--tn-purple);
    color: #fff !important;
    font-family: var(--tn-font-body) !important;
    font-size: 0.93rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 10px;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 2px 12px rgba(94, 7, 122, 0.25);
}

.tn-blog-cta__btn:hover {
    background: #7a1a9e;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(94, 7, 122, 0.35);
    text-decoration: none;
}

.tn-blog-cta__btn span {
    display: inline-block;
    transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    font-size: 1.1em;
}

.tn-blog-cta__btn:hover span {
    transform: translateX(5px);
}

/* Mobile adjustments */
@media (max-width: 600px) {
    .tn-blog-cta {
        margin: 40px -16px 0;
        border-radius: 0;
    }

    .tn-blog-cta__inner {
        padding: 36px 24px 40px;
    }

    .tn-blog-cta__heading {
        font-size: 1.35rem;
    }

    .tn-blog-cta__text {
        font-size: 0.9rem;
        margin-bottom: 28px;
    }

    .tn-blog-cta__btn {
        padding: 13px 28px;
        font-size: 0.9rem;
        width: 100%;
        justify-content: center;
    }
}

/* When CTA is followed by related posts, remove the related border-top
   since the dark card already provides visual separation */
.tn-blog-cta + .tn-related-posts {
    border-top: none;
    margin-top: 40px;
    padding-top: 0;
}

.tn-related-posts {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid #e8e0eb;
}

.tn-related-posts__heading {
    font-family: var(--tn-font-display);
    font-size: 1.4rem;
    color: var(--tn-purple);
    margin-bottom: 24px;
}

.tn-blog-grid--related {
    padding-bottom: 0;
    margin-top: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .tn-blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .tn-blog-featured__inner {
        grid-template-columns: 1fr;
    }

    .tn-blog-featured__image img {
        border-radius: 10px 10px 0 0;
        min-height: 200px;
        height: 200px;
    }

    .tn-blog-featured__image-fallback {
        border-radius: 10px 10px 0 0;
        min-height: 200px;
        height: 200px;
    }

    /* Timeline slider: stack on mobile */
    #tn-blog-timeline .tn-tl-bar {
        flex-wrap: wrap;
    }

    #tn-blog-timeline .tn-tl-dates {
        order: 1;
    }

    #tn-blog-timeline .tn-tl-right {
        order: 2;
        margin-left: auto;
    }

    #tn-blog-timeline .tn-tl-slider {
        order: 3;
        flex-basis: 100%;
        min-width: 0;
    }

    #tn-blog-timeline .tn-tl-thumb {
        width: 20px;
        height: 20px;
    }

}

@media (max-width: 480px) {
    .tn-blog-grid {
        grid-template-columns: 1fr;
    }

    .tn-blog-filter__inner {
        gap: 6px;
    }

    .tn-blog-filter__pill {
        font-size: 0.72rem;
        padding: 5px 10px;
        min-height: 44px;
        min-width: 44px;
    }

    .tn-blog-grid--related {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   23. 404 PAGE — astronaut scene, animations, content promotion
   ============================================================= */

/* Scene container */
.tn-404__scene {
    position: relative;
    width: 260px;
    height: 220px;
    margin: 0 auto 28px;
}

/* Astronaut — main figure */
.tn-404__astronaut {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-8deg);
    animation: tn-bob 5s ease-in-out infinite;
    z-index: 2;
}

/* Helmet */
.tn-404__helmet {
    width: 40px;
    height: 40px;
    background: #e8e0eb;
    border-radius: 50%;
    position: relative;
    margin: 0 auto;
    border: 2px solid #ccc4cf;
    z-index: 3;
}

.tn-404__visor {
    position: absolute;
    top: 8px;
    left: 6px;
    width: 26px;
    height: 20px;
    background: linear-gradient(135deg, #1a1118 30%, var(--tn-purple) 90%);
    border-radius: 50% 50% 45% 45%;
    overflow: hidden;
}

.tn-404__visor::after {
    content: '';
    position: absolute;
    top: 4px;
    right: 4px;
    width: 6px;
    height: 6px;
    background: rgba(144, 186, 181, 0.5);
    border-radius: 50%;
}

/* Body */
.tn-404__body {
    width: 36px;
    height: 44px;
    background: linear-gradient(180deg, #e8e0eb 0%, #d0c8d4 100%);
    border-radius: 8px 8px 6px 6px;
    margin: -2px auto 0;
    position: relative;
    border: 2px solid #ccc4cf;
}

/* Backpack */
.tn-404__pack {
    position: absolute;
    right: -12px;
    top: 50px;
    width: 14px;
    height: 24px;
    background: #bbb4bf;
    border-radius: 3px;
    border: 1px solid #a8a0ac;
}

/* Arms */
.tn-404__arm {
    width: 10px;
    height: 30px;
    background: #e8e0eb;
    border-radius: 5px;
    position: absolute;
    border: 1px solid #ccc4cf;
}

.tn-404__arm--left {
    left: 50%;
    top: 46px;
    margin-left: -26px;
    transform: rotate(25deg);
    transform-origin: top center;
}

.tn-404__arm--right {
    left: 50%;
    top: 46px;
    margin-left: 14px;
    transform: rotate(-30deg);
    transform-origin: top center;
    animation: tn-wave 3s ease-in-out infinite;
}

/* Legs */
.tn-404__leg {
    width: 12px;
    height: 28px;
    background: #e8e0eb;
    border-radius: 5px;
    position: absolute;
    border: 1px solid #ccc4cf;
}

.tn-404__leg--left {
    left: 50%;
    top: 84px;
    margin-left: -16px;
    transform: rotate(8deg);
}

.tn-404__leg--right {
    left: 50%;
    top: 84px;
    margin-left: 2px;
    transform: rotate(-12deg);
}

/* Tether line */
.tn-404__tether {
    position: absolute;
    top: 75px;
    left: 50%;
    margin-left: 28px;
    width: 60px;
    height: 40px;
    border: 2px solid rgba(144, 186, 181, 0.3);
    border-radius: 0 0 50% 0;
    border-top: none;
    border-left: none;
    z-index: 1;
}

/* Planet */
.tn-404__planet {
    position: absolute;
    top: 10px;
    right: 15px;
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, var(--tn-purple) 30%, #3d7a74 100%);
    border-radius: 50%;
    animation: tn-float 6s ease-in-out infinite;
    z-index: 1;
}

.tn-404__planet-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 70px;
    height: 18px;
    border: 2px solid rgba(144, 186, 181, 0.4);
    border-radius: 50%;
    transform: translate(-50%, -50%) rotateX(65deg);
}

/* Stars */
.tn-404__star {
    position: absolute;
    width: 4px;
    height: 4px;
    background: var(--tn-teal);
    border-radius: 50%;
    opacity: 0.7;
}

.tn-404__star--1 { top: 20px;  left: 30px;  animation: tn-twinkle 3s ease-in-out infinite 0s; }
.tn-404__star--2 { top: 55px;  left: 10px;  animation: tn-twinkle 4s ease-in-out infinite 0.5s; width: 3px; height: 3px; }
.tn-404__star--3 { top: 140px; left: 25px;  animation: tn-twinkle 3.5s ease-in-out infinite 1s; }
.tn-404__star--4 { top: 170px; right: 40px; animation: tn-twinkle 4s ease-in-out infinite 1.5s; width: 3px; height: 3px; }
.tn-404__star--5 { top: 30px;  left: 120px; animation: tn-twinkle 3s ease-in-out infinite 0.8s; width: 5px; height: 5px; }
.tn-404__star--6 { top: 190px; left: 80px;  animation: tn-twinkle 5s ease-in-out infinite 2s; }

/* Animations */
@keyframes tn-bob {
    0%, 100% { transform: translate(-50%, -50%) rotate(-8deg) translateY(0); }
    50%      { transform: translate(-50%, -50%) rotate(-3deg) translateY(-14px); }
}

@keyframes tn-wave {
    0%, 100% { transform: rotate(-30deg); }
    50%      { transform: rotate(-50deg); }
}

@keyframes tn-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}

@keyframes tn-twinkle {
    0%, 100% { opacity: 0.7; transform: scale(1); }
    50%      { opacity: 0.2; transform: scale(0.6); }
}

/* Content promotion section */
.tn-404__posts {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px 64px;
}

.tn-404__posts-heading {
    font-family: var(--tn-font-display);
    font-size: 1.4rem;
    color: var(--tn-purple);
    text-align: center;
    margin: 0 0 28px;
}

/* Responsive */
@media (max-width: 768px) {
    .tn-404__scene {
        width: 200px;
        height: 180px;
        margin-bottom: 20px;
    }

    .tn-404__planet {
        width: 34px;
        height: 34px;
        right: 5px;
    }

    .tn-404__planet-ring {
        width: 54px;
        height: 14px;
    }

    .tn-404__tether {
        width: 40px;
        height: 30px;
    }
}

@media (max-width: 480px) {
    .tn-404__scene {
        width: 180px;
        height: 160px;
    }

    .tn-404__posts {
        padding: 32px 16px 48px;
    }
}

/* =============================================================
   24. METHODOLOGY PAGES — hub + 4 step pages (Plan 013)
   ============================================================= */

/* ── 24A. Methodology Hub — timeline visualization ── */
.tn-meth-hub {
    max-width: 1100px;
    margin: 0 auto;
    padding: 56px 24px 64px;
    text-align: center;
}

.tn-meth-hub__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 12px;
    letter-spacing: -0.3px;
}

.tn-meth-hub__subtitle {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: #666;
    line-height: 1.6;
    margin: 0 0 48px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.tn-meth-hub__timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    position: relative;
}

.tn-meth-hub__timeline::before {
    content: '';
    position: absolute;
    top: 32px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: linear-gradient(to right, var(--tn-purple), var(--tn-teal));
    opacity: 0.25;
    z-index: 0;
}

.tn-meth-hub__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    color: inherit;
    padding: 16px;
    border-radius: 12px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tn-meth-hub__step:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(94, 7, 122, 0.12);
    background: #fff;
}

.tn-meth-hub__step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--tn-lavender);
    border: 2px solid rgba(94, 7, 122, 0.2);
    font-family: var(--tn-font-display) !important;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--tn-purple);
    margin-bottom: 16px;
    transition: all 0.25s;
}

.tn-meth-hub__step:hover .tn-meth-hub__step-number {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    box-shadow: 0 6px 20px rgba(94, 7, 122, 0.25);
}

.tn-meth-hub__step-title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 8px;
}

.tn-meth-hub__step-text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.85rem;
    color: #666;
    line-height: 1.6;
    margin: 0 0 12px;
}

.tn-meth-hub__step-link {
    font-family: var(--tn-font-body) !important;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
}

.tn-meth-hub__step-link:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .tn-meth-hub__timeline {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .tn-meth-hub__timeline::before {
        display: none;
    }
    .tn-meth-hub {
        padding: 32px 20px 40px;
    }
}

@media (max-width: 480px) {
    .tn-meth-hub__timeline {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .tn-meth-hub__step {
        flex-direction: row;
        text-align: left;
        gap: 16px;
        padding: 12px;
    }
    .tn-meth-hub__step-number {
        width: 48px;
        height: 48px;
        min-width: 48px;
        font-size: 0.9rem;
        margin-bottom: 0;
    }
    .tn-meth-hub__step-title {
        font-size: 1rem;
    }
    .tn-meth-hub__step-text {
        font-size: 0.8rem;
        margin-bottom: 4px;
    }
    .tn-meth-hub {
        padding: 24px 16px 32px;
    }
    .tn-meth-hub__heading {
        font-size: 1.3rem;
    }
}

/* ── 24B. Methodology Step Pages ── */
.tn-meth-step {
    max-width: 1000px;
    margin: 0 auto;
    padding: 36px 24px;
}

.tn-meth-step__section-heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 20px;
    letter-spacing: -0.3px;
}

.tn-meth-step__phase-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tn-meth-step__phase-list li {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: #444;
    line-height: 1.6;
    padding: 8px 0 8px 28px;
    position: relative;
    border-bottom: 1px solid #f0eaf2;
}

.tn-meth-step__phase-list li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: var(--tn-purple);
    font-weight: 600;
    opacity: 0.7;
}

.tn-meth-step__phase-list li:last-child {
    border-bottom: none;
}

/* Outcomes section — lavender band */
.tn-meth-step__outcomes {
    background: var(--tn-lavender);
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    padding: 36px 24px;
    margin: 0;
}

.tn-meth-step__outcomes-inner {
    max-width: 1000px;
    margin: 0 auto;
}

.tn-meth-step__outcomes-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 24px;
}

.tn-meth-step__outcome {
    background: #fff;
    border: 1px solid #e8e0eb;
    border-radius: 10px;
    padding: 24px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tn-meth-step__outcome:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(94, 7, 122, 0.08);
}

.tn-meth-step__outcome-title {
    font-family: var(--tn-font-display) !important;
    font-size: 1rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 12px;
}

.tn-meth-step__outcome-text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    color: #666;
    line-height: 1.6;
    margin: 0;
}

/* Step navigation */
.tn-meth-step__nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 0;
    border-top: 1px solid #e8e0eb;
    margin-top: 32px;
}

.tn-meth-step__nav-link {
    font-family: var(--tn-font-body) !important;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.2s;
}

.tn-meth-step__nav-link:hover {
    opacity: 0.7;
}

.tn-meth-step__nav-link--next {
    margin-left: auto;
}

@media (max-width: 768px) {
    .tn-meth-step__outcomes-grid {
        grid-template-columns: 1fr;
    }
    .tn-meth-step {
        padding: 28px 20px;
    }
    .tn-meth-step__outcomes {
        padding: 28px 20px;
        margin: 24px 0;
    }
}

@media (max-width: 480px) {
    .tn-meth-step {
        padding: 24px 16px;
    }
    .tn-meth-step__section-heading {
        font-size: 1.15rem;
    }
    .tn-meth-step__phase-list li {
        font-size: 0.88rem;
        padding: 8px 0 8px 24px;
    }
    .tn-meth-step__outcome {
        padding: 16px;
    }
    .tn-meth-step__nav {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
    .tn-meth-step__nav-link {
        justify-content: center;
        padding: 12px;
        min-height: 44px;
        border: 1px solid rgba(94, 7, 122, 0.2);
        border-radius: 8px;
    }
    .tn-meth-step__nav-link--next {
        margin-left: 0;
    }
}

/* ── 24C. Gated Resource Widget ── */
.tn-gated {
    background: linear-gradient(135deg, var(--tn-lavender) 0%, #fff 100%);
    border: 1px solid #e8e0eb;
    border-radius: 12px;
    padding: 36px 32px;
    text-align: center;
    max-width: 560px;
    margin: 40px auto;
}

.tn-gated__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tn-gated__icon {
    color: var(--tn-purple);
    margin-bottom: 16px;
    opacity: 0.8;
}

.tn-gated__title {
    font-family: var(--tn-font-display) !important;
    font-size: 1.15rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 8px;
}

.tn-gated__desc {
    font-family: var(--tn-font-body) !important;
    font-size: 0.9rem;
    color: #666;
    line-height: 1.6;
    margin: 0 0 20px;
    max-width: 420px;
}

.tn-gated__form {
    display: flex;
    gap: 8px;
    width: 100%;
    max-width: 420px;
}

.tn-gated__input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid #d4cad8;
    border-radius: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.9rem;
    color: #333;
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
}

.tn-gated__input:focus {
    border-color: var(--tn-purple);
    box-shadow: 0 0 0 3px rgba(94, 7, 122, 0.1);
}

.tn-gated__input::placeholder {
    color: #aaa;
}

.tn-gated__submit {
    padding: 12px 20px;
    background: var(--tn-purple);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    white-space: nowrap;
    min-height: 44px;
}

.tn-gated__submit:hover {
    background: #4a0660;
}

.tn-gated__submit:active {
    transform: scale(0.97);
}

.tn-gated__submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.tn-gated__feedback {
    font-family: var(--tn-font-body) !important;
    font-size: 0.85rem;
    color: #c0392b;
    margin-top: 8px;
    min-height: 20px;
}

.tn-gated__success {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tn-gated__success .tn-gated__icon {
    color: var(--tn-teal);
}

.tn-gated__download {
    display: inline-flex;
    align-items: center;
    padding: 14px 28px;
    background: var(--tn-purple);
    color: #fff;
    border-radius: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, transform 0.1s;
    min-height: 44px;
    margin-top: 12px;
}

.tn-gated__download:hover {
    background: #4a0660;
    color: #fff;
}

@media (max-width: 480px) {
    .tn-gated {
        padding: 24px 16px;
        margin: 24px auto;
    }
    .tn-gated__form {
        flex-direction: column;
    }
    .tn-gated__submit {
        width: 100%;
    }
    .tn-gated__title {
        font-size: 1.05rem;
    }
}

/* ── 24D. Homepage "A Proven Approach" Teaser ── */
.tn-approach {
    max-width: 1100px;
    margin: 16px auto 52px;
    padding: 54px 28px 40px;
    text-align: center;
    border: 1px solid #ece4ef;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #faf7fb 100%);
    box-shadow: 0 16px 40px rgba(26, 17, 24, 0.05);
}

.tn-approach__heading {
    font-family: var(--tn-font-display) !important;
    font-size: 1.62rem;
    font-weight: 400;
    color: var(--tn-purple);
    margin: 0 0 12px;
    letter-spacing: -0.2px;
}

.tn-approach__text {
    font-family: var(--tn-font-body) !important;
    font-size: 0.95rem;
    color: #786f80;
    margin: 0 auto 32px;
    max-width: 620px;
    line-height: 1.62;
}

.tn-approach__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 28px;
    position: relative;
    align-items: stretch;
}

.tn-approach__steps::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(
        90deg,
        rgba(94, 7, 122, 0.12) 0%,
        rgba(94, 7, 122, 0.34) 50%,
        rgba(94, 7, 122, 0.12) 100%
    );
    z-index: 0;
}

.tn-approach__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-decoration: none;
    color: inherit;
    padding: 14px 12px 16px;
    border-radius: 12px;
    border: 1px solid #ece4ef;
    background: #fff;
    min-height: 156px;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.tn-approach__step,
.tn-approach__step:hover,
.tn-approach__step:focus {
    text-decoration: none !important;
}

.tn-approach__step:hover {
    transform: translateY(-4px);
    border-color: rgba(94, 7, 122, 0.24);
    background: #fff;
    box-shadow: 0 10px 24px rgba(94, 7, 122, 0.08);
}

.tn-approach__step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid rgba(94, 7, 122, 0.15);
    font-family: var(--tn-font-display) !important;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--tn-purple);
    margin-bottom: 14px;
    box-shadow: 0 4px 10px rgba(94, 7, 122, 0.08);
    transition: all 0.2s;
}

.tn-approach__step:hover .tn-approach__step-number {
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
    box-shadow: 0 8px 18px rgba(94, 7, 122, 0.24);
}

.tn-approach__step-title {
    font-family: var(--tn-font-display) !important;
    font-size: 0.98rem;
    font-weight: 600;
    color: #2c2430;
    line-height: 1.35;
    margin: 0;
    text-decoration: none !important;
}

.tn-approach__step-desc {
    margin-top: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.78rem;
    color: #6f6475;
    line-height: 1.42;
    max-width: 210px;
}

.tn-approach__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--tn-font-body) !important;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
    padding: 10px 18px;
    border: 1px solid #ddd0e3;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(26, 17, 24, 0.04);
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.tn-approach__actions .tn-approach__cta:first-child {
    background: var(--tn-purple);
    border-color: var(--tn-purple);
    color: #fff;
    box-shadow: 0 8px 18px rgba(94, 7, 122, 0.2);
}

.tn-approach__actions .tn-approach__cta:first-child:hover {
    background: #4d0663;
    border-color: #4d0663;
    color: #fff;
}

.tn-approach__actions {
    margin-top: 4px;
    display: flex;
    gap: 0.82rem;
    flex-wrap: wrap;
    justify-content: center;
}

.tn-approach__cta--secondary {
    color: #3d3551;
    border-color: #d7cfe0;
}

.tn-approach__cta:hover {
    text-decoration: none;
    transform: translateY(-2px);
    background: var(--tn-purple);
    color: #fff;
    border-color: var(--tn-purple);
}

.tn-approach__cta--secondary:hover {
    background: #3d3551;
    color: #fff;
    border-color: #3d3551;
}

@media (max-width: 768px) {
    .tn-approach__steps::before {
        display: none;
    }

    .tn-approach__steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .tn-approach {
        padding: 36px 20px 30px;
        border-radius: 14px;
    }

    .tn-approach__step {
        min-height: 164px;
    }

    .tn-approach__step-desc {
        font-size: 0.74rem;
        max-width: 180px;
    }
}

@media (max-width: 480px) {
    .tn-approach__steps::before {
        display: none;
    }

    .tn-approach__steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .tn-approach__step-number {
        width: 40px;
        height: 40px;
        font-size: 0.82rem;
    }

    .tn-approach__step-title {
        font-size: 0.84rem;
    }

    .tn-approach__step {
        min-height: 174px;
        padding: 14px 10px 14px;
    }

    .tn-approach__step-desc {
        margin-top: 7px;
        font-size: 0.71rem;
        max-width: 150px;
        line-height: 1.35;
    }

    .tn-approach {
        padding: 28px 16px 78px;
        margin-bottom: 46px;
    }

    .tn-approach__actions {
        gap: 0.5rem;
        width: 100%;
    }

    .tn-approach__cta {
        width: min(286px, 100%);
        justify-content: space-between;
        font-size: 0.82rem;
        padding: 10px 16px;
    }

    .back-to-top,
    .scroll-to-top,
    #back-to-top {
        bottom: 8rem !important;
        right: 0 !important;
        min-width: 44px !important;
        min-height: 44px !important;
        width: 44px !important;
        height: 44px !important;
    }
}

/* ── 24E. Services Page "Learn More" Links ── */
.tn-methodology__step-link {
    display: inline-block;
    font-family: var(--tn-font-body) !important;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--tn-purple);
    text-decoration: none;
    margin-top: 10px;
    transition: opacity 0.2s;
}

.tn-methodology__step-link:hover {
    text-decoration: underline;
    opacity: 0.8;
}

/* =============================================================
   MOBILE 375px — Narrow phone fixes (Plan 012 Phase 2)
   ============================================================= */
@media (max-width: 375px) {

    /* ── Service pillar cards: prevent title truncation ── */
    .tn-service-pillar__title {
        font-size: 1rem;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .tn-service-pillar__text {
        font-size: 0.82rem;
    }

    .tn-service-pillar__includes li {
        font-size: 0.72rem;
        white-space: normal;
        word-break: break-word;
    }

    .tn-service-pillar {
        padding: 14px 12px;
    }

    /* ── Homepage "How I Help" cards ── */
    .tn-help-card {
        padding: 14px 12px;
    }

    .tn-help-card__title {
        font-size: 0.95rem;
        word-wrap: break-word;
    }

    .tn-help-card__text {
        font-size: 0.82rem;
    }

    /* ── Floating buttons: stagger vertically ── */
    #tn-chatbot {
        bottom: 1rem;
        right: 1rem;
    }

    .tn-chatbot__trigger {
        width: 52px;
        height: 52px;
    }

    .back-to-top,
    .scroll-to-top,
    #back-to-top {
        bottom: 5.2rem !important;
        right: 0 !important;
        min-width: 44px !important;
        min-height: 44px !important;
        width: 44px !important;
        height: 44px !important;
    }

    /* Ensure back-to-top arrow icon is visible */
    .back-to-top svg,
    .scroll-to-top svg,
    #back-to-top svg,
    .back-to-top i,
    .scroll-to-top i,
    #back-to-top i {
        font-size: 18px !important;
        width: 18px !important;
        height: 18px !important;
    }

    /* ── Hero text: prevent overflow ── */
    .tn-page-hero__heading {
        font-size: 1.6rem;
        word-wrap: break-word;
    }

    .tn-page-hero__text {
        font-size: 0.88rem;
    }

    /* ── Blog cards: prevent cramped text ── */
    .tn-blog-card__title {
        font-size: 0.9rem;
    }

    .tn-blog-card__excerpt {
        font-size: 0.78rem;
    }

    .tn-blog-featured__title {
        font-size: 1.1rem;
    }

    /* ── Methodology steps: tighter spacing ── */
    .tn-methodology__step-title {
        font-size: 0.95rem;
    }

    .tn-methodology__step-text {
        font-size: 0.82rem;
    }

    /* ── Testimonials: readable at narrow width ── */
    .tn-testimonial {
        padding: 16px 12px 12px;
    }

    .tn-testimonial__text {
        font-size: 0.78rem;
    }

    /* ── Positioning strip: tighter on narrow ── */
    .tn-positioning {
        padding: 16px 16px;
    }

    .tn-positioning__text {
        font-size: 0.88rem;
    }

    /* ── Footer: tighter spacing ── */
    .tn-footer__main {
        padding: 12px 12px 8px;
    }

    .tn-footer__desc {
        font-size: 0.72rem;
    }

    /* ── Methodology hub: compact (Plan 013) ── */
    .tn-meth-hub {
        padding: 20px 12px 24px;
    }
    .tn-meth-hub__step-number {
        width: 40px;
        height: 40px;
        min-width: 40px;
        font-size: 0.82rem;
    }
    .tn-meth-hub__step-title {
        font-size: 0.9rem;
    }

    /* ── Methodology step pages (Plan 013) ── */
    .tn-meth-step {
        padding: 16px 12px;
    }
    .tn-meth-step__section-heading {
        font-size: 1.05rem;
    }
    .tn-meth-step__phase-list li {
        font-size: 0.82rem;
    }
    .tn-meth-step__outcome {
        padding: 12px;
    }
    .tn-meth-step__outcome-title {
        font-size: 0.9rem;
    }
    .tn-meth-step__outcome-text {
        font-size: 0.8rem;
    }

    /* ── Gated resource (Plan 013) ── */
    .tn-gated {
        padding: 16px 12px;
    }
    .tn-gated__title {
        font-size: 0.95rem;
    }
    .tn-gated__desc {
        font-size: 0.82rem;
    }

    /* ── Homepage approach teaser (Plan 013) ── */
    .tn-approach {
        padding: 16px 12px;
    }
    .tn-approach__heading {
        font-size: 1.2rem;
    }
    .tn-approach__step-number {
        width: 36px;
        height: 36px;
        font-size: 0.78rem;
    }
    .tn-approach__step-title {
        font-size: 0.78rem;
    }
}

/* =========================================================================
   Email Gate Modal — Access Tiering (Plan 018)
   ========================================================================= */

.tn-gate-overlay {
    position: fixed;
    inset: 0;
    z-index: 100001;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(26, 17, 24, 0.85);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    animation: tnGateFadeIn 0.2s ease;
}

@keyframes tnGateFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.tn-gate-modal {
    position: relative;
    width: 90%;
    max-width: 420px;
    background: var(--tn-dark-surface);
    border: 1px solid var(--tn-border);
    border-radius: 12px;
    padding: 2rem 1.75rem;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
    animation: tnGateSlideUp 0.25s ease;
}

@keyframes tnGateSlideUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

.tn-gate-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: none;
    border: none;
    color: var(--tn-text-muted);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
    line-height: 1;
    border-radius: 4px;
    transition: color 0.15s ease, background 0.15s ease;
}

.tn-gate-close:hover,
.tn-gate-close:focus {
    color: var(--tn-lavender);
    background: rgba(94, 7, 122, 0.15);
    outline: none;
}

.tn-gate-title {
    font-family: var(--tn-font-display);
    font-size: 1.35rem;
    color: var(--tn-lavender);
    margin: 0 0 0.5rem;
    letter-spacing: -0.01em;
}

.tn-gate-desc {
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    color: var(--tn-text-muted);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

.tn-gate-label {
    display: block;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--tn-text-muted);
    margin-bottom: 0.35rem;
    letter-spacing: 0.02em;
}

.tn-gate-input {
    width: 100%;
    padding: 0.7rem 0.85rem;
    font-family: var(--tn-font-body);
    font-size: 1rem;
    color: var(--tn-lavender);
    background: var(--tn-dark);
    border: 1px solid var(--tn-border);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
    margin-bottom: 1rem;
}

.tn-gate-input:focus {
    border-color: var(--tn-teal);
    box-shadow: 0 0 0 2px rgba(144, 186, 181, 0.2);
}

.tn-gate-input::placeholder {
    color: rgba(250, 247, 251, 0.3);
}

.tn-gate-input--code {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.3em;
    font-variant-numeric: tabular-nums;
}

.tn-gate-btn {
    width: 100%;
    padding: 0.7rem 1rem;
    font-family: var(--tn-font-body);
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    background: var(--tn-purple);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.1s ease;
    letter-spacing: 0.01em;
}

.tn-gate-btn:hover {
    background: #7a109e;
}

.tn-gate-btn:active {
    transform: scale(0.98);
}

.tn-gate-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.tn-gate-error {
    display: none;
    margin-top: 0.75rem;
    padding: 0.6rem 0.75rem;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    color: #f87171;
    background: rgba(248, 113, 113, 0.08);
    border: 1px solid rgba(248, 113, 113, 0.2);
    border-radius: 6px;
    line-height: 1.4;
}

.tn-gate-privacy {
    margin: 1rem 0 0;
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    color: var(--tn-text-muted);
    text-align: center;
    opacity: 0.7;
}

.tn-gate-back {
    display: block;
    margin: 1rem auto 0;
    background: none;
    border: none;
    color: var(--tn-teal);
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0.25rem;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tn-gate-back:hover {
    color: var(--tn-lavender);
}

.tn-gate-checkmark {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #4ade80;
    background: rgba(74, 222, 128, 0.1);
    border: 2px solid rgba(74, 222, 128, 0.3);
    border-radius: 50%;
}

/* Mobile */
@media (max-width: 480px) {
    .tn-gate-modal {
        width: 95%;
        padding: 1.5rem 1.25rem;
    }
    .tn-gate-title {
        font-size: 1.15rem;
    }
}

/* =============================================================
   AI LAB TOOLS (Model Lens, Strategy Session, Live Build)
   ============================================================= */
.tn-ai-tool {
    margin: 2.25rem 0;
    background: #fff;
    border: 1px solid #e8e0eb;
    border-radius: 16px;
    padding: 1.4rem;
    box-shadow: 0 10px 28px rgba(26, 17, 24, 0.06);
}

.tn-ai-tool__header {
    margin-bottom: 1rem;
}

.tn-ai-tool__title {
    margin: 0;
    color: var(--tn-dark);
    font-family: var(--tn-font-display);
    font-size: 1.35rem;
    line-height: 1.2;
}

.tn-ai-tool__desc {
    margin: 0.55rem 0 0;
    color: #5f5962;
    font-family: var(--tn-font-body);
    font-size: 0.93rem;
    line-height: 1.65;
}

.tn-ai-tool__noscript {
    margin-top: 0.8rem;
    color: #b91c1c;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
}

.tn-ai-form {
    display: grid;
    gap: 0.55rem;
}

.tn-ai-label {
    color: #433f45;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
    font-weight: 600;
}

.tn-ai-textarea {
    width: 100%;
    min-height: 120px;
    border: 1px solid #d9cedc;
    border-radius: 10px;
    background: #fff;
    color: #1f1a21;
    font-family: var(--tn-font-body);
    font-size: 0.92rem;
    line-height: 1.6;
    padding: 0.8rem 0.9rem;
    resize: vertical;
}

.tn-ai-input {
    width: 100%;
    border: 1px solid #d9cedc;
    border-radius: 10px;
    background: #fff;
    color: #1f1a21;
    font-family: var(--tn-font-body);
    font-size: 0.92rem;
    line-height: 1.5;
    padding: 0.72rem 0.82rem;
}

.tn-ai-input:focus {
    outline: none;
    border-color: var(--tn-purple);
    box-shadow: 0 0 0 3px rgba(94, 7, 122, 0.15);
}

.tn-ai-textarea:focus {
    outline: none;
    border-color: var(--tn-purple);
    box-shadow: 0 0 0 3px rgba(94, 7, 122, 0.15);
}

.tn-ai-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    flex-wrap: wrap;
}

.tn-ai-btn {
    border: 1px solid var(--tn-purple);
    background: var(--tn-purple);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
    font-weight: 600;
    border-radius: 9px;
    padding: 0.58rem 1rem;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.tn-ai-btn:hover {
    background: #760f96;
    box-shadow: 0 8px 20px rgba(94, 7, 122, 0.2);
    transform: translateY(-1px);
}

.tn-ai-btn--ghost {
    border-color: #d7c8de;
    background: #fff;
    color: #4b4051;
}

.tn-ai-btn--ghost:hover {
    background: #f6f0f8;
    border-color: #bfa7ca;
    color: #3f3347;
    box-shadow: none;
}

.tn-ai-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.tn-ai-remaining {
    color: #6e6573;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
}

.tn-ai-status {
    margin: 0.85rem 0 0;
    color: #57505a;
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
}

.tn-ai-status.is-loading { color: #3b82f6; }
.tn-ai-status.is-success { color: #15803d; }
.tn-ai-status.is-warning { color: #b45309; }
.tn-ai-status.is-error { color: #b91c1c; }

/* AI Lab Trace */
.tn-ai-trace-wrap {
    margin-top: 0.6rem;
}

.tn-ai-trace-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0.32rem 0.62rem;
    border: 1px solid #d7ccdc;
    border-radius: 999px;
    background: #fff;
    color: #4b4050;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tn-ai-trace-toggle:hover,
.tn-ai-trace-toggle:focus {
    border-color: #bca7c6;
    color: #3e3442;
    background: #f8f2fa;
}

.tn-ai-trace-toggle.is-active {
    border-color: #5e077a;
    background: #f4e8f8;
    color: #5e077a;
}

.tn-ai-trace {
    margin-top: 0.65rem;
    border: 1px solid #ddd2e2;
    border-radius: 10px;
    background: #fbf8fc;
    padding: 0.62rem 0.7rem;
}

.tn-ai-trace__head {
    margin: 0;
    color: #3a313e;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.7rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.tn-ai-trace__stats {
    margin-top: 0.42rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.28rem 0.52rem;
    color: #433a47;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.7rem;
}

.tn-ai-trace__status {
    margin-top: 0.44rem;
    color: #605868;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
}

.tn-ai-trace__status.is-loading { color: #2563eb; }
.tn-ai-trace__status.is-success { color: #15803d; }
.tn-ai-trace__status.is-warning { color: #b45309; }
.tn-ai-trace__status.is-error { color: #b91c1c; }

.tn-ai-trace__log {
    margin-top: 0.46rem;
    max-height: 170px;
    overflow: auto;
    border: 1px solid #ebe1ef;
    border-radius: 8px;
    background: #fff;
    padding: 0.48rem;
}

.tn-ai-trace__line {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.45rem;
    align-items: start;
    margin-bottom: 0.36rem;
}

.tn-ai-trace__line:last-child {
    margin-bottom: 0;
}

.tn-ai-trace__phase-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    padding: 0.09rem 0.34rem;
    border-radius: 999px;
    background: #eee5f2;
    color: #5a4f60;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.tn-ai-trace__line-text {
    color: #4b4450;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    line-height: 1.42;
    white-space: pre-wrap;
}

.tn-ai-trace__links {
    margin: 0.5rem 0 0;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
}

.tn-ai-trace__links a {
    color: var(--tn-purple);
    font-weight: 600;
}

.tn-ai-trace__links a:hover {
    color: #760f96;
}

/* Model Lens */
.tn-ai-grid {
    margin-top: 1.1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.8rem;
}

.tn-ai-card {
    border: 1px solid #e6dbe9;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.tn-ai-card__head {
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #ece3ef;
    background: linear-gradient(180deg, #fcf8fd, #fff);
}

.tn-ai-card__provider {
    margin: 0;
    font-family: var(--tn-font-body);
    font-size: 0.88rem;
    color: #2e2730;
}

.tn-ai-card__model {
    margin: 0.16rem 0 0;
    color: #6f6575;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.74rem;
}

.tn-ai-card__meta {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0.75rem;
    color: #5e5762;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    border-bottom: 1px solid #f1eaf3;
}

.tn-ai-card__body {
    padding: 0.72rem 0.75rem 0.82rem;
    white-space: normal;
    color: #352f38;
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
    line-height: 1.58;
}

.tn-ai-judge {
    margin-top: 1rem;
}

.tn-ai-judge__inner {
    border: 1px solid #ddd2e2;
    border-radius: 12px;
    background: linear-gradient(135deg, #f9f4fb, #f6faf9);
    padding: 0.85rem 0.95rem;
}

.tn-ai-judge__title {
    margin: 0;
    color: #2f2932;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
}

.tn-ai-judge__summary {
    margin: 0.55rem 0 0;
    color: #454048;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
    line-height: 1.6;
}

.tn-ai-judge__meta {
    margin-top: 0.6rem;
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
    color: #5f5864;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
}

.tn-ai-failures {
    margin-top: 0.7rem;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(26, 17, 24, 0.15);
}

.tn-ai-failures p {
    margin: 0;
    color: #6b2131;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
}

.tn-ai-failures ul {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
    color: #6b2131;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
}

.tn-ai-empty {
    border: 1px dashed #d6cadb;
    border-radius: 10px;
    padding: 0.8rem;
    text-align: center;
    color: #675f6d;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
}

/* Strategy Session */
.tn-ai-progress {
    margin-bottom: 0.95rem;
}

.tn-ai-progress__bar {
    height: 8px;
    border-radius: 999px;
    background: #f0e7f3;
    overflow: hidden;
}

.tn-ai-progress__bar span {
    display: block;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, #5e077a, #90bab5);
    transition: width 0.28s ease;
}

.tn-ai-progress__text {
    margin: 0.45rem 0 0;
    color: #615767;
    font-family: var(--tn-font-body);
    font-size: 0.79rem;
}

.tn-ai-chat {
    border: 1px solid #e7dceb;
    border-radius: 12px;
    background: #fefdfd;
    max-height: 340px;
    overflow: auto;
    padding: 0.7rem;
    margin-bottom: 0.85rem;
}

.tn-ai-chat__msg {
    max-width: 90%;
    margin-bottom: 0.62rem;
    padding: 0.62rem 0.72rem;
    border-radius: 10px;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.tn-ai-chat__msg--bot {
    background: #f4edf7;
    color: #322b35;
    border: 1px solid #e6d8ec;
}

.tn-ai-chat__msg--user {
    margin-left: auto;
    background: #eef7f5;
    color: #18312e;
    border: 1px solid #d5e9e4;
}

.tn-ai-output {
    margin-top: 1rem;
}

.tn-ai-roadmap,
.tn-ai-escalate {
    border: 1px solid #ddd1e3;
    border-radius: 12px;
    padding: 0.85rem;
    background: #fcfafe;
}

.tn-ai-roadmap__title {
    margin: 0;
    color: #2e2831;
    font-family: var(--tn-font-body);
    font-size: 0.88rem;
}

.tn-ai-roadmap__body {
    margin: 0.65rem 0 0;
    background: #fff;
    border: 1px solid #ece1f0;
    border-radius: 10px;
    padding: 0.7rem;
    font-family: var(--tn-font-body);
    font-size: 0.83rem;
    line-height: 1.6;
    white-space: normal;
    color: #2d2830;
}

.tn-ai-roadmap__cta {
    margin: 0.7rem 0 0;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
}

.tn-ai-roadmap__cta a,
.tn-ai-escalate a {
    color: var(--tn-purple);
    font-weight: 600;
}

.tn-ai-escalate p {
    margin: 0 0 0.45rem;
    color: #4e4652;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
}

/* Live Build */
.tn-ai-live__meta {
    margin-top: 1rem;
}

.tn-ai-live__list {
    margin: 0;
    padding-left: 1.1rem;
    color: #443d47;
    font-family: var(--tn-font-body);
    font-size: 0.83rem;
    line-height: 1.5;
}

.tn-ai-live__reasoning {
    margin-top: 0.85rem;
    border: 1px solid #e4d8ea;
    border-radius: 10px;
    background: #f9f5fb;
    padding: 0.75rem;
}

.tn-ai-live__title {
    margin: 0;
    color: #2e2931;
    font-family: var(--tn-font-body);
    font-size: 0.85rem;
}

.tn-ai-live__reasoning-body {
    margin: 0.45rem 0 0;
    color: #4a434e;
    font-family: var(--tn-font-body);
    font-size: 0.83rem;
    line-height: 1.58;
}

.tn-ai-card__body p,
.tn-ai-judge__summary p,
.tn-ai-roadmap__body p,
.tn-ai-live__reasoning-body p {
    margin: 0 0 0.52rem;
}

.tn-ai-card__body p:last-child,
.tn-ai-judge__summary p:last-child,
.tn-ai-roadmap__body p:last-child,
.tn-ai-live__reasoning-body p:last-child {
    margin-bottom: 0;
}

.tn-ai-card__body ul,
.tn-ai-card__body ol,
.tn-ai-judge__summary ul,
.tn-ai-judge__summary ol,
.tn-ai-roadmap__body ul,
.tn-ai-roadmap__body ol,
.tn-ai-live__reasoning-body ul,
.tn-ai-live__reasoning-body ol {
    margin: 0 0 0.52rem;
    padding-left: 1.15rem;
}

.tn-ai-card__body li,
.tn-ai-judge__summary li,
.tn-ai-roadmap__body li,
.tn-ai-live__reasoning-body li {
    margin: 0 0 0.2rem;
}

.tn-ai-card__body a,
.tn-ai-judge__summary a,
.tn-ai-roadmap__body a,
.tn-ai-live__reasoning-body a {
    color: var(--tn-purple);
    text-decoration: underline;
}

.tn-ai-code,
.tn-ai-sample {
    margin-top: 0.85rem;
    border-radius: 10px;
    overflow: auto;
    padding: 0.8rem;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.74rem;
    line-height: 1.58;
}

.tn-ai-code {
    border: 1px solid #292032;
    background: #16121d;
    color: #e6e2e8;
}

.tn-ai-sample {
    border: 1px solid #ddd4e2;
    background: #faf8fb;
    color: #2f2a32;
    white-space: pre-wrap;
}

.tn-ai-live-artifacts {
    margin-top: 1rem;
    border: 1px solid #e4d8ea;
    border-radius: 12px;
    background: linear-gradient(135deg, #fcf9fd, #f8fbfa);
    padding: 0.82rem 0.88rem;
    display: grid;
    gap: 0.64rem;
}

.tn-ai-live-artifacts__divider {
    margin-top: 0.84rem;
    border-top: 1px dashed #d9cfde;
    height: 0;
}

.tn-ai-live-artifacts__title {
    margin: 0;
    color: #2e2931;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
}

.tn-ai-live-artifacts__intro {
    margin: 0;
    color: #5a5161;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    line-height: 1.5;
}

.tn-ai-live-artifacts__actions {
    align-items: center;
}

.tn-ai-live-artifacts__ttl {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #5f5566;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
}

.tn-ai-live-artifacts__ttl input {
    width: 68px;
    border: 1px solid #d8cddc;
    border-radius: 8px;
    background: #fff;
    color: #302a35;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.74rem;
    padding: 0.34rem 0.4rem;
}

.tn-ai-live-artifacts__ttl input:focus {
    outline: none;
    border-color: #7d3498;
    box-shadow: 0 0 0 2px rgba(94, 7, 122, 0.14);
}

.tn-ai-live-artifacts__status {
    margin: 0;
    color: #585163;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
}

.tn-ai-live-artifacts__status.is-loading { color: #2563eb; }
.tn-ai-live-artifacts__status.is-success { color: #15803d; }
.tn-ai-live-artifacts__status.is-warning { color: #b45309; }
.tn-ai-live-artifacts__status.is-error { color: #b91c1c; }

.tn-ai-live-artifacts__share-card {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
    border: 1px solid #d7cae1;
    border-radius: 10px;
    background: #fff;
    padding: 0.52rem 0.58rem;
}

.tn-ai-live-artifacts__share-card a {
    color: var(--tn-purple);
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
}

.tn-ai-live-artifacts__share-card span {
    color: #5f5766;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
}

.tn-ai-live-artifacts__active-card {
    border: 1px solid #ddd0e5;
    border-radius: 10px;
    background: #fff;
    padding: 0.58rem 0.62rem;
}

.tn-ai-live-artifacts__active-card p {
    margin: 0 0 0.28rem;
    color: #4d4554;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    line-height: 1.5;
}

.tn-ai-live-artifacts__active-card p:last-child {
    margin-bottom: 0;
}

.tn-ai-live-artifacts__active-card code {
    color: #3e3650;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.72rem;
    background: #f5eff8;
    border-radius: 4px;
    padding: 0.08rem 0.22rem;
}

.tn-ai-live-artifacts__history {
    display: grid;
    gap: 0.62rem;
}

.tn-ai-live-artifacts__cards {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.tn-ai-live-artifacts__card {
    border: 1px solid #ddd0e4;
    border-radius: 10px;
    background: #fff;
    padding: 0.56rem 0.6rem;
    display: grid;
    gap: 0.36rem;
}

.tn-ai-live-artifacts__card.is-active {
    border-color: #b48ec8;
    box-shadow: 0 0 0 1px rgba(94, 7, 122, 0.08);
}

.tn-ai-live-artifacts__card h5 {
    margin: 0;
    color: #312a36;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
}

.tn-ai-live-artifacts__card-meta {
    margin: 0;
    color: #605869;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    line-height: 1.4;
}

.tn-ai-live-artifacts__card-actions {
    display: flex;
    justify-content: flex-start;
}

.tn-ai-live-artifacts__revisions {
    border: 1px solid #ddd0e5;
    border-radius: 10px;
    background: #fff;
    padding: 0.56rem 0.62rem;
    display: grid;
    gap: 0.56rem;
}

.tn-ai-live-artifacts__revisions h5 {
    margin: 0;
    color: #332d38;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
}

.tn-ai-live-artifacts__revision {
    border: 1px solid #e8ddef;
    border-radius: 9px;
    background: #fcfafe;
    padding: 0.5rem 0.56rem;
    display: grid;
    gap: 0.34rem;
}

.tn-ai-live-artifacts__revision.is-current {
    border-color: #bf9ed1;
    box-shadow: 0 0 0 1px rgba(94, 7, 122, 0.12);
}

.tn-ai-live-artifacts__revision header {
    display: flex;
    justify-content: space-between;
    gap: 0.4rem;
}

.tn-ai-live-artifacts__revision header strong {
    color: #362f3c;
    font-family: var(--tn-font-body);
    font-size: 0.77rem;
}

.tn-ai-live-artifacts__revision header span {
    color: #6a6170;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.7rem;
}

.tn-ai-live-artifacts__revision-summary {
    margin: 0;
    color: #4f4857;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    line-height: 1.45;
}

.tn-ai-live-artifacts__revision-lineage {
    margin: 0;
    color: #665f72;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.69rem;
}

.tn-ai-live-artifacts__revision-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tn-ai-live-artifacts__shares {
    border-top: 1px dashed #e1d5e8;
    padding-top: 0.54rem;
}

.tn-ai-live-artifacts__shares h6 {
    margin: 0 0 0.36rem;
    color: #38323d;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
}

.tn-ai-live-artifacts__shares ul {
    margin: 0;
    padding-left: 1rem;
    color: #5f5767;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
}

.tn-ai-live-artifacts__shares li {
    margin: 0 0 0.18rem;
}

/* Memory Viewer */
.tn-ai-memory {
    display: grid;
    gap: 0.8rem;
}

.tn-ai-memory__intro {
    margin: 0;
    color: #5f5864;
    font-family: var(--tn-font-body);
    font-size: 0.83rem;
    line-height: 1.55;
}

.tn-ai-memory__status-card {
    border: 1px solid #e2d6e7;
    border-radius: 12px;
    background: linear-gradient(135deg, #fcf9fd, #f7fbfa);
    padding: 0.78rem 0.86rem;
}

.tn-ai-memory__badge-row {
    margin-bottom: 0.55rem;
}

.tn-ai-memory__badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 999px;
    padding: 0.08rem 0.56rem;
    font-family: var(--tn-font-body);
    font-size: 0.71rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.tn-ai-memory__badge--enabled {
    background: rgba(21, 128, 61, 0.13);
    border: 1px solid rgba(21, 128, 61, 0.32);
    color: #166534;
}

.tn-ai-memory__badge--disabled {
    background: rgba(180, 83, 9, 0.1);
    border: 1px solid rgba(180, 83, 9, 0.28);
    color: #92400e;
}

.tn-ai-memory__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.52rem;
}

.tn-ai-memory__metrics div {
    display: grid;
    gap: 0.18rem;
}

.tn-ai-memory__metrics span {
    color: #6f6575;
    font-family: var(--tn-font-body);
    font-size: 0.71rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tn-ai-memory__metrics strong {
    color: #332d36;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 700;
}

.tn-ai-memory__meta {
    margin: 0.46rem 0 0;
    color: #5f5864;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    line-height: 1.48;
}

.tn-ai-memory__hits {
    display: grid;
    gap: 0.62rem;
}

.tn-ai-memory__hit {
    border: 1px solid #e4d8ea;
    border-radius: 12px;
    background: #fff;
    padding: 0.72rem 0.78rem;
}

.tn-ai-memory__hit-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
}

.tn-ai-memory__hit-head h4 {
    margin: 0;
    color: #2e2931;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
}

.tn-ai-memory__hit-head span {
    color: #6d6272;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.72rem;
}

.tn-ai-memory__snippet {
    margin: 0.52rem 0 0;
    color: #48414d;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
    line-height: 1.55;
}

.tn-ai-memory__source {
    margin-top: 0.58rem;
    display: flex;
    gap: 0.55rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    color: #6f6575;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
}

.tn-ai-memory__source a {
    color: var(--tn-purple);
    font-weight: 600;
}

.tn-ai-memory__source a:hover {
    color: #760f96;
}

@media (max-width: 960px) {
    .tn-ai-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tn-ai-tool {
        padding: 1rem;
    }

    .tn-ai-grid {
        grid-template-columns: 1fr;
    }

    .tn-ai-textarea {
        min-height: 110px;
    }

    .tn-ai-trace__stats {
        grid-template-columns: 1fr;
    }

    .tn-ai-memory__metrics {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   34. AI READINESS ASSESSMENT
   ============================================================= */
.tn-readiness {
    margin-top: 1.4rem;
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 16px;
    background: linear-gradient(180deg, #fcf9fd 0%, #f6eff9 100%);
    padding: 1.25rem;
}

.tn-readiness__header {
    margin-bottom: 1rem;
}

.tn-readiness__title {
    margin: 0;
    color: #1f1722;
    font-family: var(--tn-font-display);
    font-size: clamp(1.4rem, 3vw, 2rem);
    line-height: 1.1;
}

.tn-readiness__desc {
    margin: 0.45rem 0 0;
    color: #5f5565;
    font-family: var(--tn-font-body);
    font-size: 0.98rem;
    line-height: 1.5;
}

.tn-readiness__identity {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.tn-readiness__field {
    display: flex;
    flex-direction: column;
    gap: 0.38rem;
    margin-bottom: 0.75rem;
}

.tn-readiness__field span {
    display: inline-flex;
    align-items: baseline;
    gap: 0.26rem;
    color: #3f3445;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
    font-weight: 700;
}

.tn-readiness__required {
    color: #b42318;
    font-weight: 800;
}

.tn-readiness__field input,
.tn-readiness__field textarea {
    width: 100%;
    border: 1px solid rgba(94, 7, 122, 0.2);
    background: #fff;
    border-radius: 10px;
    padding: 0.72rem 0.82rem;
    color: #241a28;
    font-family: var(--tn-font-body);
    font-size: 0.96rem;
    line-height: 1.45;
}

.tn-readiness__field textarea {
    min-height: 112px;
    resize: vertical;
}

.tn-readiness__field input:focus,
.tn-readiness__field textarea:focus {
    outline: none;
    border-color: rgba(94, 7, 122, 0.5);
    box-shadow: 0 0 0 3px rgba(94, 7, 122, 0.15);
}

.tn-readiness__field--full {
    margin-top: 0.25rem;
}

.tn-readiness__honeypot {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.tn-readiness__legend {
    margin: 0.3rem 0 0.78rem;
    display: flex;
    gap: 0.85rem;
    flex-wrap: wrap;
    color: #5f5565;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
}

.tn-readiness__legend-title {
    width: 100%;
    color: #3f3445;
    font-weight: 700;
}

.tn-readiness__questions {
    display: grid;
    gap: 1rem;
}

.tn-readiness__question {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.95rem 0.92rem;
    margin: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.tn-readiness__question:focus-within {
    border-color: rgba(94, 7, 122, 0.34);
    box-shadow: 0 8px 20px rgba(94, 7, 122, 0.08);
    transform: translateY(-1px);
}

.tn-readiness__question legend {
    margin: 0 0 0.72rem;
    padding: 0;
    color: #2b222f;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.45;
}

.tn-readiness__question-index {
    margin-right: 0.3rem;
}

.tn-readiness__scale {
    --tn-score-ratio: 0%;
    display: grid;
    gap: 0.55rem;
    border: 1px solid rgba(94, 7, 122, 0.14);
    border-radius: 12px;
    background: linear-gradient(180deg, #fcf8ff 0%, #f8f1fc 100%);
    padding: 0.62rem 0.68rem 0.72rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.tn-readiness__scale-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.tn-readiness__scale-status {
    color: #5e5364;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
}

.tn-readiness__scale-value {
    min-width: 1.85rem;
    min-height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(94, 7, 122, 0.24);
    background: rgba(255, 255, 255, 0.9);
    color: #372c3d;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
}

.tn-readiness__scale-track {
    position: relative;
}

.tn-readiness__slider {
    width: 100%;
    margin: 0;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    cursor: pointer;
}

.tn-readiness__slider::-webkit-slider-runnable-track {
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        #5e077a 0%,
        #7a1498 var(--tn-score-ratio),
        rgba(94, 7, 122, 0.2) var(--tn-score-ratio),
        rgba(94, 7, 122, 0.2) 100%
    );
}

.tn-readiness__slider::-moz-range-track {
    height: 10px;
    border-radius: 999px;
    background: rgba(94, 7, 122, 0.2);
}

.tn-readiness__slider::-moz-range-progress {
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, #5e077a 0%, #7a1498 100%);
}

.tn-readiness__slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    margin-top: -6px;
    border: 2px solid #5e077a;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 3px 8px rgba(26, 17, 24, 0.18);
}

.tn-readiness__slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border: 2px solid #5e077a;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 3px 8px rgba(26, 17, 24, 0.18);
}

.tn-readiness__slider:focus-visible {
    outline: none;
}

.tn-readiness__slider:focus-visible::-webkit-slider-thumb {
    box-shadow: 0 0 0 4px rgba(94, 7, 122, 0.2), 0 3px 8px rgba(26, 17, 24, 0.18);
}

.tn-readiness__slider:focus-visible::-moz-range-thumb {
    box-shadow: 0 0 0 4px rgba(94, 7, 122, 0.2), 0 3px 8px rgba(26, 17, 24, 0.18);
}

.tn-readiness__scale-markers {
    margin-top: 0.44rem;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
}

/* Marker buttons: large, tappable, discrete selection. */
.tn-readiness__marker {
    min-height: 44px;
    padding: 0.45rem 0.35rem;
    display: grid;
    grid-template-rows: auto auto;
    gap: 0.14rem;
    align-items: center;
    justify-items: center;
    border-radius: 12px;
    border: 1px solid rgba(94, 7, 122, 0.14);
    background: rgba(255, 255, 255, 0.92);
    text-align: center;
    color: #4b3f52;
    font-family: var(--tn-font-body);
    cursor: pointer;
    user-select: none;
    touch-action: manipulation;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.tn-readiness__marker-num {
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1;
}

.tn-readiness__marker-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(75, 63, 82, 0.78);
    line-height: 1.1;
}

.tn-readiness__marker:hover {
    transform: translateY(-1px);
    border-color: rgba(94, 7, 122, 0.26);
    box-shadow: 0 10px 18px rgba(26, 17, 24, 0.08);
}

.tn-readiness__marker.is-active {
    background: linear-gradient(135deg, #5e077a 0%, #7a1498 100%);
    border-color: rgba(94, 7, 122, 0.55);
    color: #fff;
    box-shadow: 0 14px 24px rgba(94, 7, 122, 0.22);
    transform: translateY(-1px);
}

.tn-readiness__marker.is-active .tn-readiness__marker-label {
    color: rgba(255, 255, 255, 0.9);
}

.tn-readiness__marker:focus-visible {
    outline: 2px solid var(--tn-purple);
    outline-offset: 2px;
}

.tn-readiness__marker:active {
    transform: translateY(0);
}

.tn-readiness__scale.is-scored {
    border-color: rgba(94, 7, 122, 0.26);
    background: linear-gradient(180deg, #fff 0%, #f7edf9 100%);
}

.tn-readiness__scale.is-scored .tn-readiness__scale-status {
    color: #392e40;
}

.tn-readiness__scale.is-scored .tn-readiness__scale-value {
    border-color: rgba(94, 7, 122, 0.45);
    background: linear-gradient(135deg, #5e077a 0%, #7a1498 100%);
    color: #fff;
}

.tn-readiness__scale.is-invalid {
    border-color: rgba(161, 26, 60, 0.45);
    box-shadow: 0 0 0 3px rgba(161, 26, 60, 0.12);
}

.tn-readiness__scale.is-invalid .tn-readiness__scale-status {
    color: #8f1747;
}

.tn-readiness__actions {
    margin-top: 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 0.72rem;
}

.tn-readiness__submit {
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tn-purple) 0%, #7a1498 100%);
    color: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    width: 100%;
    min-height: 48px;
    padding: 0.78rem 1rem;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.tn-readiness__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 20px rgba(94, 7, 122, 0.18);
    filter: brightness(1.02);
}

.tn-readiness__submit:disabled {
    opacity: 0.72;
    cursor: not-allowed;
}

.tn-readiness__submit:focus-visible {
    outline: 2px solid var(--tn-purple);
    outline-offset: 3px;
}

.tn-readiness__field input:focus-visible,
.tn-readiness__field textarea:focus-visible,
.tn-readiness__download:focus-visible,
.tn-readiness__next-cta:focus-visible {
    outline: 2px solid var(--tn-purple);
    outline-offset: 2px;
}

.tn-readiness__feedback {
    min-height: 1.2rem;
    color: #5f5565;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
}

.tn-readiness__feedback.is-error {
    color: #a11a3c;
}

.tn-readiness__feedback.is-success {
    color: #0b7c54;
}

.tn-readiness__result {
    margin-top: 1rem;
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.95rem;
}

.tn-readiness__result-head {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.tn-readiness__score {
    width: 74px;
    height: 74px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(94, 7, 122, 0.18) 0%, rgba(94, 7, 122, 0.08) 100%);
    color: #2f2334;
    font-family: var(--tn-font-display);
    font-size: 1.45rem;
}

.tn-readiness__score-label {
    margin: 0;
    color: #6b6070;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.tn-readiness__score-maturity {
    margin: 0.14rem 0 0;
    color: #241a28;
    font-family: var(--tn-font-display);
    font-size: 1.25rem;
}

.tn-readiness__summary {
    margin: 0.72rem 0 0;
    color: #4b4150;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    line-height: 1.55;
}

.tn-readiness__analysis {
    margin-top: 0.78rem;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 0.72rem;
    align-items: stretch;
}

.tn-readiness__metrics {
    margin-top: 0;
    display: grid;
    gap: 0.6rem;
}

.tn-readiness__metric-head {
    display: flex;
    justify-content: space-between;
    gap: 0.4rem;
    color: #362d3b;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
}

.tn-readiness__metric-bar {
    margin-top: 0.28rem;
    width: 100%;
    height: 8px;
    border-radius: 999px;
    background: rgba(94, 7, 122, 0.12);
    overflow: hidden;
}

.tn-readiness__metric-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #5e077a 0%, #8f2aab 100%);
}

.tn-readiness__radar {
    border: 1px solid rgba(94, 7, 122, 0.14);
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #f8f3fb 100%);
    padding: 0.58rem 0.62rem;
}

.tn-readiness__radar h4 {
    margin: 0 0 0.32rem;
    color: #2f2534;
    font-family: var(--tn-font-display);
    font-size: 0.96rem;
}

.tn-readiness__radar-svg {
    width: 100%;
    height: auto;
    display: block;
}

.tn-readiness__radar-grid {
    fill: rgba(94, 7, 122, 0.03);
    stroke: rgba(94, 7, 122, 0.17);
    stroke-width: 1;
}

.tn-readiness__radar-axis {
    stroke: rgba(94, 7, 122, 0.2);
    stroke-width: 1;
}

.tn-readiness__radar-profile {
    fill: rgba(94, 7, 122, 0.22);
    stroke: #5e077a;
    stroke-width: 2;
}

.tn-readiness__radar-dot {
    fill: #5e077a;
}

.tn-readiness__radar-label {
    fill: #403547;
    font-family: var(--tn-font-body);
    font-size: 8px;
    font-weight: 600;
}

.tn-readiness__next {
    margin-top: 0.82rem;
    border-top: 1px solid rgba(94, 7, 122, 0.12);
    padding-top: 0.72rem;
}

.tn-readiness__next h4 {
    margin: 0 0 0.45rem;
    color: #2a202e;
    font-family: var(--tn-font-display);
    font-size: 1.08rem;
}

.tn-readiness__next ul {
    margin: 0;
    padding-left: 1.1rem;
    color: #4f4653;
    font-family: var(--tn-font-body);
    font-size: 0.88rem;
    line-height: 1.5;
}

.tn-readiness__next li + li {
    margin-top: 0.32rem;
}

.tn-readiness__next-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.52rem;
    margin-top: 0.62rem;
}

.tn-readiness__download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    padding: 0.56rem 0.82rem;
    border: 1px solid rgba(94, 7, 122, 0.16);
    color: #4f3c58;
    background: #fff;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.tn-readiness__download:hover {
    border-color: rgba(94, 7, 122, 0.35);
    color: #2d2232;
}

.tn-readiness__next-cta {
    display: inline-flex;
    margin-top: 0;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    padding: 0.56rem 0.82rem;
    border: 1px solid rgba(94, 7, 122, 0.2);
    color: var(--tn-purple);
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.tn-readiness__next-cta:hover {
    color: #fff;
    background: var(--tn-purple);
}

@media (max-width: 900px) {
    .tn-readiness__identity {
        grid-template-columns: 1fr 1fr;
    }

    .tn-readiness__analysis {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .tn-readiness {
        padding: 0.92rem;
    }

    .tn-readiness__identity {
        grid-template-columns: 1fr;
    }

    .tn-readiness__question {
        padding: 0.82rem 0.76rem;
    }

    .tn-readiness__question legend {
        font-size: 0.84rem;
        line-height: 1.4;
    }

    .tn-readiness__scale {
        padding: 0.58rem 0.56rem 0.68rem;
        gap: 0.48rem;
    }

    .tn-readiness__scale-status {
        font-size: 0.74rem;
    }

    .tn-readiness__scale-value {
        min-width: 1.78rem;
        min-height: 1.78rem;
        font-size: 0.78rem;
    }

    .tn-readiness__slider::-webkit-slider-runnable-track {
        height: 11px;
    }

    .tn-readiness__slider::-moz-range-track,
    .tn-readiness__slider::-moz-range-progress {
        height: 11px;
    }

    .tn-readiness__slider::-webkit-slider-thumb {
        width: 24px;
        height: 24px;
        margin-top: -6px;
    }

    .tn-readiness__slider::-moz-range-thumb {
        width: 24px;
        height: 24px;
    }

    .tn-readiness__scale-markers {
        margin-top: 0.5rem;
        gap: 0.28rem;
    }

    /* On mobile, the segmented tap control is the primary affordance. */
    .tn-readiness__slider {
        display: none;
    }

    .tn-readiness__marker {
        min-height: 48px;
        padding: 0.5rem 0.35rem;
    }

    .tn-readiness__marker-num {
        font-size: 0.92rem;
    }

    .tn-readiness__marker-label {
        font-size: 0.64rem;
    }

    .tn-readiness__result-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .tn-readiness__next-actions {
        flex-direction: column;
    }

    .tn-readiness__download,
    .tn-readiness__next-cta {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .tn-readiness__question {
        padding: 0.74rem 0.64rem;
    }

    .tn-readiness__scale {
        padding: 0.52rem 0.5rem 0.62rem;
    }

    .tn-readiness__scale-meta {
        gap: 0.4rem;
    }

    .tn-readiness__scale-status {
        font-size: 0.72rem;
    }

    .tn-readiness__marker {
        min-height: 46px;
        padding: 0.46rem 0.3rem;
    }

    .tn-readiness__marker-label {
        font-size: 0.6rem;
    }
}

/* =============================================================
   CLIENT WORKSPACE (Plan 013 lightweight role-gated workspace)
   ============================================================= */
.tn-client-workspace {
    border: 1px solid rgba(94, 7, 122, 0.2);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #f8f2fb 100%);
    padding: 1.2rem;
    margin: 0 0 1.3rem;
    box-shadow: 0 16px 36px rgba(26, 17, 24, 0.08);
}

.tn-client-workspace-page .tn-client-workspace {
    margin-top: 1rem;
}

.tn-client-workspace-page .tn-client-workspace__message {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 10px;
    background: #fff;
    padding: 0.72rem 0.78rem;
}

.tn-client-workspace__login-error {
    margin: 0 0 0.58rem;
    border: 1px solid rgba(190, 24, 93, 0.28);
    border-radius: 9px;
    background: rgba(190, 24, 93, 0.1);
    color: #8b1245;
    font-size: 0.84rem;
    font-weight: 600;
    padding: 0.52rem 0.64rem;
}

.tn-client-workspace__login-notice {
    margin: 0 0 0.58rem;
    border: 1px solid rgba(22, 163, 74, 0.28);
    border-radius: 9px;
    background: rgba(22, 163, 74, 0.1);
    color: #146c43;
    font-size: 0.84rem;
    font-weight: 600;
    padding: 0.52rem 0.64rem;
}

.tn-client-workspace__login-form {
    margin-top: 0.6rem;
    display: grid;
    gap: 0.72rem;
    max-width: 640px;
}

.tn-client-workspace__login-field {
    display: grid;
    gap: 0.34rem;
}

.tn-client-workspace__login-field label {
    margin: 0;
}

.tn-client-workspace__login-field label span {
    color: #4a3f50;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.35;
}

.tn-client-workspace__login-field input {
    width: 100%;
    border: 1px solid rgba(94, 7, 122, 0.24);
    border-radius: 9px;
    padding: 0.72rem 0.74rem;
    background: #f8f5fa;
    color: #2e2532;
    font-size: 0.95rem;
    line-height: 1.4;
}

.tn-client-workspace__login-field input::placeholder {
    color: #7f7387;
}

.tn-client-workspace__login-field input:focus {
    outline: none;
    border-color: rgba(94, 7, 122, 0.52);
    box-shadow: 0 0 0 3px rgba(94, 7, 122, 0.12);
}

.tn-client-workspace__login-remember {
    display: flex;
    align-items: center;
    gap: 0.44rem;
    color: #4f4358;
    font-size: 0.86rem;
}

.tn-client-workspace__login-remember input {
    width: 18px;
    height: 18px;
}

.tn-client-workspace__login-remember label {
    margin: 0;
    line-height: 1.4;
}

.tn-client-workspace__header {
    margin-bottom: 1rem;
}

.tn-client-workspace__title {
    margin: 0 0 0.3rem;
    font-family: var(--tn-font-heading);
    font-size: clamp(1.35rem, 2.8vw, 1.82rem);
    line-height: 1.2;
    color: var(--tn-dark);
}

.tn-client-workspace__desc,
.tn-client-workspace__message {
    margin: 0 0 0.8rem;
    color: #4c4351;
    font-size: 0.96rem;
}

.tn-client-workspace__phase-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
    margin-bottom: 0.62rem;
}

.tn-client-workspace__phase-chip,
.tn-client-workspace__status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0.32rem 0.68rem;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tn-client-workspace__phase-chip {
    border: 1px solid rgba(94, 7, 122, 0.28);
    background: rgba(94, 7, 122, 0.1);
    color: #4e1164;
}

.tn-client-workspace__status-chip {
    border: 1px solid rgba(33, 36, 41, 0.2);
    background: rgba(33, 36, 41, 0.08);
    color: #2a222e;
}

.tn-client-workspace__progress-wrap {
    display: grid;
    gap: 0.34rem;
}

.tn-client-workspace__progress-bar {
    position: relative;
    display: block;
    height: 10px;
    border-radius: 999px;
    background: rgba(94, 7, 122, 0.14);
    overflow: hidden;
}

.tn-client-workspace__progress-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #5e077a 0%, #8f2aab 60%, #90bab5 100%);
}

.tn-client-workspace__progress-label {
    color: #4b3e52;
    font-size: 0.8rem;
    font-weight: 600;
}

.tn-client-workspace__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.44rem;
    margin: 0 0 0.9rem;
}

.tn-client-workspace__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(94, 7, 122, 0.2);
    background: #fff;
    color: #432b4f;
    text-decoration: none;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.36rem 0.72rem;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.tn-client-workspace__nav-link:hover {
    border-color: rgba(94, 7, 122, 0.34);
    color: #311a3e;
}

.tn-client-workspace__nav-link.is-active {
    background: var(--tn-purple);
    border-color: var(--tn-purple);
    color: #fff;
}

.tn-client-workspace__nav-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    border-radius: 999px;
    background: rgba(94, 7, 122, 0.12);
    color: inherit;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    padding: 0 0.26rem;
}

.tn-client-workspace__nav-link.is-active .tn-client-workspace__nav-count {
    background: rgba(255, 255, 255, 0.2);
}

.tn-client-workspace__notice {
    border-radius: 10px;
    padding: 0.56rem 0.74rem;
    margin: 0 0 0.92rem;
    font-size: 0.86rem;
    font-weight: 600;
}

.tn-client-workspace__notice--success {
    background: rgba(22, 163, 74, 0.12);
    border: 1px solid rgba(22, 163, 74, 0.3);
    color: #146c43;
}

.tn-client-workspace__notice--error {
    background: rgba(190, 24, 93, 0.1);
    border: 1px solid rgba(190, 24, 93, 0.24);
    color: #8b1245;
}

.tn-client-workspace__grid {
    display: grid;
    gap: 0.78rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tn-client-workspace__card {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #faf8fc;
    padding: 0.82rem;
}

.tn-client-workspace__card h4,
.tn-client-workspace__section h4 {
    margin: 0 0 0.38rem;
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tn-purple);
}

.tn-client-workspace__card p {
    margin: 0 0 0.3rem;
    color: #2e2532;
    font-size: 0.92rem;
}

.tn-client-workspace__card code {
    font-size: 0.8rem;
    color: var(--tn-purple);
    background: rgba(94, 7, 122, 0.1);
    border-radius: 6px;
    padding: 0.14rem 0.4rem;
}

.tn-client-workspace__section {
    margin-top: 0.9rem;
    padding-top: 0.74rem;
    border-top: 1px solid rgba(94, 7, 122, 0.14);
}

.tn-client-workspace__section ul {
    margin: 0;
    padding-left: 1.1rem;
}

.tn-client-workspace__section li {
    margin: 0 0 0.42rem;
    color: #2e2532;
}

.tn-client-workspace__empty {
    margin: 0;
    color: #5d5164;
    font-size: 0.88rem;
}

.tn-client-workspace__helper {
    margin: 0.55rem 0 0;
    color: #4f4358;
    font-size: 0.84rem;
}

.tn-client-workspace__forgot-link {
    margin-left: 0.36rem;
}

.tn-client-workspace__reset {
    margin-top: 0.82rem;
    border-top: 1px solid rgba(94, 7, 122, 0.14);
    padding-top: 0.72rem;
}

.tn-client-workspace__reset-title {
    margin: 0;
    font-size: 1rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--tn-purple);
}

.tn-client-workspace__reset-text {
    margin: 0.32rem 0 0;
    color: #4f4358;
    font-size: 0.86rem;
    line-height: 1.45;
}

.tn-client-workspace__settings {
    display: grid;
    gap: 0.4rem;
}

.tn-client-workspace__settings p {
    margin: 0;
    color: #302734;
    font-size: 0.9rem;
}

.tn-client-workspace__milestones {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.4rem;
}

.tn-client-workspace__milestones li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.42rem 0.5rem;
    border-radius: 10px;
    border: 1px solid rgba(94, 7, 122, 0.14);
    background: #fff;
    font-size: 0.9rem;
    color: #302734;
}

.tn-client-workspace__milestone-dot {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    background: rgba(94, 7, 122, 0.24);
}

.tn-client-workspace__milestones li.is-complete {
    border-color: rgba(38, 128, 88, 0.3);
    background: rgba(228, 248, 240, 0.76);
}

.tn-client-workspace__milestones li.is-complete .tn-client-workspace__milestone-dot {
    background: #198754;
}

.tn-client-workspace__timeline {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.56rem;
}

.tn-client-workspace__timeline-item {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.62rem 0.7rem;
    display: grid;
    gap: 0.22rem;
}

.tn-client-workspace__timeline-summary {
    margin: 0;
    color: #2f2433;
    font-size: 0.88rem;
    line-height: 1.45;
}

.tn-client-workspace__timeline-stamp {
    color: #6a5f72;
    font-size: 0.74rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tn-client-workspace__timeline-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-end;
    margin: 0.2rem 0 0.6rem;
}

.tn-client-workspace__timeline-filters label {
    display: grid;
    gap: 0.2rem;
    font-size: 0.78rem;
    color: #4a3f50;
    font-weight: 600;
}

.tn-client-workspace__timeline-filters input,
.tn-client-workspace__timeline-filters select {
    border: 1px solid rgba(94, 7, 122, 0.24);
    border-radius: 8px;
    padding: 0.44rem 0.52rem;
    font-size: 0.86rem;
    background: #fff;
}

.tn-client-workspace__timeline-row {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.tn-client-workspace__timeline-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.16rem 0.46rem;
    border: 1px solid rgba(94, 7, 122, 0.18);
    background: rgba(94, 7, 122, 0.08);
    color: #5a136f;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    margin-top: 0.1rem;
}

.tn-client-workspace__timeline-chip--artifact {
    border-color: rgba(25, 135, 84, 0.28);
    background: rgba(25, 135, 84, 0.12);
    color: #0b6b43;
}

.tn-client-workspace__timeline-chip--upload {
    border-color: rgba(162, 90, 16, 0.28);
    background: rgba(223, 149, 58, 0.16);
    color: #874d0b;
}

.tn-client-workspace__timeline-chip--access {
    border-color: rgba(35, 52, 159, 0.24);
    background: rgba(35, 52, 159, 0.12);
    color: #23349f;
}

.tn-client-workspace__timeline-chip--security {
    border-color: rgba(190, 24, 93, 0.32);
    background: rgba(190, 24, 93, 0.12);
    color: #8b1245;
}

.tn-client-workspace__artifacts {
    display: grid;
    gap: 0.62rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tn-client-workspace__artifact-create,
.tn-client-workspace__upload-form {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.72rem;
    margin-bottom: 0.62rem;
    display: grid;
    gap: 0.48rem;
}

.tn-client-workspace__member-form {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.72rem;
    margin-top: 0.72rem;
    display: grid;
    gap: 0.48rem;
}

.tn-client-workspace__artifact-create label,
.tn-client-workspace__upload-form label,
.tn-client-workspace__member-form label {
    display: grid;
    gap: 0.2rem;
    font-size: 0.78rem;
    color: #4a3f50;
    font-weight: 600;
}

.tn-client-workspace__artifact-create input,
.tn-client-workspace__artifact-create select,
.tn-client-workspace__upload-form input,
.tn-client-workspace__upload-form select,
.tn-client-workspace__member-form input,
.tn-client-workspace__member-form select {
    border: 1px solid rgba(94, 7, 122, 0.24);
    border-radius: 8px;
    padding: 0.44rem 0.52rem;
    font-size: 0.86rem;
    background: #fff;
}

.tn-client-workspace__queue {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.72rem;
    margin: 0 0 0.62rem;
}

.tn-client-workspace__queue h5 {
    margin: 0 0 0.46rem;
    font-size: 0.84rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tn-purple);
}

.tn-client-workspace__queue ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.36rem;
}

.tn-client-workspace__queue li {
    border: 1px solid rgba(94, 7, 122, 0.12);
    border-radius: 9px;
    padding: 0.36rem 0.5rem;
    display: grid;
    gap: 0.16rem;
}

.tn-client-workspace__queue li strong {
    color: #2f2433;
    font-size: 0.84rem;
}

.tn-client-workspace__queue li span {
    color: #5a4f61;
    font-size: 0.78rem;
}

.tn-client-workspace__queue li em {
    color: #6b6072;
    font-size: 0.76rem;
    font-style: normal;
}

.tn-client-workspace__artifact {
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.76rem;
}

.tn-client-workspace__artifact-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}

.tn-client-workspace__artifact-head h5 {
    margin: 0;
    font-size: 0.92rem;
    color: #231a28;
}

.tn-client-workspace__artifact-state {
    border-radius: 999px;
    padding: 0.2rem 0.52rem;
    border: 1px solid rgba(94, 7, 122, 0.18);
    background: rgba(94, 7, 122, 0.08);
    color: #5a136f;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tn-client-workspace__artifact p {
    margin: 0 0 0.54rem;
    font-size: 0.86rem;
    color: #4a3f50;
    line-height: 1.45;
}

.tn-client-workspace__artifact--ready {
    border-color: rgba(25, 135, 84, 0.28);
}

.tn-client-workspace__artifact--ready .tn-client-workspace__artifact-state {
    border-color: rgba(25, 135, 84, 0.3);
    background: rgba(25, 135, 84, 0.12);
    color: #0b6b43;
}

.tn-client-workspace__artifact--in_progress .tn-client-workspace__artifact-state {
    border-color: rgba(162, 90, 16, 0.28);
    background: rgba(223, 149, 58, 0.16);
    color: #874d0b;
}

.tn-client-workspace__artifact--locked {
    border-color: rgba(78, 70, 84, 0.16);
    background: rgba(255, 255, 255, 0.85);
}

.tn-client-workspace__artifact--locked .tn-client-workspace__artifact-state {
    border-color: rgba(78, 70, 84, 0.2);
    background: rgba(78, 70, 84, 0.08);
    color: #5a4f61;
}

.tn-client-workspace__artifact--draft .tn-client-workspace__artifact-state {
    border-color: rgba(94, 7, 122, 0.24);
    background: rgba(94, 7, 122, 0.1);
    color: #5a136f;
}

.tn-client-workspace__artifact--in_review .tn-client-workspace__artifact-state {
    border-color: rgba(162, 90, 16, 0.28);
    background: rgba(223, 149, 58, 0.16);
    color: #874d0b;
}

.tn-client-workspace__artifact--approved {
    border-color: rgba(25, 135, 84, 0.3);
    background: rgba(228, 248, 240, 0.56);
}

.tn-client-workspace__artifact--approved .tn-client-workspace__artifact-state {
    border-color: rgba(25, 135, 84, 0.3);
    background: rgba(25, 135, 84, 0.12);
    color: #0b6b43;
}

.tn-client-workspace__artifact--archived {
    border-color: rgba(78, 70, 84, 0.16);
    background: rgba(250, 248, 252, 0.95);
}

.tn-client-workspace__artifact--archived .tn-client-workspace__artifact-state {
    border-color: rgba(78, 70, 84, 0.2);
    background: rgba(78, 70, 84, 0.08);
    color: #5a4f61;
}

.tn-client-workspace__artifact-locked {
    font-size: 0.8rem;
    color: #655a6c;
}

.tn-client-workspace__artifact-meta {
    margin: 0 0 0.54rem;
    color: #6b6072;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tn-client-workspace__artifact-action {
    margin-top: 0.5rem;
    display: grid;
    gap: 0.36rem;
}

.tn-client-workspace__artifact-action input[type="text"] {
    border: 1px solid rgba(94, 7, 122, 0.24);
    border-radius: 8px;
    padding: 0.38rem 0.5rem;
    font-size: 0.82rem;
    background: #fff;
}

.tn-client-workspace__artifact-decision {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.tn-client-workspace__btn,
.tn-client-workspace__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border-radius: 10px;
    border: 1px solid rgba(94, 7, 122, 0.24);
    color: var(--tn-purple);
    background: rgba(94, 7, 122, 0.08);
    font-weight: 700;
    padding: 0.56rem 0.88rem;
    line-height: 1;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tn-client-workspace__btn:hover,
.tn-client-workspace__link:hover {
    background: var(--tn-purple);
    color: #fff;
}

.tn-client-workspace__btn:focus-visible,
.tn-client-workspace__link:focus-visible,
.tn-client-workspace__login-field input:focus-visible,
.tn-client-workspace__login-remember input:focus-visible {
    outline: 2px solid var(--tn-purple);
    outline-offset: 2px;
}

.tn-client-workspace__btn--primary {
    border-color: var(--tn-purple);
    background: linear-gradient(135deg, var(--tn-purple) 0%, #7a1498 100%);
    color: #fff;
}

.tn-client-workspace__btn--primary:hover {
    filter: brightness(1.04);
    color: #fff;
}

.tn-client-workspace__login-submit {
    width: 100%;
    min-height: 48px;
    font-size: 0.86rem;
}

.tn-client-workspace__btn--secondary {
    border-color: rgba(94, 7, 122, 0.26);
    background: rgba(94, 7, 122, 0.08);
    color: var(--tn-purple);
}

.tn-client-workspace__helper a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tn-client-workspace__helper a:hover {
    text-decoration-thickness: 2px;
}

.tn-client-workspace__btn--danger {
    border-color: rgba(190, 24, 93, 0.32);
    background: rgba(190, 24, 93, 0.12);
    color: #8b1245;
}

.tn-client-workspace__btn--danger:hover {
    border-color: #8b1245;
    background: #8b1245;
    color: #fff;
}

.tn-client-workspace__uploads,
.tn-client-workspace__members {
    margin-top: 0.78rem;
    border: 1px solid rgba(94, 7, 122, 0.16);
    border-radius: 12px;
    background: #fff;
    padding: 0.72rem;
}

.tn-client-workspace__uploads h5,
.tn-client-workspace__members h5 {
    margin: 0 0 0.46rem;
    font-size: 0.84rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tn-purple);
}

.tn-client-workspace__uploads ul,
.tn-client-workspace__members ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.4rem;
}

.tn-client-workspace__uploads li,
.tn-client-workspace__members li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    border: 1px solid rgba(94, 7, 122, 0.12);
    border-radius: 9px;
    padding: 0.38rem 0.48rem;
    font-size: 0.82rem;
    color: #2f2433;
}

.tn-client-workspace__uploads a {
    color: var(--tn-purple);
    text-decoration: none;
    font-weight: 700;
}

.tn-client-workspace__uploads a:hover {
    text-decoration: underline;
}

.tn-client-workspace__uploads li.tn-client-workspace__upload {
    align-items: flex-start;
}

.tn-client-workspace__upload-meta {
    display: grid;
    gap: 0.12rem;
}

.tn-client-workspace__upload-name {
    font-weight: 700;
}

.tn-client-workspace__upload-notes {
    color: #4a3f50;
    font-size: 0.78rem;
    line-height: 1.35;
}

.tn-client-workspace__upload-stamp {
    color: #6a5f72;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tn-client-workspace__upload-actions {
    display: flex;
    justify-content: flex-end;
}

.tn-client-workspace__members code {
    font-size: 0.72rem;
    color: #5a136f;
    background: rgba(94, 7, 122, 0.1);
    border-radius: 999px;
    padding: 0.2rem 0.46rem;
}

.tn-client-workspace__member-create-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid rgba(94, 7, 122, 0.14);
    border-radius: 10px;
    background: rgba(250, 248, 252, 0.95);
    padding: 0.44rem 0.52rem;
    font-size: 0.86rem;
    color: #302734;
}

.tn-client-workspace__member-create-row input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

.tn-client-workspace__members li.tn-client-workspace__member {
    align-items: flex-start;
}

.tn-client-workspace__member-meta {
    display: grid;
    gap: 0.12rem;
}

.tn-client-workspace__member-name {
    font-weight: 700;
}

.tn-client-workspace__member-email {
    color: #6a5f72;
    font-size: 0.76rem;
    word-break: break-word;
}

.tn-client-workspace__member-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.tn-client-workspace__member-action {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.36rem;
}

.tn-client-workspace__member-action select {
    border: 1px solid rgba(94, 7, 122, 0.24);
    border-radius: 10px;
    padding: 0.46rem 0.5rem;
    font-size: 0.8rem;
    background: #fff;
}

@media (max-width: 520px) {
    .tn-client-workspace__members li.tn-client-workspace__member {
        flex-direction: column;
        align-items: stretch;
    }

    .tn-client-workspace__member-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 900px) {
    .tn-client-workspace__grid {
        grid-template-columns: 1fr;
    }

    .tn-client-workspace__artifacts {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .tn-client-workspace {
        padding: 0.94rem;
    }

    .tn-client-workspace__forgot-link {
        display: inline-block;
        margin-left: 0;
        margin-top: 0.3rem;
    }

    .tn-client-workspace__nav {
        gap: 0.34rem;
    }

    .tn-client-workspace__nav-link {
        font-size: 0.7rem;
        padding: 0.34rem 0.62rem;
    }

    .tn-client-workspace__phase-row {
        gap: 0.3rem;
    }

    .tn-client-workspace__phase-chip,
    .tn-client-workspace__status-chip {
        font-size: 0.66rem;
    }

    .tn-client-workspace__grid {
        grid-template-columns: 1fr;
    }

    .tn-client-workspace__artifact-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =============================================================
   34A. HOMEPAGE SECTION-BOUNDARY RHYTHM (VERTICAL ONLY)
   Scope: section edges + separator spacing; no card internals.
   ============================================================= */
.home .tn-how-i-help {
    padding-top: 32px;
    padding-bottom: 32px;
}

.home .tn-approach {
    margin-top: 32px;
    margin-bottom: 24px;
}

.home .tn-insights-header {
    padding-top: 0;
    margin-bottom: 24px;
}

.home .tn-insights-header::before {
    margin-bottom: 16px;
}

.home .tn-blog-grid {
    margin-top: 0;
}

/* =============================================================
   34B. HOMEPAGE CRITICAL RHYTHM CORRECTIONS (DESKTOP)
   Scope: section-boundary whitespace + CTA/footer balance.
   ============================================================= */
@media (min-width: 769px) {
    .home .tn-how-i-help {
        padding-bottom: 16px;
    }

    .home .tn-how-i-help__inner {
        margin-bottom: 0;
    }

    .home .tn-help-card {
        padding: 28px 24px 8px;
    }

    .home .tn-help-card__text {
        font-size: 0.9rem;
        line-height: 1.62;
        max-width: 360px;
    }

    .home .tn-help-card::after {
        display: none;
    }

    .home .tn-approach {
        margin-top: 8px;
        padding-top: 16px;
    }

    .home .tn-blog-grid {
        padding-bottom: 24px;
    }

    .home .tn-view-all {
        margin-top: 16px;
        margin-bottom: 40px;
    }
}

/* =============================================================
   35A. AI STRATEGY PAGE RHYTHM + SERVICE CARD ICON TOP SPACING
   Scope: page-id-75415 only
   ============================================================= */
.page-id-75415 .tn-services {
    padding-top: 44px;
    padding-bottom: 32px;
}

.page-id-75415 .tn-services__section-heading {
    margin-bottom: 28px;
}

.page-id-75415 .tn-services__pillars {
    margin-top: 32px;
}

.page-id-75415 .tn-service-pillar {
    padding-top: 20px;
}

.page-id-75415 .tn-service-pillar__icon {
    margin-bottom: 12px;
}

.page-id-75415 .tn-pov {
    padding-top: 40px;
    padding-bottom: 28px;
}

.page-id-75415 .tn-methodology {
    padding-top: 40px;
    padding-bottom: 32px;
}

.page-id-75415 .tn-services-tech {
    padding-top: 40px;
    padding-bottom: 32px;
}

.page-id-75415 .tn-framework {
    padding-top: 40px;
    padding-bottom: 32px;
}

.page-id-75415 .tn-testimonials {
    padding-top: 40px;
    padding-bottom: 32px;
}

.page-id-75415 .tn-services-cta {
    padding-top: 40px;
    padding-bottom: 40px;
}

.page-id-75415 .tn-services-cta::after {
    margin-top: 32px;
}

@media (max-width: 768px) {
    .page-id-75415 .tn-services {
        padding-top: 32px;
        padding-bottom: 24px;
    }

    .page-id-75415 .tn-services__section-heading {
        margin-bottom: 22px;
    }

    .page-id-75415 .tn-services__pillars {
        margin-top: 24px;
    }

    .page-id-75415 .tn-pov,
    .page-id-75415 .tn-methodology,
    .page-id-75415 .tn-services-tech,
    .page-id-75415 .tn-framework,
    .page-id-75415 .tn-testimonials,
    .page-id-75415 .tn-services-cta {
        padding-top: 32px;
        padding-bottom: 24px;
    }
}

@media (max-width: 480px) {
    .page-id-75415 .tn-services,
    .page-id-75415 .tn-pov,
    .page-id-75415 .tn-framework {
        padding-top: 24px;
        padding-bottom: 20px;
    }

    .page-id-75415 .tn-methodology {
        padding-top: 20px;
        padding-bottom: 16px;
    }

    .page-id-75415 .tn-services-tech {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .page-id-75415 .tn-testimonials {
        padding-top: 16px;
        padding-bottom: 12px;
    }

    .page-id-75415 .tn-services-cta {
        padding-top: 20px;
        padding-bottom: 16px;
    }

    .page-id-75415 .tn-services__section-heading {
        margin-bottom: 16px;
    }

    .page-id-75415 .tn-services__pillars {
        margin-top: 16px;
    }

    .page-id-75415 .tn-service-pillar {
        padding-top: 10px;
    }

    .page-id-75415 .tn-service-pillar__icon {
        margin-bottom: 10px;
    }
}

/* =============================================================
   35C. AI STRATEGY PAGE — REMAINING RHYTHM + LIVE BUILD CLEANUP
   Scope: page-id-75415 + AI lab panels
   ============================================================= */
.page-id-75415 .tn-services__pillars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-id-75415 .tn-service-pillar__icon {
    width: min(100%, 240px);
    height: auto;
    aspect-ratio: 240 / 170;
}

.page-id-75415 .tn-pov__heading {
    margin-top: 0;
}

.page-id-75415 .tn-methodology {
    border-top: 1px solid #e8e0eb;
}

.page-id-75415 .tn-methodology__heading {
    margin-top: 0;
    font-size: 1.75rem;
    margin-bottom: 28px;
    font-weight: 700;
}

.page-id-75415 .tn-testimonials__heading {
    font-size: 1.75rem;
    margin-bottom: 28px;
    font-weight: 700;
}

.page-id-75415 .tn-framework__heading {
    margin-top: 0;
}

.page-id-75415 .tn-services__section-heading,
.page-id-75415 .tn-pov__heading,
.page-id-75415 .tn-framework__heading,
.page-id-75415 .tn-methodology__heading,
.page-id-75415 .tn-testimonials__heading {
    font-size: 1.75rem;
}

.page-id-75415 .tn-framework__intro {
    margin-bottom: 24px;
}

.tn-ai-live__meta[hidden],
.tn-ai-live__reasoning[hidden],
.tn-ai-code[hidden],
.tn-ai-sample[hidden] {
    display: none !important;
}

@media (max-width: 680px) {
    .page-id-75415 .tn-services__pillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .page-id-75415 .tn-services__section-heading,
    .page-id-75415 .tn-pov__heading,
    .page-id-75415 .tn-framework__heading,
    .page-id-75415 .tn-methodology__heading,
    .page-id-75415 .tn-testimonials__heading {
        font-size: 1.6rem;
    }

    .page-id-75415 .tn-methodology__heading {
        margin-bottom: 24px;
    }

    .page-id-75415 .tn-testimonials__heading {
        margin-bottom: 24px;
    }
}

@media (max-width: 480px) {
    .page-id-75415 .tn-services__pillars {
        grid-template-columns: 1fr;
    }
}

/* =============================================================
   36. AI LAB PHASE B BASELINE (component-scoped)
   ============================================================= */
.tn-lab-pulse-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.9rem;
    margin-top: 1rem;
}

.tn-lab-pulse-card {
    background: #ffffff;
    border: 1px solid #e2d7e8;
    border-radius: 12px;
    padding: 0.8rem 0.9rem;
    min-height: 110px;
    box-shadow: 0 10px 18px rgba(23, 13, 22, 0.05);
}

.tn-lab-pulse-card__label {
    margin: 0;
    color: #4f4254;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.tn-lab-pulse-card__value {
    margin: 0.72rem 0 0;
    color: #2f2732;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
    line-height: 1.45;
}

.tn-lab-pulse-card.is-unavailable {
    border-color: #dfcfd5;
    background: #fcf8f9;
}

.tn-lab-unavailable-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid #d7b9c2;
    border-radius: 999px;
    background: #fff1f5;
    color: #922b47;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.2rem 0.6rem;
}

.tn-lab-viz {
    border: 1px solid #e2d7e8;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf8fd 100%);
    padding: 1rem;
    display: grid;
    gap: 0.8rem;
    box-shadow: 0 14px 24px rgba(29, 18, 28, 0.06);
}

.tn-lab-viz__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.tn-lab-viz__status {
    margin: 0;
    flex: 1 1 280px;
    color: #5f5165;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
}

.tn-lab-viz__replay {
    border: 1px solid #c8b3d5;
    border-radius: 999px;
    background: #ffffff;
    color: #58206f;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    padding: 0.42rem 0.82rem;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.tn-lab-viz__replay:hover:not(:disabled) {
    border-color: #8c46ad;
    background: #f6ecfb;
    color: #4f1967;
}

.tn-lab-viz__replay:focus-visible {
    outline: 3px solid rgba(110, 36, 146, 0.32);
    outline-offset: 2px;
}

.tn-lab-viz__replay:disabled {
    cursor: not-allowed;
    opacity: 0.58;
    border-color: #dfd1e6;
    color: #8b7f91;
    background: #faf8fc;
}

.tn-lab-viz__status.is-loading {
    color: #2f6db1;
}

.tn-lab-viz__status.is-warning {
    color: #9a5700;
}

.tn-lab-viz__status.is-success {
    color: #1e7a4f;
}

.tn-lab-viz__status.is-error {
    color: #a81f3f;
}

.tn-lab-viz__nodes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.6rem;
}

.tn-lab-viz__node {
    border: 1px solid #d8cde0;
    border-radius: 10px;
    padding: 0.62rem 0.6rem;
    min-height: 84px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.42rem;
    text-align: left;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    letter-spacing: 0.01em;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.tn-lab-viz__node-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.35;
    color: inherit;
}

.tn-lab-viz__node-time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid #d7cae0;
    background: rgba(255, 255, 255, 0.75);
    color: #675c6d;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    padding: 0.24rem 0.48rem;
}

.tn-lab-viz__node.is-idle {
    background: #f8f2fb;
    color: #6f6277;
}

.tn-lab-viz__node.is-active {
    border-color: #7d3ea0;
    background: #f0e1f7;
    color: #4f2168;
    transform: translateY(-2px);
    animation: tn-lab-node-pulse 0.9s ease-in-out infinite alternate;
}

.tn-lab-viz__node.is-complete {
    border-color: #7cb29c;
    background: #e7f6ef;
    color: #1f5d40;
}

.tn-lab-viz__node.is-active .tn-lab-viz__node-time {
    border-color: #b487cd;
    background: rgba(255, 255, 255, 0.9);
    color: #4f2168;
}

.tn-lab-viz__node.is-complete .tn-lab-viz__node-time {
    border-color: #9fcfba;
    background: #f6fffb;
    color: #1f5d40;
}

.tn-lab-viz__meta {
    margin: 0;
    color: #675c6d;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    line-height: 1.5;
}

@keyframes tn-lab-node-pulse {
    from {
        box-shadow: 0 0 0 rgba(125, 62, 160, 0);
    }
    to {
        box-shadow: 0 10px 20px rgba(125, 62, 160, 0.22);
    }
}

.tn-lab-tabs {
    margin-top: 1rem;
}

.tn-lab-tabs__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0 0 0.9rem;
}

.tn-lab-tabs__tab {
    border: 1px solid #d8cde0;
    border-radius: 999px;
    background: #fff;
    color: #4d4053;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 0.44rem 0.82rem;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.tn-lab-tabs__tab:hover {
    border-color: #ba9cca;
    background: #f8f0fb;
}

.tn-lab-tabs__tab.is-active,
.tn-lab-tabs__tab[aria-selected="true"] {
    border-color: #6e2492;
    background: #6e2492;
    color: #ffffff;
}

.tn-lab-tabs__tab:focus-visible {
    outline: 3px solid rgba(110, 36, 146, 0.34);
    outline-offset: 2px;
}

.tn-lab-tabs__panel {
    margin: 0;
}

.tn-lab-unified {
    border: 1px solid #e2d7e8;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf8fd 100%);
    padding: 1rem;
    box-shadow: 0 14px 24px rgba(29, 18, 28, 0.06);
}

.tn-lab-unified__form {
    margin: 0;
}

.tn-lab-unified__result {
    margin-top: 0.85rem;
    border: 1px solid #e3d9e8;
    border-radius: 10px;
    background: #fcf9fd;
    padding: 0.65rem 0.75rem;
}

.tn-lab-unified__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.tn-lab-unified__meta span {
    display: block;
    color: #65596a;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.tn-lab-unified__meta strong {
    display: block;
    margin-top: 0.12rem;
    color: #332b37;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.35;
    word-break: break-word;
}

.tn-lab-unified__summary {
    margin: 0.62rem 0 0;
    color: #4e4352;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    line-height: 1.5;
}

.tn-lab-unified__fallback {
    margin: 0.5rem 0 0;
    color: #9a5700;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    line-height: 1.45;
}

.tn-lab-unified__continuity {
    margin-top: 0.72rem;
    border-top: 1px solid #e6dcea;
    padding-top: 0.62rem;
}

.tn-lab-unified__continuity-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tn-lab-unified__continuity-actions .tn-ai-btn {
    font-size: 0.74rem;
    padding: 0.32rem 0.66rem;
}

.tn-lab-unified__continuity-status {
    margin: 0.44rem 0 0;
    color: #665b6b;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    line-height: 1.4;
}

.tn-lab-unified__continuity-status.is-loading { color: #2563eb; }
.tn-lab-unified__continuity-status.is-success { color: #15803d; }
.tn-lab-unified__continuity-status.is-warning { color: #b45309; }
.tn-lab-unified__continuity-status.is-error { color: #b91c1c; }

.tn-memory-viewer-compat {
    margin: 1rem auto 0;
    max-width: min(960px, calc(100% - 2rem));
    padding: 0.75rem 0.9rem;
    border: 1px solid #e1d6e6;
    border-radius: 10px;
    background: #fbf8fd;
    font-family: var(--tn-font-body);
    font-size: 0.88rem;
    line-height: 1.55;
}

.tn-ai-feedback,
.tn-chatbot__feedback {
    margin-top: 0.9rem;
}

.tn-feedback {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    border: 1px solid #e3d9e8;
    border-radius: 10px;
    background: #fcf9fd;
    padding: 0.55rem 0.65rem;
}

.tn-feedback__prompt {
    color: #564a5c;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
}

.tn-feedback__controls {
    display: inline-flex;
    gap: 0.45rem;
}

.tn-feedback__btn {
    border: 1px solid #d2c3da;
    border-radius: 999px;
    background: #ffffff;
    color: #4a404f;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 0.28rem 0.62rem;
    cursor: pointer;
}

.tn-feedback__btn:hover {
    border-color: #bda6c8;
    background: #f7f0fa;
}

.tn-feedback__btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.tn-feedback__btn.is-selected {
    border-color: #6a1f8b;
    background: #f2e5f8;
    color: #4f2067;
}

.tn-feedback__status {
    color: #6b6070;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
}

@media (max-width: 991px) {
    .tn-lab-pulse-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-lab-viz__nodes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .tn-lab-viz__nodes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tn-lab-pulse-strip {
        grid-template-columns: 1fr;
    }

    .tn-lab-viz {
        padding: 0.8rem;
    }

    .tn-lab-viz__top {
        flex-direction: column;
        align-items: stretch;
    }

    .tn-lab-viz__status {
        flex-basis: auto;
    }

    .tn-lab-viz__replay {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .tn-lab-viz__nodes {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .tn-lab-viz__node {
        min-height: 78px;
    }

    .tn-lab-viz__node-time {
        font-size: 0.66rem;
    }

    .tn-lab-tabs__list {
        gap: 0.45rem;
    }

    .tn-lab-tabs__tab {
        width: 100%;
        text-align: left;
    }

    .tn-lab-unified {
        padding: 0.85rem;
    }

    .tn-lab-unified__meta {
        grid-template-columns: 1fr;
    }

    .tn-feedback {
        align-items: flex-start;
    }

    .tn-ai-live-artifacts {
        padding: 0.72rem 0.72rem;
    }

    .tn-ai-live-artifacts__actions {
        align-items: stretch;
    }

    .tn-ai-live-artifacts__actions .tn-ai-btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .tn-ai-live-artifacts__ttl {
        width: 100%;
        justify-content: space-between;
    }

    .tn-ai-live-artifacts__ttl input {
        width: 84px;
    }

    .tn-ai-live-artifacts__cards {
        grid-template-columns: 1fr;
    }

    .tn-ai-live-artifacts__share-card {
        flex-direction: column;
        align-items: stretch;
    }
}

/* =============================================================
   36A. AI LAB EXPERIENCE REFRESH (page-scoped, additive)
   ============================================================= */
.tn-ai-lab-page {
    --tn-lab-surface: #f6f2f9;
    --tn-lab-card: #ffffff;
    --tn-lab-border: #e4d8ea;
    --tn-lab-shadow: 0 24px 46px rgba(33, 20, 37, 0.08);
}

.tn-ai-lab-page .site-content .container {
    max-width: none;
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

.tn-ai-lab-page .site-content .content-area,
.tn-ai-lab-page #primary {
    width: 100% !important;
    float: none !important;
    max-width: 100%;
}

.tn-ai-lab-page #secondary,
.tn-ai-lab-page .page-header {
    display: none !important;
}

/* Keep one semantic page H1 for screen readers/SEO tools without visual duplication in the hero. */
.tn-ai-lab-page .entry-header {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
}

.tn-ai-lab-page .entry-content {
    margin-top: 0;
}

.tn-ai-lab-page .entry-content > .wp-block-html {
    margin-bottom: 0;
}

.tn-ai-lab-page .tn-page-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(64px, 10vw, 108px) 24px clamp(56px, 8vw, 84px);
    margin: 0;
    background:
        radial-gradient(circle at 82% 14%, rgba(144, 186, 181, 0.22), transparent 46%),
        radial-gradient(circle at 24% 84%, rgba(110, 36, 146, 0.2), transparent 54%),
        linear-gradient(142deg, #171019 0%, #241228 56%, #130d18 100%);
}

.tn-ai-lab-page .tn-page-hero::before {
    content: '';
    position: absolute;
    inset: auto -12% -28% auto;
    width: clamp(280px, 38vw, 520px);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(140, 70, 173, 0.3), transparent 68%);
    pointer-events: none;
}

.tn-ai-lab-page .tn-page-hero--fade::after {
    display: none;
}

.tn-ai-lab-page .tn-page-hero__inner {
    position: relative;
    z-index: 1;
    max-width: min(1140px, calc(100% - 2rem));
}

.tn-ai-lab-page .tn-page-hero__badge {
    border-color: rgba(144, 186, 181, 0.45);
    background: rgba(15, 11, 21, 0.52);
    color: #bfe0db;
}

.tn-ai-lab-page .tn-page-hero__heading {
    font-size: clamp(2.3rem, 4.7vw, 3.45rem);
    line-height: 1.08;
    margin-top: 0.55rem;
}

.tn-ai-lab-page .tn-page-hero__text {
    max-width: 720px;
    font-size: 1.02rem;
    color: #d4cad8;
}

.tn-ai-lab-page .tn-page-hero__ctas {
    margin-top: 1.55rem;
    gap: 0.75rem;
}

.tn-ai-lab-page .tn-page-hero__cta {
    min-height: 44px;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.tn-ai-lab-page .tn-services-tech {
    width: 100%;
    left: auto;
    transform: none;
    border: 0;
    padding: clamp(8px, 1.2vw, 16px) 24px;
    background: transparent;
}

.tn-ai-lab-page .tn-services-tech__inner {
    width: 100%;
    max-width: min(1120px, calc(100% - 2rem));
    border: 1px solid var(--tn-lab-border);
    border-radius: 22px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf9fd 100%);
    box-shadow: var(--tn-lab-shadow);
    padding: clamp(1.15rem, 2.4vw, 2rem);
}

.tn-ai-lab-page .tn-services__section-heading {
    margin: 0;
    color: #2d1f36;
    font-size: clamp(1.9rem, 3.8vw, 2.75rem);
    line-height: 1.1;
    text-wrap: balance;
}

.tn-ai-lab-page .tn-services__section-heading::after {
    content: '';
    display: block;
    width: 72px;
    height: 3px;
    border-radius: 999px;
    margin: 0.72rem auto 0;
    background: linear-gradient(90deg, #6e2492 0%, #90bab5 100%);
    opacity: 0.72;
}

.tn-ai-lab-page .tn-services-tech__narrative {
    max-width: 760px;
    margin: 0.9rem auto 0;
    font-size: 1rem;
    line-height: 1.65;
    color: #54485c;
}

.tn-ai-lab-page .tn-lab-pulse .tn-services-tech__inner {
    background:
        radial-gradient(circle at 12% 14%, rgba(110, 36, 146, 0.08), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #fbf8fd 100%);
}

.tn-ai-lab-page .tn-lab-pulse-strip {
    margin-top: 1.35rem;
    gap: 0.82rem;
}

.tn-ai-lab-page .tn-lab-pulse-card {
    border: 1px solid #dfd1e8;
    border-radius: 14px;
    padding: 0.98rem 0.95rem;
    min-height: 136px;
    background: linear-gradient(178deg, #ffffff 0%, #fbf7fd 100%);
    box-shadow: 0 14px 22px rgba(34, 21, 40, 0.07);
}

.tn-ai-lab-page .tn-lab-pulse-card__label {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    color: #5f5067;
}

.tn-ai-lab-page .tn-lab-pulse-card__value {
    margin-top: 0.68rem;
    font-size: 0.88rem;
    line-height: 1.52;
    color: #322b37;
}

.tn-ai-lab-page .tn-lab-orchestration .tn-services-tech__inner {
    background: linear-gradient(180deg, #ffffff 0%, #f9f6fb 100%);
}

.tn-ai-lab-page .tn-lab-viz {
    border: 1px solid #dccfe5;
    border-radius: 16px;
    padding: 1.1rem;
    background:
        radial-gradient(circle at 90% 9%, rgba(144, 186, 181, 0.15), transparent 44%),
        linear-gradient(180deg, #ffffff 0%, #fbf8fd 100%);
    box-shadow: 0 16px 30px rgba(30, 19, 32, 0.09);
}

.tn-ai-lab-page .tn-lab-viz__status {
    font-size: 0.9rem;
    color: #4f4357;
}

.tn-ai-lab-page .tn-lab-viz__replay {
    border-color: #b89dca;
    background: #fff;
    color: #55266c;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-viz__nodes {
    margin-top: 0.1rem;
    gap: 0.7rem;
}

.tn-ai-lab-page .tn-lab-viz__node {
    border-radius: 12px;
    min-height: 92px;
    padding: 0.7rem 0.66rem;
}

.tn-ai-lab-page .tn-lab-viz__node-label {
    font-size: 0.8rem;
}

.tn-ai-lab-page .tn-lab-viz__node-time {
    font-size: 0.69rem;
}

.tn-ai-lab-page .tn-lab-viz__node.is-idle {
    background: #f5effa;
    color: #5d5463;
}

.tn-ai-lab-page .tn-lab-viz__node.is-active {
    border-color: #7a3da0;
    background: #efe3f6;
    color: #4a2164;
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete {
    border-color: #79ad99;
    background: #e9f8f0;
    color: #1f5f41;
}

.tn-ai-lab-page .tn-lab-unified {
    border: 1px solid #ddd2e6;
    border-radius: 16px;
    padding: 1.08rem;
    background:
        radial-gradient(circle at 14% 12%, rgba(110, 36, 146, 0.06), transparent 35%),
        linear-gradient(180deg, #ffffff 0%, #fbf7fd 100%);
    box-shadow: 0 16px 30px rgba(30, 19, 32, 0.08);
}

.tn-ai-lab-page .tn-lab-tools .tn-services-tech__inner {
    background:
        radial-gradient(circle at 10% 14%, rgba(110, 36, 146, 0.08), transparent 34%),
        radial-gradient(circle at 92% 84%, rgba(144, 186, 181, 0.15), transparent 45%),
        linear-gradient(180deg, #ffffff 0%, #faf7fc 100%);
}

.tn-ai-lab-page .tn-lab-tabs {
    margin-top: 1.2rem;
}

.tn-ai-lab-page .tn-lab-tabs__list {
    justify-content: center;
    gap: 0.48rem;
    margin-bottom: 1rem;
    padding: 0.42rem;
    border: 1px solid #dfd2e7;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffffff, #f8f2fb);
}

.tn-ai-lab-page .tn-lab-tabs__tab {
    min-height: 38px;
    border-color: #d8cae2;
    padding: 0.46rem 0.92rem;
    font-size: 0.79rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-tabs__tab.is-active,
.tn-ai-lab-page .tn-lab-tabs__tab[aria-selected="true"] {
    border-color: #6e2492;
    background: linear-gradient(135deg, #6e2492, #51206c);
}

.tn-ai-lab-page .tn-lab-tabs__panel {
    border: 1px solid #e0d4e8;
    border-radius: 16px;
    background: #ffffff;
    padding: clamp(0.9rem, 2vw, 1.3rem);
    box-shadow: 0 16px 28px rgba(28, 17, 30, 0.07);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool {
    margin: 0;
    border: 1px solid #e5d8eb;
    border-radius: 15px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf8fd 100%);
    box-shadow: 0 14px 24px rgba(30, 18, 34, 0.07);
}

.tn-ai-lab-page .tn-ai-form {
    gap: 0.7rem;
}

.tn-ai-lab-page .tn-ai-label {
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    color: #4a3d52;
}

.tn-ai-lab-page .tn-ai-input,
.tn-ai-lab-page .tn-ai-textarea {
    border: 1px solid #d9cbe3;
    border-radius: 12px;
    background: #ffffff;
}

.tn-ai-lab-page .tn-ai-textarea {
    min-height: 132px;
}

.tn-ai-lab-page .tn-ai-btn {
    border-radius: 10px;
    min-height: 38px;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-ai-btn:focus-visible,
.tn-ai-lab-page .tn-lab-tabs__tab:focus-visible {
    outline: 3px solid rgba(110, 36, 146, 0.3);
    outline-offset: 2px;
}

.tn-ai-lab-page .tn-lab-cta-band {
    margin-top: clamp(20px, 4vw, 44px);
    padding: clamp(58px, 7vw, 84px) 24px;
    background:
        radial-gradient(circle at 78% 18%, rgba(144, 186, 181, 0.16), transparent 38%),
        linear-gradient(148deg, #120d17 0%, #26152c 58%, #140d19 100%);
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__inner {
    max-width: 760px;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__heading {
    font-size: clamp(2rem, 4vw, 2.7rem);
    line-height: 1.06;
    text-wrap: balance;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__text {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 1100px) {
    .tn-ai-lab-page .tn-services-tech__inner,
    .tn-ai-lab-page .tn-page-hero__inner {
        max-width: calc(100% - 1.5rem);
    }

    .tn-ai-lab-page .tn-lab-pulse-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .tn-ai-lab-page .tn-services-tech {
        padding: 34px 16px;
    }

    .tn-ai-lab-page .tn-page-hero {
        padding: 56px 16px 54px;
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .tn-ai-lab-page .tn-services-tech__inner {
        border-radius: 18px;
        padding: 1rem;
    }

    .tn-ai-lab-page .tn-services__section-heading {
        font-size: 1.8rem;
    }

    .tn-ai-lab-page .tn-services-tech__narrative {
        font-size: 0.93rem;
        margin-top: 0.7rem;
    }

    .tn-ai-lab-page .tn-lab-tabs__list {
        border-radius: 14px;
        justify-content: flex-start;
    }

    .tn-ai-lab-page .tn-lab-tabs__tab {
        flex: 1 1 calc(50% - 0.4rem);
        text-align: center;
    }
}

@media (max-width: 640px) {
    .tn-ai-lab-page .tn-page-hero__ctas {
        display: grid;
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-pulse-strip {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-tabs__tab {
        flex-basis: 100%;
    }

    .tn-ai-lab-page .tn-lab-tabs__panel {
        padding: 0.75rem;
    }
}

/* =============================================================
   36B. AI LAB POLISH PASS (additive overrides)
   ============================================================= */
.tn-ai-lab-page .tn-services-tech {
    padding: clamp(34px, 5.2vw, 58px) 20px;
}

.tn-ai-lab-page .tn-services-tech__inner {
    border-radius: 20px;
    padding: clamp(1.25rem, 2.2vw, 2.1rem);
}

.tn-ai-lab-page .tn-services__section-heading {
    letter-spacing: -0.01em;
}

.tn-ai-lab-page .tn-services-tech__narrative {
    margin-top: 0.8rem;
    max-width: 700px;
}

.tn-ai-lab-page .tn-lab-pulse-strip {
    gap: 0.72rem;
}

.tn-ai-lab-page .tn-lab-pulse-card {
    position: relative;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-pulse-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, rgba(110, 36, 146, 0.65), rgba(144, 186, 181, 0.5));
}

.tn-ai-lab-page .tn-lab-pulse-card:hover {
    transform: translateY(-2px);
    border-color: #cfbbdc;
    box-shadow: 0 16px 26px rgba(34, 21, 40, 0.1);
}

.tn-ai-lab-page .tn-lab-viz,
.tn-ai-lab-page .tn-lab-unified,
.tn-ai-lab-page .tn-lab-tabs__panel {
    border-radius: 14px;
}

.tn-ai-lab-page .tn-lab-viz__meta {
    font-size: 0.8rem;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__title {
    font-size: clamp(1.75rem, 3vw, 2.05rem);
    line-height: 1.05;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__desc {
    font-size: 0.9rem;
    line-height: 1.6;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-status {
    font-size: 0.82rem;
}

.tn-ai-lab-page .tn-ai-btn {
    padding-left: 0.9rem;
    padding-right: 0.9rem;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 1.1rem;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(144, 186, 181, 0.35);
    background: rgba(255, 255, 255, 0.04);
    color: #9fd2cb;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.4rem 0.84rem;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a:hover {
    transform: translateY(-1px);
    border-color: rgba(144, 186, 181, 0.62);
    background: rgba(144, 186, 181, 0.12);
    color: #d9f1ec;
}

@media (max-width: 900px) {
    .tn-ai-lab-page .tn-services-tech {
        padding-left: 16px;
        padding-right: 16px;
    }

    .tn-ai-lab-page .tn-lab-tabs__list {
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .tn-ai-lab-page .tn-lab-tabs__tab {
        flex: 0 0 auto;
        white-space: nowrap;
        min-width: max-content;
    }
}

@media (max-width: 768px) {
    .tn-ai-lab-page .tn-services__section-heading {
        font-size: clamp(1.5rem, 7.5vw, 1.9rem);
    }

    .tn-ai-lab-page .tn-lab-pulse-card {
        min-height: 118px;
    }

    .tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__title {
        font-size: 1.45rem;
    }

    .tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__desc {
        font-size: 0.86rem;
    }
}

@media (max-width: 640px) {
    .tn-ai-lab-page .tn-page-hero {
        padding-top: 46px;
        padding-bottom: 42px;
    }

    .tn-ai-lab-page .tn-page-hero__heading {
        font-size: clamp(1.7rem, 10vw, 2.1rem);
    }

    .tn-ai-lab-page .tn-page-hero__text {
        font-size: 0.89rem;
    }

    .tn-ai-lab-page .tn-services-tech {
        padding: 24px 12px;
    }

    .tn-ai-lab-page .tn-services-tech__inner {
        border-radius: 16px;
        padding: 0.85rem 0.78rem;
    }

    .tn-ai-lab-page .tn-lab-viz,
    .tn-ai-lab-page .tn-lab-unified,
    .tn-ai-lab-page .tn-lab-tabs__panel {
        border-radius: 12px;
    }

    .tn-ai-lab-page .tn-lab-tabs__list {
        padding: 0.35rem;
        margin-bottom: 0.7rem;
        border-radius: 12px;
    }

    .tn-ai-lab-page .tn-lab-tabs__tab {
        min-height: 34px;
        font-size: 0.72rem;
        padding: 0.4rem 0.62rem;
    }

    .tn-ai-lab-page .tn-ai-label {
        font-size: 0.76rem;
    }

    .tn-ai-lab-page .tn-ai-textarea {
        min-height: 112px;
    }

    .tn-ai-lab-page .tn-ai-btn {
        font-size: 0.72rem;
        min-height: 34px;
    }

    .tn-ai-lab-page .tn-lab-cta-band {
        padding: 48px 16px;
    }

    .tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__heading {
        font-size: 1.75rem;
    }

    .tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt {
        gap: 0.36rem;
    }

    .tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a {
        font-size: 0.72rem;
        min-height: 34px;
        width: 100%;
    }
}

/* =============================================================
   36C. AI LAB SCADA REDESIGN (page-scoped, additive)
   ============================================================= */
.tn-ai-lab-page {
    --tn-lab-bg: #060d16;
    --tn-lab-bg-soft: #0b1624;
    --tn-lab-surface: #0f1b2b;
    --tn-lab-surface-soft: #142338;
    --tn-lab-card: #17293f;
    --tn-lab-border: #2c425d;
    --tn-lab-border-strong: #3a5a7c;
    --tn-lab-grid-line: rgba(123, 161, 206, 0.16);
    --tn-lab-accent: #39d0c3;
    --tn-lab-accent-soft: rgba(57, 208, 195, 0.2);
    --tn-lab-signal: #86b8ff;
    --tn-lab-signal-soft: rgba(134, 184, 255, 0.2);
    --tn-lab-warn: #f2c06d;
    --tn-lab-success: #68d59f;
    --tn-lab-text: #e9f0fa;
    --tn-lab-muted: #99aec7;
    --tn-lab-shadow: 0 26px 52px rgba(4, 10, 18, 0.52);
    --tn-lab-rail-offset: 0px;
    --tn-lab-space-hero-top: 24px;
    --tn-lab-space-hero-bottom: 16px;
    --tn-lab-space-section-y: 12px;
    --tn-lab-space-faq-y: 12px;
    --tn-lab-space-intake-top: 16px;
    --tn-lab-space-intake-bottom: 12px;
    --tn-lab-space-cta-y: 20px;
}

.tn-ai-lab-page .site-content {
    background:
        radial-gradient(circle at 88% 5%, rgba(67, 132, 210, 0.16), transparent 32%),
        radial-gradient(circle at 8% 26%, rgba(57, 208, 195, 0.12), transparent 34%),
        linear-gradient(180deg, #070f1a 0%, #09111d 34%, #060b14 100%);
}

.tn-ai-lab-page #tn-lab-pro-shell,
.tn-ai-lab-page #lab-command-strip {
    display: none;
}

.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell,
.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
    display: block;
}

.tn-ai-lab-page.tn-lab-view-pro [data-lab-open-pro] {
    display: none;
}

.tn-ai-lab-page .site-content .container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.tn-ai-lab-page .site-content .content-area,
.tn-ai-lab-page #primary {
    width: 100%;
    max-width: 100%;
    float: none;
    padding-right: 0 !important;
    margin-right: 0;
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: var(--tn-lab-space-hero-top) 24px var(--tn-lab-space-hero-bottom);
    border-bottom: 1px solid var(--tn-lab-border);
    background:
        radial-gradient(circle at 90% 12%, rgba(126, 177, 244, 0.2), transparent 35%),
        radial-gradient(circle at 18% 78%, rgba(57, 208, 195, 0.18), transparent 40%),
        linear-gradient(165deg, #1a1118 0%, #121729 34%, #0a1422 100%);
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent 0 42px, var(--tn-lab-grid-line) 42px 43px),
        repeating-linear-gradient(90deg, transparent 0 42px, var(--tn-lab-grid-line) 42px 43px);
    opacity: 0.28;
    pointer-events: none;
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero::after {
    display: none;
}

.tn-ai-lab-page .tn-lab-hero__inner {
    position: relative;
    z-index: 1;
    max-width: min(1240px, calc(100% - 2rem));
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.92fr);
    gap: clamp(1rem, 3vw, 2.6rem);
    align-items: start;
}

.tn-ai-lab-page .tn-lab-hero__content {
    max-width: 760px;
}

.tn-ai-lab-page .tn-page-hero__badge {
    border-color: rgba(57, 208, 195, 0.46);
    background: rgba(5, 13, 21, 0.55);
    color: #b8eee7;
}

.tn-ai-lab-page .tn-page-hero__heading {
    margin-top: 0.66rem;
    color: #eef4fb;
    font-size: clamp(2.15rem, 4.2vw, 3.45rem);
    line-height: 1.03;
    text-wrap: balance;
}

.tn-ai-lab-page .tn-page-hero__text {
    max-width: 670px;
    margin-top: 1rem;
    color: #bdd0e5;
    font-size: 1.06rem;
    line-height: 1.62;
}

.tn-ai-lab-page .tn-lab-hero__context {
    margin: 0.6rem 0 0;
    max-width: 690px;
    color: #9bb6d1;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    line-height: 1.55;
}

.tn-ai-lab-page .tn-lab-trust-line {
    margin: 0.9rem 0 0;
    border: 1px solid rgba(91, 130, 166, 0.68);
    border-radius: 10px;
    background: rgba(9, 19, 30, 0.78);
    color: #afd1f1;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    line-height: 1.45;
    letter-spacing: 0.02em;
    padding: 0.46rem 0.62rem;
}

.tn-ai-lab-page .tn-lab-trust-line.is-healthy {
    border-color: rgba(57, 208, 195, 0.76);
    color: #c8fdf4;
}

.tn-ai-lab-page .tn-lab-trust-line.is-warning {
    border-color: rgba(242, 192, 109, 0.72);
    color: #f5d291;
}

.tn-ai-lab-page .tn-lab-trust-line.is-error {
    border-color: rgba(240, 143, 159, 0.76);
    color: #f6c2cb;
}

.tn-ai-lab-page .tn-lab-pro-header {
    padding: 0 24px var(--tn-lab-space-section-y);
}

.tn-ai-lab-page .tn-lab-pro-header__inner {
    max-width: min(1240px, calc(100% - 2rem));
    margin: 0 auto;
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(12, 23, 36, 0.88), rgba(8, 17, 28, 0.96));
    box-shadow: 0 14px 26px rgba(4, 10, 18, 0.42);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.8rem 1rem;
    align-items: center;
    padding: 0.68rem 0.74rem;
}

.tn-ai-lab-page .tn-lab-pro-header__back {
    min-height: 38px;
    white-space: nowrap;
}

.tn-ai-lab-page .tn-lab-pro-header__title {
    margin: 0;
    color: #dcecff;
    font-family: var(--tn-font-body);
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-pro-header__title:focus-visible {
    outline: 2px solid rgba(57, 208, 195, 0.78);
    outline-offset: 2px;
}

.tn-ai-lab-page .tn-lab-pro-header__nav {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.tn-ai-lab-page .tn-lab-pro-header__nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(95, 129, 166, 0.76);
    border-radius: 999px;
    background: rgba(11, 22, 34, 0.76);
    color: #c9def5;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.3rem 0.58rem;
}

.tn-ai-lab-page .tn-lab-pro-header__nav a:hover,
.tn-ai-lab-page .tn-lab-pro-header__nav a:focus-visible {
    border-color: rgba(57, 208, 195, 0.84);
    background: rgba(57, 208, 195, 0.22);
    color: #ddfffb;
}

.tn-ai-lab-page .tn-lab-command-strip {
    padding: 0 24px var(--tn-lab-space-section-y);
}

.tn-ai-lab-page .tn-lab-command-strip__inner {
    max-width: min(1240px, calc(100% - 2rem));
    margin: 0 auto;
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(12, 23, 36, 0.82), rgba(9, 18, 28, 0.94));
    box-shadow: 0 14px 26px rgba(4, 10, 18, 0.42);
    padding: 0.58rem 0.62rem;
}

.tn-ai-lab-page .tn-page-hero__ctas {
    margin-top: 1.62rem;
    gap: 0.75rem;
}

.tn-ai-lab-page .tn-page-hero__cta {
    min-height: 44px;
    border-radius: 10px;
    letter-spacing: 0.03em;
    font-size: 0.82rem;
}

.tn-ai-lab-page .tn-page-hero__cta--primary {
    background: linear-gradient(135deg, #32bdae, #2f9ec0);
    border-color: #3ec3b7;
    color: #08141e;
}

.tn-ai-lab-page .tn-page-hero__cta--primary:hover {
    background: linear-gradient(135deg, #47d5c7, #42aed6);
    color: #07131e;
    box-shadow: 0 12px 26px rgba(57, 208, 195, 0.28);
}

.tn-ai-lab-page .tn-page-hero__cta--outline {
    border-color: rgba(134, 184, 255, 0.52);
    color: #d9e9ff;
    background: rgba(7, 16, 28, 0.38);
}

.tn-ai-lab-page .tn-page-hero__cta--outline:hover {
    border-color: rgba(134, 184, 255, 0.82);
    background: rgba(134, 184, 255, 0.18);
    color: #eff6ff;
}

.tn-ai-lab-page .tn-lab-hero__subline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: #96b4ce;
    font-family: var(--tn-font-body);
    font-size: 0.8rem;
    line-height: 1.5;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.tn-ai-lab-page .tn-lab-hero__metrics {
    margin-top: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    border: 1px solid rgba(76, 112, 153, 0.7);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(12, 23, 36, 0.76), rgba(9, 18, 28, 0.9));
    padding: 0.5rem;
}

.tn-ai-lab-page .tn-lab-command-strip__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.56rem;
    margin-top: 0.56rem;
}

.tn-ai-lab-page .tn-lab-hero-metric {
    border: 1px solid rgba(88, 120, 156, 0.7);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(15, 27, 42, 0.88), rgba(10, 20, 32, 0.95));
    padding: 0.5rem 0.56rem;
    display: grid;
    gap: 0.2rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.tn-ai-lab-page .tn-lab-hero-metric__label {
    color: #86a9cc;
    font-family: var(--tn-font-body);
    font-size: 0.61rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-hero-metric__value {
    color: #eef5ff;
    font-family: var(--tn-font-body);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.1;
}

.tn-ai-lab-page .tn-lab-hero-metric__detail {
    color: #93adc6;
    font-family: var(--tn-font-body);
    font-size: 0.63rem;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-lab-hero-metric__providers {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    margin-top: 0.18rem;
}

.tn-ai-lab-page .tn-lab-provider-dot {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: rgba(160, 182, 207, 0.82);
    box-shadow: 0 0 0 2px rgba(160, 182, 207, 0.22);
}

.tn-ai-lab-page .tn-lab-provider-dot.is-ok {
    background: #2ed36f;
    box-shadow: 0 0 0 2px rgba(46, 211, 111, 0.3);
}

.tn-ai-lab-page .tn-lab-provider-dot.is-degraded {
    background: #ffc400;
    box-shadow: 0 0 0 2px rgba(255, 196, 0, 0.3);
}

.tn-ai-lab-page .tn-lab-provider-dot.is-error {
    background: #ff4500;
    box-shadow: 0 0 0 2px rgba(255, 69, 0, 0.32);
}

.tn-ai-lab-page .tn-lab-hero-metric.is-success {
    border-color: rgba(57, 208, 195, 0.7);
    box-shadow: 0 10px 18px rgba(57, 208, 195, 0.2);
}

.tn-ai-lab-page .tn-lab-hero-metric.is-warning {
    border-color: rgba(242, 192, 109, 0.72);
}

.tn-ai-lab-page .tn-lab-hero-metric.is-error {
    border-color: rgba(240, 143, 159, 0.78);
}

.tn-ai-lab-page .tn-lab-hero-metric.is-signal {
    border-color: rgba(134, 184, 255, 0.78);
    box-shadow: 0 10px 18px rgba(134, 184, 255, 0.18);
}

.tn-ai-lab-page .tn-lab-sync {
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #8fc2f0;
}

.tn-ai-lab-page .tn-lab-sync.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-sync.is-success {
    color: #8ad4ff;
}

.tn-ai-lab-page .tn-lab-live-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--tn-lab-accent);
    box-shadow: 0 0 0 6px rgba(57, 208, 195, 0.2);
    animation: tn-lab-live-pulse 1.6s ease-in-out infinite;
}

@keyframes tn-lab-live-pulse {
    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.14);
        opacity: 0.7;
    }
}

.tn-ai-lab-page .tn-lab-hero__console {
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(11, 24, 39, 0.92) 0%, rgba(8, 18, 30, 0.96) 100%);
    box-shadow: var(--tn-lab-shadow);
    padding: 1rem 1rem 0.95rem;
}

.tn-ai-lab-page .tn-lab-hero__console-heading {
    margin: 0;
    color: #d9ebff;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.11em;
}

.tn-ai-lab-page .tn-lab-hero__console-list {
    margin: 0.72rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.5rem;
}

.tn-ai-lab-page .tn-lab-hero__console-list li {
    display: grid;
    gap: 0.16rem;
    border: 1px solid rgba(61, 90, 123, 0.68);
    border-radius: 10px;
    background: rgba(14, 30, 49, 0.74);
    padding: 0.5rem 0.6rem;
}

.tn-ai-lab-page .tn-lab-hero__console-list span {
    color: #8ba5bf;
    font-family: var(--tn-font-body);
    font-size: 0.67rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-hero__console-list strong {
    color: #dce9f8;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-lab-hero__console-note {
    margin: 0.75rem 0 0;
    color: #90aac5;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-grid-nav {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-lab-grid-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(95, 129, 166, 0.76);
    border-radius: 999px;
    background: rgba(12, 23, 36, 0.68);
    color: #cbe1f8;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.28rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-grid-nav a:hover {
    border-color: rgba(57, 208, 195, 0.82);
    background: rgba(57, 208, 195, 0.2);
    color: #d5fff9;
}

.tn-ai-lab-page .tn-lab-section-rail {
    display: none;
    position: relative;
    left: auto;
    top: auto;
    z-index: 34;
    width: auto;
    border: 1px solid rgba(79, 113, 146, 0.84);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(8, 18, 29, 0.92), rgba(7, 14, 24, 0.95));
    box-shadow: 0 14px 24px rgba(3, 8, 14, 0.44);
    padding: 0.62rem 0.56rem 0.72rem;
}

.admin-bar.tn-ai-lab-page .tn-lab-section-rail {
    top: calc(6.8rem + 32px);
}

@media screen and (max-width: 782px) {
    .admin-bar.tn-ai-lab-page .tn-lab-section-rail {
        top: calc(6.8rem + 46px);
    }
}

.tn-ai-lab-page .tn-lab-section-rail__label {
    margin: 0 0 0.48rem;
    color: #8db0cf;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-section-rail__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.26rem;
}

.tn-ai-lab-page .tn-lab-section-rail__list a {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.42rem;
    border: 1px solid rgba(80, 112, 145, 0.7);
    border-radius: 8px;
    background: rgba(12, 23, 35, 0.74);
    color: #a9c2dd;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
    padding: 0.26rem 0.34rem;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-section-rail__list a span {
    border: 1px solid rgba(97, 129, 161, 0.78);
    border-radius: 999px;
    background: rgba(9, 18, 29, 0.8);
    color: #8eacc9;
    font-size: 0.5rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.12rem 0.28rem;
}

.tn-ai-lab-page .tn-lab-section-rail__list a:hover {
    border-color: rgba(57, 208, 195, 0.76);
    background: rgba(22, 54, 60, 0.66);
    color: #d7fff9;
}

.tn-ai-lab-page .tn-lab-section-rail__list a.is-active {
    border-color: rgba(57, 208, 195, 0.88);
    background: rgba(25, 65, 70, 0.78);
    color: #dcfffb;
    box-shadow: 0 8px 16px rgba(57, 208, 195, 0.18);
}

.tn-ai-lab-page .tn-lab-section-rail__list a.is-active span {
    border-color: rgba(57, 208, 195, 0.78);
    background: rgba(57, 208, 195, 0.18);
    color: #bff6ef;
}

.tn-ai-lab-page .tn-lab-section-rail__list a:focus-visible {
    outline: 2px solid rgba(57, 208, 195, 0.78);
    outline-offset: 2px;
}

.tn-ai-lab-page .tn-lab-section-rail__list a.is-missing-target {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
    text-decoration: line-through;
}

.tn-ai-lab-page .tn-lab-section-rail__progress {
    margin-top: 0.56rem;
    height: 5px;
    border-radius: 999px;
    background: rgba(94, 122, 151, 0.34);
    overflow: hidden;
}

.tn-ai-lab-page .tn-lab-section-rail__progress span {
    display: block;
    width: 0%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--tn-lab-accent), var(--tn-lab-signal));
    transition: width 0.24s ease;
}

.tn-ai-lab-page .tn-services-tech {
    width: 100%;
    left: auto;
    transform: none;
    border: 0;
    background: transparent;
    padding: var(--tn-lab-space-section-y) 20px;
}

/* Anchor jumps from section rail should account for fixed top nav + sticky flow strip. */
.tn-ai-lab-page [id^="lab-"],
.tn-ai-lab-page #tn-memory-viewer,
.tn-ai-lab-page #guided-assistant {
    scroll-margin-top: 96px;
}

.admin-bar.tn-ai-lab-page [id^="lab-"],
.admin-bar.tn-ai-lab-page #tn-memory-viewer,
.admin-bar.tn-ai-lab-page #guided-assistant {
    scroll-margin-top: 128px;
}

.tn-ai-lab-page.tn-lab-viz-sticky-active [id^="lab-"],
.tn-ai-lab-page.tn-lab-viz-sticky-active #tn-memory-viewer,
.tn-ai-lab-page.tn-lab-viz-sticky-active #guided-assistant {
    scroll-margin-top: 182px;
}

.admin-bar.tn-ai-lab-page.tn-lab-viz-sticky-active [id^="lab-"],
.admin-bar.tn-ai-lab-page.tn-lab-viz-sticky-active #tn-memory-viewer,
.admin-bar.tn-ai-lab-page.tn-lab-viz-sticky-active #guided-assistant {
    scroll-margin-top: 214px;
}

.tn-ai-lab-page .tn-lab-guided-anchor {
    display: block;
    height: 0;
    width: 0;
}

.tn-ai-lab-page .tn-services-tech__inner {
    position: relative;
    overflow: hidden;
    max-width: min(1240px, calc(100% - 2rem));
    width: 100%;
    border: 1px solid var(--tn-lab-border);
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(14, 25, 40, 0.93) 0%, rgba(10, 20, 32, 0.98) 100%);
    box-shadow: var(--tn-lab-shadow);
    padding: clamp(1.1rem, 2.3vw, 2.2rem);
    animation: tn-lab-reveal 0.55s ease both;
}

.tn-ai-lab-page .tn-services-tech:nth-of-type(2) .tn-services-tech__inner { animation-delay: 0.02s; }
.tn-ai-lab-page .tn-services-tech:nth-of-type(3) .tn-services-tech__inner { animation-delay: 0.05s; }
.tn-ai-lab-page .tn-services-tech:nth-of-type(4) .tn-services-tech__inner { animation-delay: 0.08s; }
.tn-ai-lab-page .tn-services-tech:nth-of-type(5) .tn-services-tech__inner { animation-delay: 0.11s; }

@keyframes tn-lab-reveal {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tn-ai-lab-page .tn-lab-pulse .tn-services-tech__inner,
.tn-ai-lab-page .tn-lab-orchestration .tn-services-tech__inner,
.tn-ai-lab-page .tn-lab-unified .tn-services-tech__inner,
.tn-ai-lab-page .tn-lab-tools .tn-services-tech__inner {
    border-color: var(--tn-lab-border);
    background:
        linear-gradient(180deg, rgba(14, 25, 40, 0.93) 0%, rgba(10, 20, 32, 0.98) 100%);
}

.tn-ai-lab-page .tn-services-tech__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent 0 38px, rgba(113, 149, 194, 0.14) 38px 39px),
        repeating-linear-gradient(90deg, transparent 0 38px, rgba(113, 149, 194, 0.14) 38px 39px);
    opacity: 0.22;
    pointer-events: none;
}

.tn-ai-lab-page .tn-services-tech__inner > * {
    position: relative;
    z-index: 1;
}

.tn-ai-lab-page .tn-lab-section-head {
    max-width: 760px;
}

.tn-ai-lab-page .tn-lab-section-head__kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.65rem;
    border: 1px solid rgba(57, 208, 195, 0.34);
    border-radius: 999px;
    background: rgba(57, 208, 195, 0.12);
    color: #bdeee8;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.32rem 0.58rem;
    text-decoration: none;
}

.tn-ai-lab-page .tn-lab-section-head__kicker:hover {
    border-color: rgba(57, 208, 195, 0.62);
    background: rgba(57, 208, 195, 0.2);
    color: #d7fbf6;
}

.tn-ai-lab-page .tn-services__section-heading {
    margin: 0;
    color: #f0f5fb;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    text-align: left;
}

.tn-ai-lab-page .tn-services__section-heading::after {
    margin: 0.75rem 0 0;
    width: 84px;
    background: linear-gradient(90deg, var(--tn-lab-accent), var(--tn-lab-signal));
    opacity: 0.82;
}

.tn-ai-lab-page .tn-services-tech__narrative {
    margin: 0.75rem 0 0;
    max-width: 720px;
    color: #9cb2cb;
    font-size: 0.97rem;
    line-height: 1.62;
    text-align: left;
}

.tn-ai-lab-page .tn-lab-tabs__hint {
    margin: 0.6rem 0 0;
    color: #8eaac4;
    font-family: var(--tn-font-body);
    font-size: 0.71rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-lab-tabs__hint kbd {
    border: 1px solid rgba(95, 129, 166, 0.76);
    border-radius: 6px;
    background: rgba(12, 23, 35, 0.92);
    color: #d7e8fb;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.68rem;
    line-height: 1;
    padding: 0.1rem 0.3rem;
    margin: 0 0.12rem;
}

.tn-ai-lab-page .tn-lab-tier-map {
    margin: 0.68rem 0 0;
    border: 1px solid rgba(79, 112, 147, 0.72);
    border-radius: 10px;
    background: rgba(10, 20, 32, 0.78);
    padding: 0.42rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-tier-map summary {
    color: #cfe2f8;
    cursor: pointer;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.tn-ai-lab-page .tn-lab-tier-map ol {
    margin: 0.52rem 0 0;
    padding-left: 1.1rem;
    color: #9fb7d1;
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-tier-map li strong {
    color: #def0ff;
}

.tn-ai-lab-page .tn-lab-pulse-board {
    margin-top: 1.25rem;
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(20, 34, 52, 0.84), rgba(13, 24, 39, 0.92));
    padding: 0.82rem;
}

.tn-ai-lab-page .tn-lab-pulse-strip {
    margin-top: 0;
    gap: 0.66rem;
}

.tn-ai-lab-page .tn-lab-pulse-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(78, 112, 149, 0.7);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(19, 34, 52, 0.9) 0%, rgba(15, 27, 42, 0.96) 100%);
    box-shadow: 0 14px 24px rgba(4, 10, 19, 0.44);
    min-height: 134px;
    padding: 0.78rem 0.76rem 0.82rem;
}

.tn-ai-lab-page .tn-lab-pulse-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--tn-lab-accent), var(--tn-lab-signal));
}

.tn-ai-lab-page .tn-lab-pulse-card__label {
    color: #8cc0ea;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    line-height: 1.3;
    padding-right: 4.2rem;
}

.tn-ai-lab-page .tn-lab-pulse-card__value {
    margin-top: 0.58rem;
    color: #dce9f8;
    font-size: 0.79rem;
    line-height: 1.54;
}

.tn-ai-lab-page .tn-lab-pulse-card.is-drillable {
    cursor: pointer;
}

.tn-ai-lab-page .tn-lab-pulse-card__drill {
    position: absolute;
    top: 0.52rem;
    right: 0.56rem;
    border: 1px solid rgba(108, 170, 226, 0.62);
    border-radius: 999px;
    background: rgba(22, 50, 79, 0.72);
    color: #d7ebff;
    cursor: pointer;
    font-family: var(--tn-font-body);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    padding: 0.32rem 0.62rem;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-pulse-card__drill:hover,
.tn-ai-lab-page .tn-lab-pulse-card__drill:focus-visible {
    border-color: rgba(102, 234, 218, 0.9);
    background: rgba(29, 98, 119, 0.74);
    color: #effffd;
    outline: none;
}

.tn-ai-lab-page .tn-lab-pulse-card[data-pulse-section="providers"] {
    min-height: 178px;
}

.tn-ai-lab-page .tn-lab-provider-list {
    display: grid;
    gap: 0.36rem;
}

.tn-ai-lab-page .tn-lab-provider-row {
    display: grid;
    grid-template-columns: 0.6rem 1.1rem 1fr;
    align-items: center;
    gap: 0.34rem;
    position: relative;
    border: 1px solid rgba(78, 112, 149, 0.46);
    border-radius: 8px;
    background: rgba(11, 21, 34, 0.82);
    color: #d9e9fb;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    line-height: 1.3;
    text-decoration: none;
    padding: 0.34rem 0.42rem;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.tn-ai-lab-page .tn-lab-provider-row:hover {
    transform: translateY(-1px);
}

.tn-ai-lab-page .tn-lab-provider-row__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #a0b6cf;
    box-shadow: 0 0 0 4px rgba(160, 182, 207, 0.16);
}

.tn-ai-lab-page .tn-lab-provider-row__dot.is-ok {
    background: #2ed36f;
    box-shadow: 0 0 0 4px rgba(46, 211, 111, 0.2);
}

.tn-ai-lab-page .tn-lab-provider-row__dot.is-degraded {
    background: #ffc400;
    box-shadow: 0 0 0 4px rgba(255, 196, 0, 0.2);
}

.tn-ai-lab-page .tn-lab-provider-row__dot.is-error {
    background: #ff4500;
    box-shadow: 0 0 0 4px rgba(255, 69, 0, 0.2);
}

.tn-ai-lab-page .tn-lab-provider-row__icon {
    min-width: 1.1rem;
    min-height: 1.1rem;
    border: 1px solid rgba(124, 162, 201, 0.6);
    border-radius: 999px;
    background: rgba(16, 29, 46, 0.92);
    color: #cce2fa;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.56rem;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.08rem 0.16rem;
}

.tn-ai-lab-page .tn-lab-provider-row__name {
    min-width: 0;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-provider-row.provider-openai .tn-lab-provider-row__name {
    color: rgba(10, 200, 160, 0.9);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic .tn-lab-provider-row__name {
    color: rgba(85, 90, 195, 0.9);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-xai .tn-lab-provider-row__name {
    color: rgba(0, 174, 239, 0.9);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-google .tn-lab-provider-row__name {
    color: rgba(66, 133, 244, 0.95);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-openai:hover {
    background: rgba(10, 200, 160, 0.15);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic:hover {
    background: rgba(85, 90, 195, 0.15);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-xai:hover {
    background: rgba(0, 174, 239, 0.15);
}

.tn-ai-lab-page .tn-lab-provider-row.provider-google:hover {
    background: rgba(66, 133, 244, 0.16);
}

/* Provider icon SVGs — use ::before so filter only affects the icon, not the background */
.tn-ai-lab-page .tn-lab-provider-row.provider-openai .tn-lab-provider-row__icon,
.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic .tn-lab-provider-row__icon,
.tn-ai-lab-page .tn-lab-provider-row.provider-xai .tn-lab-provider-row__icon,
.tn-ai-lab-page .tn-lab-provider-row.provider-google .tn-lab-provider-row__icon {
    font-size: 0;
    color: transparent;
    border: none;
    background: transparent;
}

.tn-ai-lab-page .tn-lab-provider-row.provider-openai .tn-lab-provider-row__icon::before,
.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic .tn-lab-provider-row__icon::before,
.tn-ai-lab-page .tn-lab-provider-row.provider-xai .tn-lab-provider-row__icon::before,
.tn-ai-lab-page .tn-lab-provider-row.provider-google .tn-lab-provider-row__icon::before {
    content: '';
    display: inline-block;
    width: 0.72rem;
    height: 0.72rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: brightness(0) invert(1);
    opacity: 0.8;
}

.tn-ai-lab-page .tn-lab-provider-row.provider-openai .tn-lab-provider-row__icon::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic .tn-lab-provider-row__icon::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.3041%203.541h-3.6718l6.696%2016.918H24Zm-10.6082%200L0%2020.459h3.7442l1.3693-3.5527h7.0052l1.3693%203.5528h3.7442L10.5363%203.5409Zm-.3712%2010.2232%202.2914-5.9456%202.2914%205.9456Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-ai-lab-page .tn-lab-provider-row.provider-xai .tn-lab-provider-row__icon::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.79%207.73L19.2%2024H22.52L22.94%201.81ZM22.94%200H17.87L9.93%2011.35L12.46%2014.96ZM1.07%2024H6.13L8.66%2020.39L6.13%2016.77ZM1.07%207.73L12.46%2024H17.52L6.13%207.73Z%22%2F%3E%3C%2Fsvg%3E");
}

.tn-ai-lab-page .tn-lab-provider-row.provider-google .tn-lab-provider-row__icon::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.04%2019.32Q12%2021.51%2012%2024q0-2.49.93-4.68.96-2.19%202.58-3.81t3.81-2.55Q21.51%2012%2024%2012q-2.49%200-4.68-.93a12.3%2012.3%200%200%201-3.81-2.58%2012.3%2012.3%200%200%201-2.58-3.81Q12%202.49%2012%200q0%202.49-.96%204.68-.93%202.19-2.55%203.81a12.3%2012.3%200%200%201-3.81%202.58Q2.49%2012%200%2012q2.49%200%204.68.96%202.19.93%203.81%202.55t2.55%203.81%22%2F%3E%3C%2Fsvg%3E");
}

.tn-ai-lab-page .tn-lab-provider-empty {
    border: 1px solid rgba(82, 114, 148, 0.6);
    border-radius: 8px;
    background: rgba(9, 18, 29, 0.72);
    color: #9eb9d4;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    line-height: 1.45;
    padding: 0.44rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    gap: 0.36rem;
}

.tn-ai-lab-page .tn-lab-metric {
    border: 1px solid rgba(82, 114, 148, 0.72);
    border-radius: 8px;
    background: rgba(9, 18, 29, 0.72);
    padding: 0.32rem 0.38rem;
    display: grid;
    gap: 0.12rem;
}

.tn-ai-lab-page .tn-lab-metric__label {
    color: #87a6c5;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-metric__value {
    color: #e2eefc;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
}

.tn-ai-lab-page .tn-lab-metric--success {
    border-color: rgba(105, 213, 159, 0.74);
}

.tn-ai-lab-page .tn-lab-metric--warning {
    border-color: rgba(242, 192, 109, 0.78);
}

.tn-ai-lab-page .tn-lab-metric--error {
    border-color: rgba(240, 143, 159, 0.8);
}

.tn-ai-lab-page .tn-lab-metric--signal {
    border-color: rgba(134, 184, 255, 0.8);
}

.tn-ai-lab-page .tn-lab-metric--neutral {
    border-color: rgba(95, 129, 166, 0.76);
}

.tn-ai-lab-page .tn-lab-metric--muted {
    opacity: 0.82;
}

.tn-ai-lab-page .tn-lab-card-note {
    margin: 0.42rem 0 0;
    color: #8aa5c0;
    font-family: var(--tn-font-body);
    font-size: 0.63rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-lab-trend-grid {
    margin-top: 0.48rem;
    display: grid;
    gap: 0.38rem;
}

.tn-ai-lab-page .tn-lab-trend {
    border: 1px solid rgba(82, 114, 148, 0.6);
    border-radius: 8px;
    background: rgba(8, 16, 26, 0.76);
    padding: 0.34rem 0.4rem 0.38rem;
    display: grid;
    gap: 0.22rem;
}

.tn-ai-lab-page .tn-lab-trend--success {
    border-color: rgba(105, 213, 159, 0.6);
}

.tn-ai-lab-page .tn-lab-trend--signal {
    border-color: rgba(134, 184, 255, 0.68);
}

.tn-ai-lab-page .tn-lab-trend__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.48rem;
}

.tn-ai-lab-page .tn-lab-trend__label {
    color: #86a7c7;
    font-family: var(--tn-font-body);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-trend__value {
    color: #dce9f8;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-trend__delta {
    color: #90b1d1;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 600;
    line-height: 1.3;
}

.tn-ai-lab-page .tn-lab-trend__bars {
    min-height: 26px;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    align-items: end;
    gap: 0.2rem;
}

.tn-ai-lab-page .tn-lab-trend__bar {
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(134, 184, 255, 0.98), rgba(57, 208, 195, 0.78));
    box-shadow: 0 2px 5px rgba(8, 17, 29, 0.34);
}

.tn-ai-lab-page .tn-lab-trend__bar.is-empty {
    background: rgba(95, 129, 166, 0.36);
    box-shadow: none;
}

.tn-ai-lab-page .tn-lab-sentiment {
    margin-top: 0.42rem;
    display: grid;
    gap: 0.2rem;
}

.tn-ai-lab-page .tn-lab-sentiment__track {
    position: relative;
    display: block;
    height: 6px;
    border-radius: 999px;
    background: rgba(63, 96, 131, 0.58);
    overflow: hidden;
}

.tn-ai-lab-page .tn-lab-sentiment__fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(105, 213, 159, 0.9), rgba(57, 208, 195, 0.85));
}

.tn-ai-lab-page .tn-lab-sentiment__text {
    color: #9bb4cb;
    font-family: var(--tn-font-body);
    font-size: 0.61rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-pulse-board__meta {
    margin: 0.56rem 0 0;
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.tn-lab-pulse-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 12020;
    border: 0;
    background: rgba(3, 9, 15, 0.82);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    cursor: default;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
}

.tn-lab-pulse-drawer-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

.tn-lab-pulse-drawer-backdrop:hover,
.tn-lab-pulse-drawer-backdrop:focus,
.tn-lab-pulse-drawer-backdrop:focus-visible,
.tn-lab-pulse-drawer-backdrop:active {
    background: rgba(3, 9, 15, 0.82);
    outline: none;
    border: 0;
    box-shadow: none;
}

.tn-lab-pulse-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(500px, 92vw);
    height: 100vh;
    z-index: 12030;
    border-left: 1px solid rgba(82, 135, 186, 0.62);
    background: linear-gradient(180deg, rgba(8, 18, 30, 0.98), rgba(6, 14, 24, 0.99));
    box-shadow: -18px 0 44px rgba(3, 8, 14, 0.56);
    transform: translateX(103%);
    transition: transform 0.24s ease;
    display: grid;
    grid-template-rows: auto 1fr;
}

.tn-lab-pulse-drawer.is-open {
    transform: translateX(0);
}

.tn-lab-pulse-drawer__head {
    border-bottom: 1px solid rgba(79, 120, 162, 0.52);
    padding: 0.9rem 0.96rem 0.76rem;
    display: grid;
    gap: 0.36rem;
    position: relative;
}

.tn-lab-pulse-drawer__kicker {
    margin: 0;
    color: #7eb8ea;
    font-family: var(--tn-font-body);
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-lab-pulse-drawer__title {
    margin: 0;
    color: #ebf4ff;
    font-family: var(--tn-font-display);
    font-size: 1.08rem;
    line-height: 1.2;
}

.tn-lab-pulse-drawer__subtitle {
    margin: 0;
    color: #a7bfd8;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    line-height: 1.45;
    max-width: 46ch;
}

.tn-lab-pulse-drawer__close {
    position: absolute;
    top: 0.74rem;
    right: 0.74rem;
    border: 1px solid rgba(108, 170, 226, 0.62);
    border-radius: 999px;
    background: rgba(19, 44, 69, 0.76);
    color: #d6ebff;
    cursor: pointer;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    padding: 0.32rem 0.62rem;
}

.tn-lab-pulse-drawer__close:hover,
.tn-lab-pulse-drawer__close:focus-visible {
    border-color: rgba(102, 234, 218, 0.9);
    background: rgba(27, 90, 111, 0.72);
    color: #ecfffd;
    outline: none;
}

.tn-lab-pulse-drawer__body {
    overflow-y: auto;
    padding: 0.86rem 0.94rem 1rem;
    display: grid;
    gap: 0.72rem;
}

.tn-lab-pulse-drawer__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.42rem;
}

.tn-lab-pulse-drawer__metric {
    border: 1px solid rgba(83, 120, 158, 0.66);
    border-radius: 10px;
    background: rgba(10, 21, 35, 0.82);
    padding: 0.42rem 0.48rem;
    display: grid;
    gap: 0.12rem;
}

.tn-lab-pulse-drawer__metric-label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: #8fb3d6;
    font-family: var(--tn-font-body);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
}

/* Provider icons inside drawer metrics */
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__dot.is-ok {
    background: #39d0c3;
    box-shadow: 0 0 6px rgba(57, 208, 195, 0.5);
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__dot.is-degraded {
    background: #f5a623;
    box-shadow: 0 0 6px rgba(245, 166, 35, 0.5);
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__dot.is-error {
    background: #e74c5e;
    box-shadow: 0 0 6px rgba(231, 76, 94, 0.5);
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border: 1px solid rgba(100, 140, 180, 0.5);
    border-radius: 4px;
    font-size: 0.5rem;
    color: #b8d3ef;
    flex-shrink: 0;
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-openai,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-anthropic,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-xai,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-google {
    font-size: 0;
    color: transparent;
    border: none;
    background: transparent;
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-openai::before,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-anthropic::before,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-xai::before,
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-google::before {
    content: '';
    display: inline-block;
    width: 0.72rem;
    height: 0.72rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: brightness(0) invert(1);
    opacity: 0.8;
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-openai::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z%22%2F%3E%3C%2Fsvg%3E");
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-anthropic::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.3041%203.541h-3.6718l6.696%2016.918H24Zm-10.6082%200L0%2020.459h3.7442l1.3693-3.5527h7.0052l1.3693%203.5528h3.7442L10.5363%203.5409Zm-.3712%2010.2232%202.2914-5.9456%202.2914%205.9456Z%22%2F%3E%3C%2Fsvg%3E");
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-xai::before {
    background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.79%207.73L19.2%2024H22.52L22.94%201.81ZM22.94%200H17.87L9.93%2011.35L12.46%2014.96ZM1.07%2024H6.13L8.66%2020.39L6.13%2016.77ZM1.07%207.73L12.46%2024H17.52L6.13%207.73Z%22%2F%3E%3C%2Fsvg%3E");
}
.tn-lab-pulse-drawer__metric .tn-lab-provider-row__icon.provider-google::before {
    background-image: url("data:image/svg+xml,%3Csvg%20role%3D%22img%22%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.04%2019.32Q12%2021.51%2012%2024q0-2.49.93-4.68.96-2.19%202.58-3.81t3.81-2.55Q21.51%2012%2024%2012q-2.49%200-4.68-.93a12.3%2012.3%200%200%201-3.81-2.58%2012.3%2012.3%200%200%201-2.58-3.81Q12%202.49%2012%200q0%202.49-.96%204.68-.93%202.19-2.55%203.81a12.3%2012.3%200%200%201-3.81%202.58Q2.49%2012%200%2012q2.49%200%204.68.96%202.19.93%203.81%202.55t2.55%203.81%22%2F%3E%3C%2Fsvg%3E");
}

.tn-lab-pulse-drawer__metric-value {
    color: #e6f2ff;
    font-family: var(--tn-font-body);
    font-size: 0.84rem;
    line-height: 1.3;
}

/* Status-aware metric value coloring */
.tn-lab-pulse-drawer__metric-value[data-status-tone="ok"] {
    color: #39d0c3;
}
.tn-lab-pulse-drawer__metric-value[data-status-tone="degraded"] {
    color: #f5a623;
}
.tn-lab-pulse-drawer__metric-value[data-status-tone="error"] {
    color: #e74c5e;
}

.tn-lab-pulse-drawer__card {
    border: 1px solid rgba(77, 111, 146, 0.66);
    border-radius: 10px;
    background: rgba(8, 18, 30, 0.84);
    padding: 0.54rem 0.58rem;
    display: grid;
    gap: 0.3rem;
}

.tn-lab-pulse-drawer__card-title {
    margin: 0;
    color: #d7e9fb;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}

.tn-lab-pulse-drawer__card-copy {
    margin: 0;
    color: #9ab2cb;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    line-height: 1.45;
}

.tn-lab-pulse-drawer__row {
    border-top: 1px solid rgba(78, 110, 144, 0.48);
    padding-top: 0.26rem;
    display: flex;
    justify-content: space-between;
    gap: 0.54rem;
}

.tn-lab-pulse-drawer__row-label {
    color: #90aecb;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    line-height: 1.4;
}

.tn-lab-pulse-drawer__row-value {
    color: #d6e8fb;
    font-family: var(--tn-font-body);
    font-size: 0.67rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: right;
}

.tn-lab-pulse-drawer__link-wrap {
    margin: 0.18rem 0 0;
}

.tn-lab-pulse-drawer__link {
    color: #74dce8;
    font-family: var(--tn-font-body);
    font-size: 0.67rem;
    font-weight: 600;
    text-decoration: none;
}

.tn-lab-pulse-drawer__link:hover,
.tn-lab-pulse-drawer__link:focus-visible {
    color: #adf7ff;
    text-decoration: underline;
    outline: none;
}

.tn-lab-pulse-drawer__empty {
    margin: 0;
    color: #a3b9d1;
    font-family: var(--tn-font-body);
    font-size: 0.71rem;
    line-height: 1.45;
}

@media (max-width: 900px) {
    .tn-lab-pulse-drawer {
        width: min(100vw, 100%);
    }

    .tn-lab-pulse-drawer__metrics {
        grid-template-columns: 1fr;
    }
}

.tn-ai-lab-page .tn-lab-pulse-card.is-unavailable {
    border-color: rgba(172, 130, 78, 0.58);
    background: linear-gradient(180deg, rgba(42, 31, 19, 0.86), rgba(33, 24, 15, 0.92));
}

.tn-ai-lab-page .tn-lab-unavailable-badge {
    border-color: rgba(246, 190, 106, 0.55);
    background: rgba(242, 192, 109, 0.18);
    color: #f4cb83;
}

.tn-ai-lab-page .tn-lab-viz-shell {
    margin-top: 1.2rem;
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(17, 31, 49, 0.88), rgba(11, 22, 35, 0.95));
    padding: 0.78rem;
}

.tn-ai-lab-page .tn-lab-viz-shell__legend {
    display: flex;
    justify-content: flex-end;
    gap: 0.42rem;
    margin-bottom: 0.7rem;
}

.tn-ai-lab-page .tn-lab-state {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 0.3rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-state::before {
    content: '';
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.tn-ai-lab-page .tn-lab-state--idle {
    border-color: rgba(151, 180, 211, 0.42);
    background: rgba(82, 108, 136, 0.4);
    color: #d6e7fa;
}

.tn-ai-lab-page .tn-lab-state--idle::before {
    background: #9eb1c7;
}

.tn-ai-lab-page .tn-lab-state--active {
    border-color: rgba(88, 228, 214, 0.56);
    background: rgba(17, 109, 110, 0.52);
    color: #dcfff9;
}

.tn-ai-lab-page .tn-lab-state--active::before {
    background: var(--tn-lab-accent);
}

.tn-ai-lab-page .tn-lab-state--complete {
    border-color: rgba(125, 230, 181, 0.56);
    background: rgba(24, 103, 71, 0.56);
    color: #e8fff4;
}

.tn-ai-lab-page .tn-lab-state--complete::before {
    background: var(--tn-lab-success);
}

.tn-ai-lab-page .tn-lab-viz {
    border: 1px solid var(--tn-lab-border);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(12, 24, 38, 0.94), rgba(10, 19, 30, 0.97));
    box-shadow: 0 16px 30px rgba(3, 9, 16, 0.48);
    padding: 0.88rem;
    overflow-x: clip;
}

.tn-ai-lab-page .tn-lab-viz__top {
    align-items: flex-start;
}

.tn-ai-lab-page .tn-lab-viz__status {
    color: #b9cae0;
    font-size: 0.83rem;
}

.tn-ai-lab-page .tn-lab-viz__status-wrap {
    display: grid;
    gap: 0.28rem;
    flex: 1 1 360px;
    min-width: 0;
}

.tn-ai-lab-page .tn-lab-viz__live-link {
    margin: 0;
    color: #8fa9c4;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.45;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-viz__live-link.is-live {
    color: #8df1cf;
}

.tn-ai-lab-page .tn-lab-viz__live-link.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-viz__replay {
    border-color: rgba(134, 184, 255, 0.66);
    background: rgba(134, 184, 255, 0.13);
    color: #cfe4ff;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-viz__replay:hover:not(:disabled) {
    border-color: rgba(134, 184, 255, 0.92);
    background: rgba(134, 184, 255, 0.24);
    color: #edf5ff;
}

.tn-ai-lab-page .tn-lab-viz__replay:disabled {
    border-color: rgba(114, 136, 163, 0.5);
    background: rgba(73, 90, 114, 0.2);
    color: #8aa2be;
}

.tn-ai-lab-page .tn-lab-viz__history {
    margin-top: 0.5rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.46rem;
    border: 1px solid rgba(78, 112, 149, 0.68);
    border-radius: 10px;
    background: rgba(10, 19, 30, 0.8);
    padding: 0.36rem 0.42rem;
}

.tn-ai-lab-page .tn-lab-viz__history-label {
    color: #97b2cc;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tn-ai-lab-page .tn-lab-viz__history-btn {
    border: 1px solid rgba(95, 129, 166, 0.76);
    border-radius: 999px;
    background: rgba(12, 23, 36, 0.7);
    color: #d2e6fa;
    cursor: pointer;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
    padding: 0.26rem 0.56rem;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-viz__history-btn:hover:not(:disabled) {
    border-color: rgba(57, 208, 195, 0.86);
    background: rgba(57, 208, 195, 0.22);
    color: #dbfffa;
}

.tn-ai-lab-page .tn-lab-viz__history-btn:disabled {
    border-color: rgba(92, 117, 144, 0.5);
    background: rgba(46, 63, 84, 0.38);
    color: #88a2bc;
    cursor: not-allowed;
}

.tn-ai-lab-page .tn-lab-viz__status.is-loading {
    color: #8dc9ff;
}

.tn-ai-lab-page .tn-lab-viz__status.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-viz__status.is-success {
    color: #79deab;
}

.tn-ai-lab-page .tn-lab-viz__status.is-error {
    color: #f18f9f;
}

.tn-ai-lab-page .tn-lab-viz__nodes {
    grid-auto-flow: row;
    grid-auto-columns: unset;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    overflow: visible;
    overflow-x: clip;
    margin-top: 0.1rem;
    padding: 0.2rem 0.1rem 0.22rem;
    gap: 0.62rem;
    align-items: stretch;
    position: relative;
}

.tn-ai-lab-page .tn-lab-viz__nodes::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.tn-ai-lab-page .tn-lab-viz__node {
    position: relative;
    border: 1px solid rgba(80, 113, 149, 0.8);
    border-radius: 11px;
    background: linear-gradient(180deg, rgba(21, 38, 58, 0.9), rgba(16, 29, 45, 0.95));
    color: #a8bdd6;
    min-height: 94px;
    padding: 1.12rem 0.58rem 0.6rem;
    overflow: visible;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.48rem;
    box-sizing: border-box;
}

.tn-ai-lab-page .tn-lab-viz__node::before {
    content: "";
    position: absolute;
    top: 0.42rem;
    left: 0.52rem;
    width: 0.58rem;
    height: 0.58rem;
    border: 1px solid rgba(144, 178, 214, 0.88);
    border-radius: 999px;
    background: rgba(93, 124, 153, 0.82);
    box-shadow: 0 0 0 3px rgba(89, 118, 146, 0.22);
    z-index: 3;
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-viz__node-label {
    display: block;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    color: #deebfb;
    white-space: nowrap !important;
    overflow-wrap: normal;
    word-break: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    margin-top: 0.12rem;
}

.tn-ai-lab-page .tn-lab-viz__node-time {
    border-color: rgba(121, 158, 196, 0.88);
    background: rgba(7, 18, 31, 0.9);
    color: #d5e6f8;
    font-size: 0.74rem;
    font-weight: 700;
    min-width: 3.8rem;
    text-align: center;
}

.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -0.58rem;
    width: 0.52rem;
    height: 2px;
    border-radius: 999px;
    background: rgba(107, 134, 163, 0.55);
    transform: translateY(-50%);
    z-index: 1;
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-viz__node.is-idle {
    background: linear-gradient(180deg, rgba(22, 37, 55, 0.9), rgba(16, 28, 43, 0.96));
    color: #9db1c8;
}

.tn-ai-lab-page .tn-lab-viz__node.is-active {
    border-color: rgba(57, 208, 195, 0.84);
    background: linear-gradient(180deg, rgba(18, 58, 63, 0.92), rgba(14, 42, 51, 0.96));
    color: #c7f5ef;
    animation: tn-lab-node-pulse-scada 1s ease-in-out infinite alternate;
}

.tn-ai-lab-page .tn-lab-viz__node.is-active::before {
    border-color: rgba(66, 221, 209, 0.92);
    background: rgba(62, 195, 183, 0.92);
    box-shadow: 0 0 0 4px rgba(62, 195, 183, 0.24);
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete {
    border-color: rgba(105, 213, 159, 0.72);
    background: linear-gradient(180deg, rgba(21, 55, 46, 0.9), rgba(15, 43, 35, 0.96));
    color: #c8f0da;
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete::before {
    border-color: rgba(124, 232, 178, 0.92);
    background: rgba(105, 213, 159, 0.92);
    box-shadow: 0 0 0 4px rgba(105, 213, 159, 0.2);
}

.tn-ai-lab-page .tn-lab-viz__node.is-active .tn-lab-viz__node-time {
    border-color: rgba(57, 208, 195, 0.9);
    background: rgba(10, 54, 56, 0.9);
    color: #e5fff9;
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete .tn-lab-viz__node-time {
    border-color: rgba(105, 213, 159, 0.8);
    background: rgba(22, 67, 49, 0.9);
    color: #ecfff5;
}

.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node.is-active:not(:last-child)::after {
    background: linear-gradient(90deg, rgba(60, 228, 214, 0.28), rgba(60, 228, 214, 0.98));
    box-shadow: 0 0 10px rgba(60, 228, 214, 0.42);
    animation: tn-lab-link-flow 0.95s linear infinite;
}

.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row.is-replaying .tn-lab-viz__node:not(:last-child)::after {
    background: linear-gradient(
        90deg,
        rgba(121, 162, 208, 0.24) 0%,
        rgba(121, 162, 208, 0.9) 52%,
        rgba(121, 162, 208, 0.24) 100%
    );
    background-size: 190% 100%;
    box-shadow: 0 0 8px rgba(121, 162, 208, 0.32);
    animation: tn-lab-link-replay 1.05s linear infinite;
    animation-delay: calc(var(--tn-node-index, 0) * 90ms);
}

.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node.is-complete:not(:last-child)::after {
    background: linear-gradient(90deg, rgba(126, 232, 179, 0.35), rgba(126, 232, 179, 0.96));
    box-shadow: 0 0 8px rgba(126, 232, 179, 0.32);
}

.tn-ai-lab-page .tn-lab-viz__node.is-active .tn-lab-viz__node-label {
    color: #e8fff9;
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete .tn-lab-viz__node-label {
    color: #effff6;
}

.tn-ai-lab-page .tn-lab-viz__meta {
    color: #8fa6c0;
    font-size: 0.75rem;
}

.tn-ai-lab-page .tn-lab-viz-trace {
    margin-top: 0.46rem;
    border: 1px solid rgba(71, 103, 136, 0.78);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(10, 20, 31, 0.84), rgba(9, 17, 27, 0.94));
    box-shadow: inset 0 1px 0 rgba(57, 208, 195, 0.12);
    padding: 0.58rem;
}

.tn-ai-lab-page .tn-lab-viz-trace__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-lab-viz-trace__title {
    margin: 0;
    color: #d7e6f8;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-lab-viz-trace__connection {
    margin: 0;
    color: #8ea8c4;
    font-family: var(--tn-font-body);
    font-size: 0.67rem;
    font-weight: 600;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-lab-viz-trace__connection.is-live {
    color: #8df1cf;
}

.tn-ai-lab-page .tn-lab-viz-trace__connection.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-viz-trace__stats {
    margin-top: 0.48rem;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.34rem;
}

.tn-ai-lab-page .tn-lab-viz-trace__stats span {
    border: 1px solid rgba(82, 114, 149, 0.72);
    border-radius: 8px;
    background: rgba(10, 20, 32, 0.78);
    color: #b7cbe2;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.64rem;
    line-height: 1.35;
    padding: 0.25rem 0.36rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-ai-lab-page .tn-lab-viz-trace__log {
    margin-top: 0.52rem;
    max-height: 176px;
    overflow-y: auto;
    border: 1px solid rgba(62, 94, 128, 0.72);
    border-radius: 9px;
    background: rgba(8, 16, 25, 0.86);
    padding: 0.36rem 0.38rem;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.tn-ai-lab-page .tn-lab-viz-trace__log::-webkit-scrollbar {
    width: 6px;
}

.tn-ai-lab-page .tn-lab-viz-trace__log::-webkit-scrollbar-thumb {
    background: rgba(102, 138, 174, 0.58);
    border-radius: 999px;
}

.tn-ai-lab-page .tn-lab-viz-trace__line {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 0.34rem;
    color: #b8cee5;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-lab-viz-trace__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(143, 176, 209, 0.76);
    border-radius: 999px;
    background: rgba(18, 34, 53, 0.9);
    color: #e5f1ff;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    line-height: 1;
    text-transform: uppercase;
    min-width: 56px;
    padding: 0.18rem 0.34rem;
}

.tn-ai-lab-page .tn-lab-viz-trace__badge.is-reason {
    border-color: rgba(134, 184, 255, 0.8);
    background: rgba(21, 47, 74, 0.86);
    color: #d9ebff;
}

.tn-ai-lab-page .tn-lab-viz-trace__badge.is-act {
    border-color: rgba(65, 224, 210, 0.86);
    background: rgba(11, 62, 65, 0.86);
    color: #dcfffa;
}

.tn-ai-lab-page .tn-lab-viz-trace__badge.is-observe {
    border-color: rgba(112, 228, 176, 0.84);
    background: rgba(22, 70, 53, 0.86);
    color: #e8fff5;
}

.tn-ai-lab-page .tn-lab-viz-trace__badge.is-verify {
    border-color: rgba(241, 198, 115, 0.84);
    background: rgba(80, 61, 24, 0.86);
    color: #ffefcc;
}

.tn-ai-lab-page .tn-lab-viz-trace__line-text {
    min-width: 0;
    color: #b7cce4;
}

.tn-ai-lab-page .tn-lab-viz-trace__empty {
    margin: 0;
    color: #7f9cba;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-viz-sticky {
    position: fixed;
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    top: calc(72px + env(safe-area-inset-top));
    z-index: 130;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.tn-ai-lab-page .tn-lab-viz-sticky.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tn-ai-lab-page .tn-lab-viz-sticky__inner {
    pointer-events: auto;
    border: 1px solid rgba(78, 112, 149, 0.78);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(10, 20, 32, 0.96), rgba(7, 15, 25, 0.98));
    box-shadow: 0 18px 30px rgba(2, 8, 14, 0.5);
    padding: 0.52rem 0.6rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__head-copy {
    min-width: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__status,
.tn-ai-lab-page .tn-lab-viz-sticky__meta {
    margin: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__status {
    color: #e1efff;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-viz-sticky__meta {
    color: #9ab4cd;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    line-height: 1.3;
    margin-top: 0.14rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.34rem;
    flex-shrink: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__jump {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(95, 129, 166, 0.8);
    border-radius: 999px;
    background: rgba(12, 23, 36, 0.76);
    color: #d0e6fb;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 0.24rem 0.52rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__jump:hover {
    border-color: rgba(57, 208, 195, 0.88);
    background: rgba(57, 208, 195, 0.2);
    color: #dbfffa;
}

.tn-ai-lab-page .tn-lab-viz-sticky__dismiss {
    border: 1px solid rgba(95, 129, 166, 0.8);
    border-radius: 999px;
    background: rgba(10, 21, 33, 0.78);
    color: #d4e9fc;
    cursor: pointer;
    font-size: 0.96rem;
    line-height: 1;
    width: 1.62rem;
    height: 1.62rem;
    padding: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__dismiss:hover {
    border-color: rgba(57, 208, 195, 0.88);
    color: #defffa;
    background: rgba(57, 208, 195, 0.2);
}

.tn-ai-lab-page .tn-lab-viz-sticky__nodes {
    margin: 0.44rem 0 0;
    padding: 0.1rem 0 0;
    list-style: none;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(84px, 1fr);
    gap: 0.34rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.tn-ai-lab-page .tn-lab-viz-sticky__node {
    border: 1px solid rgba(80, 113, 149, 0.74);
    border-radius: 8px;
    background: rgba(14, 28, 44, 0.88);
    min-height: 2.05rem;
    padding: 0.22rem 0.32rem;
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    transition:
        border-color 0.22s ease,
        background 0.22s ease,
        transform 0.22s ease,
        box-shadow 0.22s ease;
}

.tn-ai-lab-page .tn-lab-viz-sticky__dot {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: #9eb1c7;
    box-shadow: 0 0 0 3px rgba(158, 177, 199, 0.2);
    flex-shrink: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__label {
    min-width: 0;
    color: #c5d8ec;
    font-family: var(--tn-font-body);
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-ai-lab-page .tn-lab-viz-sticky__node.is-active {
    border-color: rgba(57, 208, 195, 0.86);
    background: rgba(14, 47, 52, 0.9);
    transform: translateY(-1px);
    box-shadow: 0 8px 14px rgba(11, 33, 42, 0.32);
}

.tn-ai-lab-page .tn-lab-viz-sticky__node.is-active .tn-lab-viz-sticky__dot {
    background: #3ec3b7;
    box-shadow: 0 0 0 3px rgba(62, 195, 183, 0.26);
    animation: tn-lab-sticky-dot-pulse 0.92s ease-in-out infinite alternate;
}

.tn-ai-lab-page .tn-lab-viz-sticky__node.is-complete {
    border-color: rgba(126, 232, 179, 0.8);
    background: rgba(19, 52, 42, 0.9);
}

.tn-ai-lab-page .tn-lab-viz-sticky__node.is-complete .tn-lab-viz-sticky__dot {
    background: #69d59f;
    box-shadow: 0 0 0 3px rgba(105, 213, 159, 0.24);
}

@keyframes tn-lab-node-pulse-scada {
    from {
        box-shadow: 0 0 0 rgba(57, 208, 195, 0);
        transform: translateY(0);
    }
    to {
        box-shadow: 0 14px 24px rgba(57, 208, 195, 0.27);
        transform: translateY(-2px);
    }
}

@keyframes tn-lab-link-flow {
    0% {
        background-position: 0% 50%;
        opacity: 0.8;
    }
    50% {
        opacity: 1;
    }
    100% {
        background-position: 100% 50%;
        opacity: 0.85;
    }
}

@keyframes tn-lab-link-replay {
    0% {
        background-position: 0% 50%;
        opacity: 0.75;
    }
    50% {
        opacity: 1;
    }
    100% {
        background-position: 100% 50%;
        opacity: 0.84;
    }
}

@keyframes tn-lab-sticky-dot-pulse {
    from {
        transform: scale(1);
        opacity: 0.85;
    }
    to {
        transform: scale(1.22);
        opacity: 1;
    }
}

.tn-ai-lab-page .tn-lab-unified {
    margin-top: 1.15rem;
    border-color: var(--tn-lab-border);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(13, 24, 38, 0.94), rgba(10, 19, 31, 0.98));
    box-shadow: 0 16px 32px rgba(4, 9, 16, 0.44);
    padding: 0.92rem;
}

.tn-ai-lab-page .tn-lab-unified__handoff {
    margin: 0.56rem 0 0;
    color: #90abc6;
    font-family: var(--tn-font-body);
    font-size: 0.74rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-unified__handoff-cta {
    margin: 0.44rem 0 0;
}

.tn-ai-lab-page .tn-lab-unified__jump {
    display: inline-flex;
    align-items: center;
    gap: 0.34rem;
    border: 1px solid rgba(57, 208, 195, 0.76);
    border-radius: 999px;
    background: rgba(57, 208, 195, 0.2);
    color: #c9fff7;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.34rem 0.62rem;
}

.tn-ai-lab-page .tn-lab-unified__jump:hover {
    border-color: rgba(57, 208, 195, 0.94);
    background: rgba(57, 208, 195, 0.34);
    color: #e6fffb;
}

.tn-ai-lab-page .tn-lab-unified__result {
    border-color: rgba(63, 94, 127, 0.86);
    border-radius: 10px;
    background: rgba(13, 24, 38, 0.88);
}

.tn-ai-lab-page .tn-lab-unified__layers {
    display: grid;
    gap: 0.58rem;
}

.tn-ai-lab-page .tn-lab-unified__layer {
    border: 1px solid rgba(70, 104, 140, 0.78);
    border-radius: 10px;
    background: rgba(10, 20, 31, 0.8);
    padding: 0.5rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-unified__layer-title {
    margin: 0;
    color: #cfe4f8;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-unified__proof {
    margin-top: 0.52rem;
    border: 1px solid rgba(66, 99, 133, 0.78);
    border-radius: 10px;
    background: rgba(10, 19, 31, 0.82);
    padding: 0.44rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-unified__proof-title {
    margin: 0;
    color: #b7d6f4;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-unified__proof-badges {
    margin-top: 0.34rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.tn-ai-lab-page .tn-lab-unified__proof-badge {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(88, 121, 156, 0.7);
    border-radius: 999px;
    background: rgba(14, 30, 45, 0.88);
    color: #d6e9fb;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    line-height: 1.25;
    padding: 0.2rem 0.42rem;
}

.tn-ai-lab-page .tn-lab-unified__steps {
    margin: 0.48rem 0 0;
    padding: 0;
    list-style: none;
    counter-reset: tn-guided-step;
    display: grid;
    gap: 0.3rem;
    color: #d2e5f8;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    line-height: 1.48;
    text-align: left;
}

.tn-ai-lab-page .tn-lab-unified__steps li {
    counter-increment: tn-guided-step;
    display: grid;
    grid-template-columns: 1.2rem minmax(0, 1fr);
    align-items: start;
    gap: 0.42rem;
    margin: 0;
    color: #d2e5f8;
    text-align: left;
}

.tn-ai-lab-page .tn-lab-unified__steps li::before {
    content: counter(tn-guided-step) ".";
    color: #9ec4ea;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: right;
}

.tn-ai-lab-page .tn-lab-unified__steps li > .tn-lab-unified__step-text {
    display: block;
    min-width: 0;
    color: #d2e5f8;
    font-family: var(--tn-font-body);
    font-size: 0.75rem;
    line-height: 1.5;
    text-align: left;
    white-space: normal;
    word-break: break-word;
}

.tn-ai-lab-page .tn-lab-unified__next-actions {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.38rem;
}

.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn {
    min-height: 36px;
    font-size: 0.68rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.42rem 0.66rem;
}

.tn-ai-lab-page .tn-lab-unified__followups {
    margin-top: 0.52rem;
    border-top: 1px solid rgba(67, 100, 133, 0.62);
    padding-top: 0.46rem;
}

.tn-ai-lab-page .tn-lab-unified__followups-title {
    margin: 0;
    color: #9ec0e1;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-unified__followups-list {
    margin-top: 0.34rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.tn-ai-lab-page .tn-lab-unified__followup-chip {
    border: 1px solid rgba(92, 126, 162, 0.72);
    border-radius: 999px;
    background: rgba(12, 26, 40, 0.88);
    color: #d3e7f9;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    line-height: 1.25;
    padding: 0.25rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-unified__followup-chip:hover,
.tn-ai-lab-page .tn-lab-unified__followup-chip:focus-visible {
    border-color: rgba(57, 208, 195, 0.8);
    background: rgba(23, 58, 63, 0.8);
    color: #e2fffb;
}

.tn-ai-lab-page .tn-lab-unified__technical-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(84, 118, 152, 0.78);
    border-radius: 8px;
    background: rgba(11, 22, 35, 0.8);
    color: #d8e9fa;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.2;
    padding: 0.42rem 0.54rem;
}

.tn-ai-lab-page .tn-lab-unified__technical-toggle:hover,
.tn-ai-lab-page .tn-lab-unified__technical-toggle:focus-visible {
    border-color: rgba(57, 208, 195, 0.82);
    background: rgba(25, 62, 66, 0.72);
    color: #dffffa;
}

.tn-ai-lab-page .tn-lab-unified__technical-panel {
    margin-top: 0.5rem;
    display: grid;
    gap: 0.46rem;
}

.tn-ai-lab-page .tn-lab-unified__technical-panel[hidden] {
    display: none !important;
}

.tn-ai-lab-page .tn-lab-unified__technical-note {
    margin: 0;
    color: #a8c2dd;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    line-height: 1.46;
}

.tn-ai-lab-page .tn-lab-unified__sources {
    border: 1px solid rgba(69, 100, 132, 0.74);
    border-radius: 8px;
    background: rgba(8, 16, 26, 0.82);
    padding: 0.42rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-unified__sources-title {
    margin: 0;
    color: #b9d3ec;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-unified__sources-list {
    margin: 0.38rem 0 0;
    padding-left: 1rem;
    display: grid;
    gap: 0.2rem;
}

.tn-ai-lab-page .tn-lab-unified__sources-list a {
    color: #8fd9ff;
    text-decoration: underline;
    text-decoration-color: rgba(143, 217, 255, 0.5);
}

.tn-ai-lab-page .tn-lab-unified__sources-empty {
    margin: 0.35rem 0 0;
    color: #89a6c3;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    line-height: 1.42;
}

.tn-ai-lab-page .tn-lab-unified__meta span {
    color: #88a5c3;
}

.tn-ai-lab-page .tn-lab-unified__meta strong,
.tn-ai-lab-page .tn-lab-unified__summary {
    color: #d8e6f6;
}

.tn-ai-lab-page .tn-lab-unified__target {
    margin: 0.5rem 0 0;
    color: #9bb8d4;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-lab-unified__target strong {
    color: #dcf7f3;
    font-weight: 700;
}

.tn-ai-lab-page .tn-lab-unified__fallback {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-unified__trace {
    margin-top: 0.6rem;
    border: 1px solid rgba(68, 100, 133, 0.82);
    border-radius: 10px;
    background: rgba(10, 19, 30, 0.86);
    padding: 0.5rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-title {
    margin: 0;
    color: #cce2f7;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-unified__trace-pipeline {
    margin: 0.42rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.34rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-node {
    border: 1px solid rgba(80, 113, 149, 0.7);
    border-radius: 8px;
    background: rgba(13, 24, 38, 0.86);
    display: grid;
    gap: 0.14rem;
    padding: 0.26rem 0.32rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-node-label {
    color: #cee2f6;
    font-family: var(--tn-font-body);
    font-size: 0.61rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-ai-lab-page .tn-lab-unified__trace-node-time {
    color: #90b5d8;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.6rem;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-unified__trace-log {
    margin: 0.42rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.24rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-log li {
    border: 1px solid rgba(73, 103, 136, 0.66);
    border-radius: 8px;
    background: rgba(8, 17, 27, 0.82);
    color: #afc7df;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    line-height: 1.4;
    padding: 0.26rem 0.36rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-log li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(95, 129, 166, 0.78);
    border-radius: 999px;
    background: rgba(14, 29, 45, 0.88);
    color: #d9e9fa;
    font-family: var(--tn-font-body);
    font-size: 0.56rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    margin-right: 0.32rem;
    padding: 0.14rem 0.3rem;
}

.tn-ai-lab-page .tn-lab-unified__route-target {
    margin: 0.62rem 0 0;
    border: 1px solid rgba(79, 113, 146, 0.68);
    border-radius: 10px;
    background: rgba(11, 21, 34, 0.68);
    color: #a2bdd8;
    font-family: var(--tn-font-body);
    font-size: 0.69rem;
    line-height: 1.45;
    padding: 0.34rem 0.52rem;
}

.tn-ai-lab-page .tn-lab-unified__route-target[hidden] {
    display: none !important;
}

.tn-ai-lab-page .tn-lab-unified__input-hint {
    margin: 0.32rem 0 0.1rem;
    color: #89a6c4;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-lab-unified__route-target.is-ready {
    border-color: rgba(57, 208, 195, 0.7);
    background: rgba(18, 54, 58, 0.7);
    color: #c8f9f3;
}

.tn-ai-lab-page .tn-lab-unified__route-target.is-loading {
    border-color: rgba(141, 201, 255, 0.74);
    color: #bde1ff;
}

.tn-ai-lab-page .tn-lab-unified__route-target.is-success {
    border-color: rgba(105, 213, 159, 0.78);
    color: #c5f3dd;
}

.tn-ai-lab-page .tn-lab-unified__route-target.is-warning {
    border-color: rgba(242, 192, 109, 0.72);
    color: #f4cb83;
}

.tn-ai-lab-page .tn-lab-unified__route-target.is-error {
    border-color: rgba(240, 143, 159, 0.76);
    color: #f5bcc7;
}

.tn-ai-lab-page .tn-lab-unified__continuity {
    margin-top: 0.66rem;
    border-top-color: rgba(63, 94, 127, 0.72);
}

.tn-ai-lab-page .tn-lab-unified__continuity-actions .tn-ai-btn {
    opacity: 0.86;
    font-size: 0.66rem;
    letter-spacing: 0.06em;
    padding: 0.34rem 0.56rem;
}

.tn-ai-lab-page .tn-lab-unified__continuity-actions .tn-ai-btn:hover,
.tn-ai-lab-page .tn-lab-unified__continuity-actions .tn-ai-btn:focus-visible {
    opacity: 1;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status {
    color: #90a8c2;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status.is-loading {
    color: #8dc9ff;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status.is-success {
    color: #79deab;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status.is-error {
    color: #f08f9f;
}

.tn-ai-lab-page .tn-lab-tabs {
    margin-top: 1.2rem;
}

.tn-ai-lab-page .tn-lab-tabs__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.46rem;
    margin: 0 0 0.95rem;
    padding: 0.46rem;
    border: 1px solid var(--tn-lab-border-strong);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(20, 35, 53, 0.86), rgba(14, 26, 40, 0.94));
}

.tn-ai-lab-page .tn-lab-tabs__tab {
    min-height: 38px;
    border: 1px solid rgba(95, 129, 166, 0.74);
    border-radius: 10px;
    background: rgba(16, 29, 45, 0.88);
    color: #b7cbe1;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
    padding: 0.44rem 0.58rem;
}

.tn-ai-lab-page .tn-lab-tabs__tab:hover {
    border-color: rgba(134, 184, 255, 0.86);
    background: rgba(24, 42, 65, 0.92);
    color: #d9e9fb;
}

.tn-ai-lab-page .tn-lab-tabs__tab.is-active,
.tn-ai-lab-page .tn-lab-tabs__tab[aria-selected="true"] {
    border-color: rgba(57, 208, 195, 0.95);
    background: linear-gradient(135deg, rgba(22, 82, 87, 0.96), rgba(20, 57, 71, 0.96));
    color: #d5fff9;
    box-shadow: 0 10px 20px rgba(57, 208, 195, 0.26);
}

.tn-ai-lab-page .tn-lab-tabs__panel {
    border: 1px solid var(--tn-lab-border);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(11, 20, 31, 0.95), rgba(8, 16, 26, 0.98));
    box-shadow: 0 16px 30px rgba(3, 9, 15, 0.48);
    padding: 0.95rem;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool {
    margin: 0;
    border: 1px solid rgba(58, 85, 114, 0.82);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(14, 26, 41, 0.92), rgba(11, 20, 31, 0.98));
    box-shadow: 0 14px 26px rgba(3, 8, 14, 0.5);
    color: var(--tn-lab-text);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__title {
    color: #ecf4ff;
    font-size: clamp(1.65rem, 3.2vw, 2.15rem);
    line-height: 1.03;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__desc {
    color: #99b2cc;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-label,
.tn-ai-lab-page .tn-lab-unified .tn-ai-label {
    color: #90adc9;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-input,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-textarea,
.tn-ai-lab-page .tn-lab-unified .tn-ai-input,
.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea {
    border: 1px solid rgba(78, 112, 149, 0.86);
    border-radius: 10px;
    background: rgba(10, 18, 29, 0.88);
    color: #e1ecfa;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-input::placeholder,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-textarea::placeholder,
.tn-ai-lab-page .tn-lab-unified .tn-ai-input::placeholder,
.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea::placeholder {
    color: #6f8ca9;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-input:focus,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-textarea:focus,
.tn-ai-lab-page .tn-lab-unified .tn-ai-input:focus,
.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea:focus {
    border-color: var(--tn-lab-accent);
    box-shadow: 0 0 0 3px rgba(57, 208, 195, 0.2);
}

.tn-ai-lab-page .tn-ai-btn {
    border-color: var(--tn-lab-accent);
    background: linear-gradient(135deg, #30b9ac, #2d95b6);
    color: #08141e;
    border-radius: 10px;
    min-height: 36px;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
}

.tn-ai-lab-page .tn-ai-btn:hover {
    background: linear-gradient(135deg, #47d5c7, #3eabd0);
    color: #05101a;
    box-shadow: 0 12px 22px rgba(57, 208, 195, 0.28);
}

.tn-ai-lab-page .tn-ai-btn--ghost {
    border-color: rgba(134, 184, 255, 0.72);
    background: rgba(134, 184, 255, 0.13);
    color: #cfe4ff;
}

.tn-ai-lab-page .tn-ai-btn--ghost:hover {
    border-color: rgba(134, 184, 255, 0.92);
    background: rgba(134, 184, 255, 0.24);
    color: #eff5ff;
}

.tn-ai-lab-page .tn-ai-btn--ghost.is-route-ready {
    border-color: var(--tn-lab-accent);
    background: linear-gradient(135deg, #32bdae, #2f9ec0);
    color: #08141e;
    box-shadow: 0 12px 22px rgba(57, 208, 195, 0.26);
}

.tn-ai-lab-page .tn-ai-btn--ghost.is-route-ready:hover {
    border-color: #4ad7ca;
    background: linear-gradient(135deg, #47d5c7, #42aed6);
    color: #07131e;
}

.tn-ai-lab-page .tn-lab-tabs.is-routed .tn-lab-tabs__list {
    border-color: rgba(57, 208, 195, 0.9);
    box-shadow: 0 0 0 1px rgba(57, 208, 195, 0.36), 0 12px 24px rgba(4, 12, 21, 0.36);
}

.tn-ai-lab-page .tn-lab-tools.is-route-target .tn-services-tech__inner {
    animation: tn-lab-route-flash 1.8s ease;
}

@keyframes tn-lab-route-flash {
    0% {
        box-shadow: 0 0 0 rgba(57, 208, 195, 0), var(--tn-lab-shadow);
    }
    25% {
        box-shadow: 0 0 0 3px rgba(57, 208, 195, 0.34), 0 22px 36px rgba(5, 13, 23, 0.44);
    }
    100% {
        box-shadow: var(--tn-lab-shadow);
    }
}

.tn-ai-lab-page .tn-ai-progress__fields {
    margin: 0.55rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.32rem;
}

.tn-ai-lab-page .tn-ai-progress__fields li {
    border: 1px solid rgba(79, 112, 146, 0.74);
    border-radius: 8px;
    background: rgba(11, 21, 33, 0.84);
    color: #8ea9c4;
    font-family: var(--tn-font-body);
    font-size: 0.64rem;
    line-height: 1.35;
    padding: 0.3rem 0.38rem;
}

.tn-ai-lab-page .tn-ai-progress__fields li.is-complete {
    border-color: rgba(105, 213, 159, 0.72);
    background: rgba(20, 56, 47, 0.86);
    color: #caf3de;
}

.tn-ai-lab-page .tn-ai-progress__fields li.is-missing {
    border-color: rgba(95, 129, 166, 0.74);
}

.tn-ai-lab-page .tn-ai-gate {
    margin-top: 0.62rem;
    border: 1px solid rgba(79, 112, 146, 0.72);
    border-radius: 10px;
    background: rgba(11, 21, 33, 0.84);
    padding: 0.55rem 0.62rem;
    display: grid;
    gap: 0.45rem;
}

.tn-ai-lab-page .tn-ai-gate__copy {
    margin: 0;
    color: #95aec7;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-ai-gate__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-ai-gate.is-unlocked {
    border-color: rgba(105, 213, 159, 0.68);
    background: rgba(19, 53, 45, 0.78);
}

.tn-ai-lab-page .tn-ai-gate.is-unlocked .tn-ai-gate__copy {
    color: #bdeed8;
}

.tn-ai-lab-page .tn-ai-status,
.tn-ai-lab-page .tn-ai-remaining,
.tn-ai-lab-page .tn-ai-tool__noscript {
    color: #90aac4;
}

.tn-ai-lab-page .tn-ai-lens__meta {
    margin-top: 0.52rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-ai-lens__expectation {
    margin: 0;
    color: #90abc7;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    line-height: 1.45;
    max-width: 78ch;
}

.tn-ai-lab-page .tn-ai-lens__char-count {
    border: 1px solid rgba(89, 122, 157, 0.75);
    border-radius: 999px;
    background: rgba(11, 21, 34, 0.86);
    color: #a8c1da;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.67rem;
    line-height: 1;
    padding: 0.24rem 0.52rem;
}

.tn-ai-lab-page .tn-ai-lens__char-count.is-valid {
    border-color: rgba(105, 213, 159, 0.72);
    color: #bdf2da;
}

.tn-ai-lab-page .tn-ai-empty--lens {
    border-style: solid;
    border-color: rgba(95, 129, 166, 0.72);
    background: rgba(10, 19, 30, 0.86);
    color: #9fb8d2;
}

.tn-ai-lab-page .tn-ai-lens-placeholder {
    border: 1px solid rgba(79, 112, 147, 0.72);
    border-radius: 12px;
    background: rgba(10, 20, 32, 0.78);
    padding: 0.62rem;
}

.tn-ai-lab-page .tn-ai-lens-placeholder.is-loading {
    border-color: rgba(141, 201, 255, 0.72);
    box-shadow: inset 0 0 0 1px rgba(141, 201, 255, 0.14);
}

.tn-ai-lab-page .tn-ai-lens-placeholder__head h4 {
    margin: 0;
    color: #dce8f8;
    font-family: var(--tn-font-body);
    font-size: 0.78rem;
    letter-spacing: 0.03em;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__head p {
    margin: 0.3rem 0 0;
    color: #8eaac7;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__grid {
    margin-top: 0.54rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.44rem;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__card {
    border: 1px solid rgba(73, 106, 139, 0.72);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(16, 28, 44, 0.88), rgba(10, 20, 31, 0.94));
    display: grid;
    gap: 0.26rem;
    padding: 0.46rem;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__card span {
    color: #86a6c4;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__card strong {
    color: #d4e4f7;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-ai-lens-placeholder__card em {
    color: #90abca;
    font-family: var(--tn-font-body);
    font-size: 0.62rem;
    font-style: normal;
    line-height: 1.35;
}

.tn-ai-lab-page .tn-ai-lens-placeholder-judge {
    margin-top: 0.6rem;
    border: 1px dashed rgba(89, 122, 155, 0.78);
    border-radius: 10px;
    background: rgba(10, 19, 30, 0.76);
    padding: 0.52rem 0.56rem;
}

.tn-ai-lab-page .tn-ai-lens-placeholder-judge h4 {
    margin: 0;
    color: #dceaf9;
    font-family: var(--tn-font-body);
    font-size: 0.73rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-ai-lens-placeholder-judge p {
    margin: 0.34rem 0 0;
    color: #93aecb;
    font-family: var(--tn-font-body);
    font-size: 0.67rem;
    line-height: 1.45;
}

.tn-ai-lab-page .tn-ai-status.is-loading {
    color: #8dc9ff;
}

.tn-ai-lab-page .tn-ai-status.is-success {
    color: #79deab;
}

.tn-ai-lab-page .tn-ai-status.is-warning {
    color: #f2c06d;
}

.tn-ai-lab-page .tn-ai-status.is-error {
    color: #f08f9f;
}

.tn-ai-lab-page .tn-ai-status.is-attention {
    animation: tnGuidedStatusPulse 0.9s ease-out 1;
}

.tn-ai-lab-page .tn-lab-unified__result.is-attention {
    animation: tnGuidedAttentionPulse 0.6s ease-out 2;
}

@keyframes tnGuidedStatusPulse {
    0% {
        transform: translateY(0);
        text-shadow: none;
    }
    45% {
        transform: translateY(-1px);
        text-shadow: 0 0 10px rgba(57, 208, 195, 0.46);
    }
    100% {
        transform: translateY(0);
        text-shadow: none;
    }
}

@keyframes tnGuidedAttentionPulse {
    0% {
        box-shadow: 0 0 0 rgba(57, 208, 195, 0);
        transform: translateY(0);
    }
    40% {
        box-shadow: 0 0 0 2px rgba(57, 208, 195, 0.28);
        transform: translateY(-1px);
    }
    100% {
        box-shadow: 0 0 0 rgba(57, 208, 195, 0);
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-ai-status.is-attention,
    .tn-ai-lab-page .tn-lab-unified__result.is-attention {
        animation: none;
        text-shadow: none;
    }
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-judge,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__reasoning,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__status-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__result-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__empty,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts {
    border-color: rgba(58, 85, 114, 0.82);
    background: rgba(13, 24, 38, 0.9);
    color: #dce8f6;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts {
    position: relative;
    margin-top: 1rem;
    border-top: 2px solid rgba(57, 208, 195, 0.62);
    background: linear-gradient(180deg, rgba(12, 27, 41, 0.94), rgba(10, 20, 31, 0.96));
    box-shadow: inset 0 1px 0 rgba(57, 208, 195, 0.2);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__divider {
    border-top-color: rgba(95, 130, 165, 0.58);
    box-shadow: 0 1px 0 rgba(57, 208, 195, 0.14);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__title {
    display: inline-flex;
    align-items: center;
    gap: 0.34rem;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__title::before {
    content: "ARTIFACTS";
    border: 1px solid rgba(57, 208, 195, 0.52);
    border-radius: 999px;
    background: rgba(57, 208, 195, 0.14);
    color: #bff4ee;
    font-family: var(--tn-font-body);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.16rem 0.32rem;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-card__title,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-judge__title,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap__title,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__title,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__heading {
    color: #ebf4ff;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-card__meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-judge__meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap__meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__intro,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__meta {
    color: #8fa8c3;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-card__body,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-judge__summary,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap__body,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__reasoning-body,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__snippet,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__source {
    color: #d6e5f6;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-progress__text {
    color: #b8cee5;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-chat__msg--bot {
    border-color: rgba(78, 112, 149, 0.76);
    background: rgba(13, 24, 38, 0.9);
    color: #dce9f8;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-chat__msg--user {
    border-color: rgba(57, 208, 195, 0.64);
    background: rgba(15, 54, 57, 0.84);
    color: #d4fff9;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__metrics span,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__source,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__meta {
    color: #a8c1dc;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__metrics strong,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__hit-head h4,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__badge {
    color: #ecf5ff;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-memory__hit-head span {
    color: #9fbcda;
}

.tn-ai-lab-page .tn-lab-tabs__panel a {
    color: #7bd9cf;
}

.tn-ai-lab-page .tn-lab-tabs__panel a:hover {
    color: #9bece2;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__log,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__share-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__active-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revisions,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revision {
    border-color: rgba(58, 85, 114, 0.82);
    background: rgba(10, 18, 29, 0.9);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__title,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__card h5,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revisions h5 {
    color: #e5f0ff;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__intro,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__status,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__card-meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revision-summary,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__shares ul {
    color: #94abc5;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__ttl {
    color: #a7bdd4;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__ttl input {
    border-color: rgba(78, 112, 149, 0.86);
    background: rgba(8, 16, 26, 0.9);
    color: #e1ecfa;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__ttl input:focus {
    border-color: var(--tn-lab-accent);
    box-shadow: 0 0 0 2px rgba(57, 208, 195, 0.24);
}

.tn-ai-lab-page .tn-feedback {
    border-color: rgba(58, 85, 114, 0.82);
    background: rgba(11, 21, 34, 0.92);
}

.tn-ai-lab-page .tn-feedback__prompt,
.tn-ai-lab-page .tn-feedback__status {
    color: #93aac4;
}

.tn-ai-lab-page .tn-feedback__btn {
    border-color: rgba(134, 184, 255, 0.68);
    background: rgba(134, 184, 255, 0.12);
    color: #d0e4ff;
}

.tn-ai-lab-page .tn-feedback__btn:hover {
    border-color: rgba(134, 184, 255, 0.88);
    background: rgba(134, 184, 255, 0.24);
}

.tn-ai-lab-page .tn-feedback__btn.is-selected {
    border-color: rgba(57, 208, 195, 0.94);
    background: rgba(57, 208, 195, 0.22);
    color: #c8fbf4;
}

.tn-ai-lab-page .tn-lab-cta-band {
    margin-top: 24px;
    border-top: 1px solid var(--tn-lab-border);
    background:
        radial-gradient(circle at 82% 18%, rgba(57, 208, 195, 0.2), transparent 34%),
        linear-gradient(145deg, #091422 0%, #111f33 60%, #091523 100%);
    padding: var(--tn-lab-space-cta-y) 24px;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__inner {
    max-width: 880px;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__heading {
    color: #f0f6ff;
    font-size: clamp(2.2rem, 4.8vw, 3.35rem);
    line-height: 1.03;
    text-wrap: balance;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__text {
    color: #9cb4ce;
    font-size: 1rem;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__proof {
    margin: 0.82rem auto 0;
    max-width: 640px;
    color: #8fa9c5;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.52rem;
    margin-top: 1.15rem;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(134, 184, 255, 0.62);
    border-radius: 999px;
    background: rgba(134, 184, 255, 0.1);
    color: #d4e7ff;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    min-height: 36px;
    padding: 0.4rem 0.92rem;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a:first-child {
    border-color: rgba(94, 7, 122, 0.9);
    background: linear-gradient(135deg, #5e077a, #8f1cb8);
    color: #fff;
}

.tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a:hover {
    border-color: rgba(57, 208, 195, 0.9);
    background: rgba(57, 208, 195, 0.24);
    color: #d2fff9;
    transform: translateY(-1px);
}

.tn-ai-lab-page .tn-lab-bridge {
    padding: 12px 20px 10px;
}

.tn-ai-lab-page .tn-lab-bridge__inner {
    max-width: min(1240px, calc(100% - 2rem));
    margin: 0 auto;
    border: 1px solid rgba(79, 113, 146, 0.84);
    border-radius: 14px;
    background:
        radial-gradient(circle at 85% 25%, rgba(57, 208, 195, 0.22), transparent 36%),
        linear-gradient(135deg, rgba(9, 22, 35, 0.94), rgba(9, 17, 28, 0.98));
    box-shadow: 0 16px 28px rgba(4, 10, 17, 0.44);
    padding: 0.86rem 0.94rem;
}

.tn-ai-lab-page .tn-lab-bridge__kicker {
    margin: 0;
    color: #8dc9ff;
    font-family: var(--tn-font-body);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-bridge__title {
    margin: 0.34rem 0 0;
    color: #e8f2ff;
    font-family: var(--tn-font-display);
    font-size: clamp(1.3rem, 2.3vw, 1.78rem);
    line-height: 1.15;
}

.tn-ai-lab-page .tn-lab-bridge__text {
    margin: 0.4rem 0 0;
    max-width: 76ch;
    color: #9fb7d1;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    line-height: 1.55;
}

.tn-ai-lab-page .tn-lab-bridge__actions {
    margin: 0.62rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-lab-bridge__actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 208, 195, 0.74);
    border-radius: 999px;
    background: rgba(57, 208, 195, 0.18);
    color: #d7fff9;
    text-decoration: none;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    min-height: 32px;
    padding: 0.26rem 0.64rem;
}

.tn-ai-lab-page .tn-lab-bridge__actions a:hover {
    border-color: rgba(57, 208, 195, 0.92);
    background: rgba(57, 208, 195, 0.3);
    color: #edfffc;
}

.tn-ai-lab-page .tn-services-cta {
    width: 100%;
    left: auto;
    transform: none;
}

.tn-ai-lab-page .tn-ai-lab-faq,
.tn-ai-lab-page .tn-ai-lab-intake,
.tn-ai-lab-page .tn-lab-cta-band {
    position: relative;
    left: auto;
    width: 100%;
    transform: none;
}

.tn-ai-lab-page .tn-ai-lab-faq {
    background: linear-gradient(180deg, rgba(8, 17, 28, 0.98), rgba(7, 14, 24, 0.99));
    border-top: 1px solid rgba(85, 120, 156, 0.46);
    border-bottom: 1px solid rgba(85, 120, 156, 0.3);
    width: 100%;
    left: auto;
    transform: none;
    padding: var(--tn-lab-space-faq-y) 24px;
}

.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
    position: relative;
    overflow: hidden;
    max-width: min(1240px, calc(100% - 2rem));
    border: 1px solid var(--tn-lab-border);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(14, 25, 40, 0.93) 0%, rgba(10, 20, 32, 0.98) 100%);
    box-shadow: var(--tn-lab-shadow);
    padding: clamp(1.1rem, 2.3vw, 2.2rem);
}

.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent 0 38px, rgba(113, 149, 194, 0.14) 38px 39px),
        repeating-linear-gradient(90deg, transparent 0 38px, rgba(113, 149, 194, 0.14) 38px 39px);
    opacity: 0.2;
    pointer-events: none;
}

.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner > * {
    position: relative;
    z-index: 1;
}

.tn-ai-lab-page .tn-lab-kb .tn-lab-section-head {
    max-width: 860px;
}

.tn-ai-lab-page .tn-lab-kb__list {
    margin-top: 1.15rem;
    display: grid;
    gap: 0.62rem;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__item,
.tn-ai-lab-page .tn-lab-kb .tn-faq__item:first-child {
    border: 1px solid rgba(78, 112, 149, 0.7);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(13, 24, 38, 0.86), rgba(10, 18, 29, 0.94));
    box-shadow: 0 12px 20px rgba(4, 9, 16, 0.34);
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] {
    border-color: rgba(57, 208, 195, 0.78);
    box-shadow: 0 14px 24px rgba(57, 208, 195, 0.18);
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__question {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.72rem;
    margin: 0;
    padding: 0.72rem 0.8rem;
    color: #d9e9fb;
    font-family: var(--tn-font-body);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__question::after {
    content: none;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__question:hover {
    color: #ebfbff;
}

.tn-ai-lab-page .tn-lab-kb__record {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(57, 208, 195, 0.62);
    border-radius: 8px;
    background: rgba(57, 208, 195, 0.16);
    color: #bdf0ea;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    padding: 0.32rem 0.52rem;
    white-space: nowrap;
    min-width: 3rem;
    text-align: center;
}

.tn-ai-lab-page .tn-lab-kb__prompt {
    min-width: 0;
}

.tn-ai-lab-page .tn-lab-kb__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(93, 126, 161, 0.82);
    border-radius: 999px;
    background: rgba(11, 21, 34, 0.82);
    color: #b8d3ef;
    font-size: 0;
    line-height: 1;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    flex-shrink: 0;
}
.tn-ai-lab-page .tn-lab-kb__chevron::after {
    content: '';
    display: block;
    width: 7px;
    height: 7px;
    border-right: 2px solid #b8d3ef;
    border-bottom: 2px solid #b8d3ef;
    transform: rotate(-45deg);
    margin-left: -2px;
    transition: border-color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] .tn-lab-kb__chevron {
    border-color: rgba(57, 208, 195, 0.84);
    background: rgba(57, 208, 195, 0.12);
    transform: rotate(90deg);
}
.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] .tn-lab-kb__chevron::after {
    border-color: #d8fffa;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__answer {
    margin: 0.1rem 0.8rem 0.78rem;
    padding: 0.56rem 0 0.16rem 0.74rem;
    border-left: 2px solid rgba(57, 208, 195, 0.52);
    color: #a5bbd4;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    line-height: 1.58;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__answer p:first-child {
    color: #d6e7fa;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.tn-ai-lab-page .tn-lab-kb .tn-faq__answer p:last-child {
    margin-bottom: 0;
}

.tn-ai-lab-page .tn-ai-lab-intake {
    background: linear-gradient(145deg, #091422 0%, #111f33 60%, #091523 100%);
    border-top: 1px solid rgba(104, 133, 168, 0.36);
    padding: var(--tn-lab-space-intake-top) 24px var(--tn-lab-space-intake-bottom);
}

.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__inner {
    max-width: min(980px, calc(100% - 2rem));
}

.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__form {
    max-width: min(860px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__text {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.tn-ai-lab-page .tn-ai-lab-intake .tn-intake-form__label {
    display: block;
    margin: 0 0 0.34rem;
    color: #d8e7fa;
    font-family: var(--tn-font-body);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.3;
}

.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__form .wpcf7-form > p {
    margin-bottom: 0.72rem;
}

.tn-ai-lab-page #tn-chatbot {
    right: 1rem;
    bottom: 1rem;
}

@media (min-width: 1200px) {
    .tn-ai-lab-page .tn-chatbot__panel {
        width: min(340px, calc(100vw - 2.5rem)) !important;
        max-width: min(340px, calc(100vw - 2.5rem)) !important;
        height: min(560px, calc(100vh - 4rem)) !important;
    }

    .tn-ai-lab-page.tn-chatbot-open #lab-unified .tn-services-tech__inner,
    .tn-ai-lab-page.tn-chatbot-open #lab-tools .tn-services-tech__inner {
        margin-right: clamp(300px, var(--tn-ai-lab-chat-reserve, 360px), 430px);
        transition: margin-right 0.24s ease;
    }

    .tn-ai-lab-page.tn-chatbot-open #lab-orchestration .tn-services-tech__inner {
        margin-right: clamp(420px, calc(var(--tn-ai-lab-chat-reserve, 420px) + 64px), 560px);
        transition: margin-right 0.24s ease;
    }
}

.tn-ai-lab-page .back-to-top,
.tn-ai-lab-page a.back-to-top,
.tn-ai-lab-page #back-to-top {
    background: rgba(179, 199, 211, 0.86) !important;
    color: #0f2331 !important;
    box-shadow: 0 8px 16px rgba(10, 20, 30, 0.35);
    right: 1rem;
    bottom: 5.9rem;
}

@media (min-width: 1101px) {
    .tn-ai-lab-page.tn-lab-view-pro {
        --tn-lab-rail-offset: 12rem;
    }

    .tn-ai-lab-page .tn-page-hero.tn-lab-hero {
        padding-left: calc(24px + var(--tn-lab-rail-offset));
    }

    .tn-ai-lab-page .tn-lab-command-strip {
        padding-left: calc(24px + var(--tn-lab-rail-offset));
    }

    .tn-ai-lab-page .tn-services-tech {
        padding-left: calc(20px + var(--tn-lab-rail-offset));
    }

    .tn-ai-lab-page .tn-lab-bridge {
        padding-left: calc(20px + var(--tn-lab-rail-offset));
    }

    .tn-ai-lab-page .tn-ai-lab-faq,
    .tn-ai-lab-page .tn-ai-lab-intake,
    .tn-ai-lab-page .tn-lab-cta-band {
        padding-left: calc(24px + var(--tn-lab-rail-offset));
    }
}

@media (max-width: 1100px) {
    .tn-ai-lab-page .tn-lab-section-rail {
        display: none;
    }

    .tn-ai-lab-page .tn-lab-hero__inner {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-page-hero__text {
        max-width: 100%;
    }

    .tn-ai-lab-page .tn-lab-command-strip__meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-pro-header__inner {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-pro-header__back {
        width: 100%;
    }
}

@media (hover: none) and (pointer: coarse) {
    .tn-ai-lab-page .tn-lab-section-rail {
        display: none;
    }
}

@media (max-width: 1180px) {
    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    }
}

@media (max-width: 980px) {
    .tn-ai-lab-page .tn-lab-command-strip {
        padding-left: 16px;
        padding-right: 16px;
    }

    .tn-ai-lab-page .tn-services-tech {
        padding-left: 16px;
        padding-right: 16px;
    }

    .tn-ai-lab-page .tn-lab-pulse-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    }

    .tn-ai-lab-page .tn-lab-viz-trace__stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-viz-sticky {
        top: calc(66px + env(safe-area-inset-top));
    }

    .tn-ai-lab-page .tn-lab-viz-sticky__nodes {
        grid-auto-columns: minmax(82px, 1fr);
    }

    .tn-ai-lab-page .tn-lab-unified__trace-pipeline {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .tn-ai-lab-page .tn-page-hero.tn-lab-hero {
        padding: 32px 16px 30px;
    }

    .tn-ai-lab-page .tn-lab-command-strip {
        padding: 0 16px 24px;
    }

    .tn-ai-lab-page .tn-page-hero__heading {
        font-size: clamp(2rem, 9vw, 2.8rem);
    }

    .tn-ai-lab-page .tn-page-hero__text {
        font-size: 0.93rem;
    }

    .tn-ai-lab-page .tn-lab-hero__console {
        padding: 0.82rem;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-grid-nav a {
        font-size: 0.61rem;
        padding: 0.24rem 0.48rem;
    }

    .tn-ai-lab-page .tn-services-tech {
        padding: 20px 12px;
    }

    .tn-ai-lab-page .tn-services-tech__inner {
        border-radius: 16px;
        padding: 0.9rem 0.82rem;
    }

    .tn-ai-lab-page .tn-services__section-heading {
        font-size: clamp(1.6rem, 8vw, 2.05rem);
    }

    .tn-ai-lab-page .tn-services-tech__narrative {
        font-size: 0.87rem;
        line-height: 1.5;
    }

    .tn-ai-lab-page .tn-lab-pulse-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-viz-shell__legend {
        justify-content: flex-start;
    }

    .tn-ai-lab-page .tn-lab-viz__status-wrap {
        flex-basis: 100%;
    }

    .tn-ai-lab-page .tn-lab-viz__live-link {
        font-size: 0.63rem;
        letter-spacing: 0.035em;
    }

    .tn-ai-lab-page .tn-lab-viz-trace {
        padding: 0.52rem;
    }

    .tn-ai-lab-page .tn-lab-viz-trace__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.3rem;
    }

    .tn-ai-lab-page .tn-lab-viz-trace__log {
        max-height: 152px;
    }

    .tn-ai-lab-page .tn-lab-viz__history {
        grid-template-columns: 1fr 1fr;
        gap: 0.34rem;
    }

    .tn-ai-lab-page .tn-lab-viz__history-label {
        grid-column: 1 / -1;
        order: 1;
        white-space: normal;
    }

    .tn-ai-lab-page .tn-lab-viz__history-btn {
        width: 100%;
        justify-content: center;
    }

    .tn-ai-lab-page .tn-lab-viz-sticky {
        left: max(8px, env(safe-area-inset-left));
        right: max(8px, env(safe-area-inset-right));
        top: calc(60px + env(safe-area-inset-top));
    }

    .tn-ai-lab-page .tn-lab-viz-sticky__head {
        flex-direction: column;
        align-items: stretch;
    }

    .tn-ai-lab-page .tn-lab-viz-sticky__actions {
        justify-content: space-between;
    }

    .tn-ai-lab-page .tn-lab-viz-sticky__nodes {
        grid-auto-columns: minmax(76px, 1fr);
    }

    .tn-ai-lab-page .tn-lab-unified__trace-pipeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-tabs__list {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    .tn-ai-lab-page .tn-lab-tabs__tab {
        flex: 0 0 auto;
        min-width: max-content;
    }

    .tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__title {
        font-size: 1.46rem;
    }

    .tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-label,
    .tn-ai-lab-page .tn-lab-unified .tn-ai-label {
        font-size: 0.72rem;
    }

    .tn-ai-lab-page .tn-ai-progress__fields {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-ai-lens__meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .tn-ai-lab-page .tn-lab-bridge {
        padding: 8px 12px 6px;
    }

    .tn-ai-lab-page .tn-lab-bridge__inner {
        padding: 0.78rem 0.74rem;
    }

    .tn-ai-lab-page .tn-ai-lens-placeholder__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tn-ai-lab-page .tn-lab-hero__subline {
        font-size: 0.66rem;
    }

    .tn-ai-lab-page .tn-page-hero__ctas {
        display: grid;
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-command-strip__meta {
        align-items: stretch;
    }

    .tn-ai-lab-page .tn-lab-grid-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-grid-nav a {
        justify-content: center;
    }

    .tn-ai-lab-page .tn-lab-pulse-strip {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-pulse-card {
        min-height: 110px;
    }

    .tn-ai-lab-page .tn-lab-bridge__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-ai-lens-placeholder__grid {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-auto-flow: row;
        grid-auto-columns: 1fr;
        grid-template-columns: 1fr;
        overflow: visible;
        padding-bottom: 0.1rem;
    }

    .tn-ai-lab-page .tn-lab-viz__node {
        min-height: 92px;
    }

    .tn-ai-lab-page .tn-lab-viz-trace__stats {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-viz-trace__line {
        grid-template-columns: 1fr;
        gap: 0.22rem;
    }

    .tn-ai-lab-page .tn-lab-viz-trace__badge {
        justify-self: start;
    }

    .tn-ai-lab-page .tn-lab-unified__trace-pipeline {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-cta-band {
        padding: 40px 14px;
    }

    .tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__heading {
        font-size: 1.84rem;
    }

    .tn-ai-lab-page .tn-lab-cta-band .tn-services-cta__alt a {
        width: 100%;
    }

    .tn-ai-lab-page .tn-ai-gate__actions {
        flex-direction: column;
    }

    .tn-ai-lab-page .tn-ai-gate__actions .tn-ai-btn {
        width: 100%;
        justify-content: center;
    }

    .tn-ai-lab-page #tn-chatbot {
        right: 0.72rem;
        bottom: 0.72rem;
    }

    .tn-ai-lab-page .back-to-top,
    .tn-ai-lab-page a.back-to-top,
    .tn-ai-lab-page #back-to-top {
        right: 0.72rem;
        bottom: 5.1rem;
    }
}

/* AI Lab polish: deterministic flow layout, cleaner chat trace, upgraded sticky overlay */
.tn-ai-lab-page .tn-lab-viz {
    overflow: visible;
}

.tn-ai-lab-page .tn-lab-viz__nodes {
    grid-auto-flow: row;
    grid-auto-columns: unset;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    justify-content: stretch;
    overflow-x: clip;
    overflow-y: visible;
    margin-top: 0.1rem;
    padding: 0.2rem 0.14rem 0.32rem;
    gap: 0.52rem;
    align-items: stretch;
    position: relative;
}

.tn-ai-lab-page .tn-lab-viz__node {
    width: auto;
    min-width: 0;
    min-height: 96px;
    padding: 1rem 0.54rem 0.56rem 0.72rem;
    overflow: visible;
    transition:
        border-color 0.24s ease,
        background 0.24s ease,
        box-shadow 0.24s ease,
        transform 0.24s ease;
}

.tn-ai-lab-page .tn-lab-viz__node::before {
    content: "" !important;
    width: 0.56rem;
    height: 0.56rem;
    border-radius: 999px;
    border: 1px solid rgba(144, 178, 214, 0.75);
    background: rgba(112, 144, 177, 0.72);
    padding: 0;
    top: 0.42rem;
    left: 0.5rem;
    max-width: none;
}

.tn-ai-lab-page .tn-lab-viz__node.is-active::before {
    border-color: rgba(66, 221, 209, 0.92);
    background: rgba(62, 195, 183, 0.92);
    box-shadow: 0 0 0 4px rgba(62, 195, 183, 0.24);
}

.tn-ai-lab-page .tn-lab-viz__node.is-complete::before {
    border-color: rgba(124, 232, 178, 0.9);
    background: rgba(105, 213, 159, 0.92);
    box-shadow: 0 0 0 4px rgba(105, 213, 159, 0.2);
}

.tn-ai-lab-page .tn-lab-viz__node-label {
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.72rem;
    line-height: 1.2;
    letter-spacing: 0.025em;
}

.tn-ai-lab-page .tn-lab-viz__node-time {
    min-width: 3.3rem;
    font-size: 0.7rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__inner {
    position: relative;
    overflow: hidden;
    border-color: rgba(95, 129, 166, 0.84);
    background:
        radial-gradient(circle at 10% 0%, rgba(62, 195, 183, 0.12), transparent 46%),
        linear-gradient(180deg, rgba(9, 19, 31, 0.98), rgba(6, 13, 22, 0.99));
    box-shadow: 0 14px 26px rgba(5, 11, 18, 0.54), inset 0 1px 0 rgba(82, 139, 187, 0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.tn-ai-lab-page .tn-lab-viz-sticky__inner::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(62, 195, 183, 0.2), rgba(62, 195, 183, 0.95), rgba(105, 213, 159, 0.45));
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-viz-sticky__status {
    font-size: 0.72rem;
    letter-spacing: 0.025em;
    text-transform: none;
}

.tn-ai-lab-page .tn-lab-viz-sticky__meta {
    font-size: 0.64rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__nodes {
    grid-auto-columns: minmax(104px, 1fr);
    gap: 0.3rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__node {
    min-height: 2.1rem;
    border-radius: 10px;
    padding: 0.24rem 0.48rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__label {
    font-size: 0.58rem;
    letter-spacing: 0.06em;
}

.tn-ai-lab-page .tn-lab-viz-sticky {
    opacity: 0;
    transform: translateY(-12px) scale(0.986);
    transition:
        opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.tn-ai-lab-page .tn-lab-viz-sticky.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.tn-ai-lab-page .tn-lab-viz-sticky.is-hiding {
    opacity: 0;
    transform: translateY(-10px) scale(0.99);
}

.tn-ai-lab-page .tn-lab-viz-sticky__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(62, 195, 183, 0.74);
    border-radius: 999px;
    background: rgba(62, 195, 183, 0.14);
    color: #cffff8;
    cursor: pointer;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 0.26rem 0.54rem;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-viz-sticky__toggle:hover,
.tn-ai-lab-page .tn-lab-viz-sticky__toggle:focus {
    border-color: rgba(62, 195, 183, 0.92);
    background: rgba(62, 195, 183, 0.26);
    color: #eafffd;
    outline: none;
}

.tn-ai-lab-page .tn-lab-viz-sticky__details {
    margin-top: 0.34rem;
    border-top: 1px solid rgba(76, 110, 145, 0.6);
    padding-top: 0.34rem;
    max-height: 0;
    opacity: 0;
    transform: translateY(-6px);
    overflow: hidden;
    transition:
        max-height 0.22s ease,
        opacity 0.22s ease,
        transform 0.22s ease;
}

.tn-ai-lab-page .tn-lab-viz-sticky__details.is-expanded {
    max-height: 18rem;
    opacity: 1;
    transform: translateY(0);
}

.tn-ai-lab-page .tn-lab-viz-sticky__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.22rem;
    margin: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__stats span {
    border: 1px solid rgba(83, 117, 154, 0.68);
    border-radius: 8px;
    background: rgba(11, 22, 35, 0.9);
    color: #bcd2ea;
    font-family: var(--tn-font-body);
    font-size: 0.56rem;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.2rem 0.3rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-ai-lab-page .tn-lab-viz-sticky__log {
    margin-top: 0.28rem;
    max-height: 8rem;
    overflow-y: auto;
    display: grid;
    gap: 0.18rem;
    padding-right: 0.08rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__line {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.24rem;
    align-items: start;
}

.tn-ai-lab-page .tn-lab-viz-sticky__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    border-radius: 999px;
    border: 1px solid rgba(83, 117, 154, 0.72);
    background: rgba(16, 31, 47, 0.88);
    color: #c9dbef;
    font-family: var(--tn-font-body);
    font-size: 0.52rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    padding: 0.14rem 0.28rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__badge.is-reason {
    border-color: rgba(122, 198, 255, 0.88);
    color: #ddf2ff;
}

.tn-ai-lab-page .tn-lab-viz-sticky__badge.is-act {
    border-color: rgba(72, 216, 195, 0.86);
    color: #d8fff8;
}

.tn-ai-lab-page .tn-lab-viz-sticky__badge.is-observe {
    border-color: rgba(244, 204, 114, 0.88);
    color: #ffefcb;
}

.tn-ai-lab-page .tn-lab-viz-sticky__badge.is-verify {
    border-color: rgba(147, 222, 156, 0.9);
    color: #e5ffe9;
}

.tn-ai-lab-page .tn-lab-viz-sticky__line-text {
    min-width: 0;
    color: #c2d7ee;
    font-family: var(--tn-font-body);
    font-size: 0.58rem;
    line-height: 1.3;
    display: grid;
    gap: 0.08rem;
}

.tn-ai-lab-page .tn-lab-viz-sticky__line-time {
    color: #7f9dbd;
    font-size: 0.52rem;
    line-height: 1.1;
}

.tn-ai-lab-page .tn-lab-viz-sticky__log-empty {
    margin: 0;
    color: #88a4c1;
    font-family: var(--tn-font-body);
    font-size: 0.56rem;
    line-height: 1.35;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace {
    border-color: rgba(74, 107, 141, 0.74);
    background:
        radial-gradient(circle at 10% 0%, rgba(62, 195, 183, 0.1), transparent 42%),
        linear-gradient(180deg, rgba(10, 20, 33, 0.98), rgba(7, 14, 24, 0.99));
    box-shadow: inset 0 1px 0 rgba(94, 141, 188, 0.24);
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.24s ease, transform 0.24s ease, box-shadow 0.24s ease;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace.is-entering {
    opacity: 0;
    transform: translateY(8px);
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace.is-entering.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-summary {
    background: rgba(14, 28, 44, 0.9);
    border-bottom: 1px solid rgba(73, 104, 134, 0.6);
    color: #d7ebff;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.32;
    text-transform: none !important;
    font-variant-caps: normal !important;
    padding: 0.34rem 0.5rem;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-summary:hover,
.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-summary:focus {
    background: rgba(20, 38, 57, 0.96);
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-details {
    border-top: 0;
    padding: 0.38rem 0.48rem 0.46rem;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-pipeline {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.14rem;
    overflow-x: hidden;
    overflow-y: hidden;
    padding: 0.1rem 0;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node {
    position: relative;
    min-height: 22px;
    border-radius: 8px;
    border-color: rgba(84, 113, 143, 0.66);
    background: rgba(9, 19, 31, 0.92);
    padding: 0.12rem;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0;
    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -0.08rem;
    width: 0.11rem;
    height: 1px;
    background: rgba(100, 130, 160, 0.72);
    transform: translateY(-50%);
    pointer-events: none;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node-dot {
    margin: 0;
    width: 7px;
    height: 7px;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    border: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.2rem 0.3rem;
    margin-top: 0.34rem;
    font-size: 0.57rem;
    color: #bcd5ee;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-log {
    margin-top: 0.28rem;
    max-height: 102px;
    gap: 0.18rem;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-badge {
    min-width: 40px;
    border-color: rgba(89, 126, 162, 0.78);
    background: rgba(18, 36, 56, 0.88);
    color: #d7ebff;
    font-size: 0.5rem;
    padding: 0.06rem 0.2rem;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-line-text {
    font-size: 0.57rem;
    line-height: 1.3;
    color: #c9ddf3;
}

@media (max-width: 1120px) {
    .tn-ai-lab-page .tn-lab-viz-sticky__stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .tn-ai-lab-page .tn-lab-viz-sticky__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-auto-columns: 122px;
        grid-template-columns: repeat(7, 122px);
    }

    .tn-ai-lab-page .tn-lab-viz__node {
        width: 122px;
    }
}

/* =============================================================
   PLAN 033: Dark-mode fixes for judge inner, card/judge selectors
   broadened to work in both tab panels AND inline UA surface.
   ============================================================= */

/* --- Task 5: Judge summary dark-mode fix --- */
.tn-ai-lab-page .tn-ai-judge__inner {
    border-color: rgba(58, 85, 114, 0.82);
    background: linear-gradient(135deg, rgba(13, 24, 38, 0.94), rgba(10, 22, 36, 0.96));
    color: #dce8f6;
}

.tn-ai-lab-page .tn-ai-judge__title {
    color: #ebf4ff;
}

.tn-ai-lab-page .tn-ai-judge__summary {
    color: #d6e5f6;
}

.tn-ai-lab-page .tn-ai-judge__meta {
    color: #8fa8c3;
}

/* --- Task 5: Broaden card dark-mode selectors (work in UA inline + tab panels) --- */
.tn-ai-lab-page .tn-ai-card {
    border-color: rgba(58, 85, 114, 0.82);
    background: rgba(13, 24, 38, 0.9);
    color: #dce8f6;
}

.tn-ai-lab-page .tn-ai-card__head {
    border-bottom-color: rgba(58, 85, 114, 0.6);
    background: linear-gradient(180deg, rgba(16, 30, 46, 0.95), rgba(13, 24, 38, 0.9));
}

.tn-ai-lab-page .tn-ai-card__provider {
    color: #ebf4ff;
}

.tn-ai-lab-page .tn-ai-card__model {
    color: #8fa8c3;
}

.tn-ai-lab-page .tn-ai-card__meta {
    color: #8fa8c3;
    border-bottom-color: rgba(58, 85, 114, 0.5);
}

.tn-ai-lab-page .tn-ai-card__body {
    color: #d6e5f6;
}

/* --- Task 3: Card expand/collapse + remove controls --- */
.tn-ai-card__head-controls {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
}

.tn-ai-card__toggle,
.tn-ai-card__remove {
    border: 1px solid #d2c3da;
    border-radius: 6px;
    background: #ffffff;
    color: #4a404f;
    font-family: var(--tn-font-body);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.22rem 0.44rem;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s, color 0.2s;
}

.tn-ai-card__toggle:hover,
.tn-ai-card__remove:hover {
    border-color: #8c46ad;
    background: #f6ecfb;
    color: #4f1967;
}

.tn-ai-lab-page .tn-ai-card__toggle,
.tn-ai-lab-page .tn-ai-card__remove {
    border-color: rgba(134, 184, 255, 0.58);
    background: rgba(134, 184, 255, 0.1);
    color: #c0d8f6;
}

.tn-ai-lab-page .tn-ai-card__toggle:hover,
.tn-ai-lab-page .tn-ai-card__remove:hover {
    border-color: rgba(134, 184, 255, 0.88);
    background: rgba(134, 184, 255, 0.24);
    color: #e0edff;
}

.tn-ai-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.tn-ai-card__head-info {
    flex: 1 1 0%;
    min-width: 0;
}

.tn-ai-card.is-collapsed .tn-ai-card__body {
    display: none;
}

/* Restore all controls */
.tn-ai-card-restore {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid #d2c3da;
    border-radius: 999px;
    background: #fcf9fd;
    color: #58206f;
    font-family: var(--tn-font-body);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.3rem 0.7rem;
    cursor: pointer;
    margin-bottom: 0.55rem;
    transition: border-color 0.2s, background 0.2s;
}

.tn-ai-card-restore:hover {
    border-color: #8c46ad;
    background: #f6ecfb;
}

.tn-ai-lab-page .tn-ai-card-restore {
    border-color: rgba(57, 208, 195, 0.68);
    background: rgba(57, 208, 195, 0.14);
    color: #c8fbf4;
}

.tn-ai-lab-page .tn-ai-card-restore:hover {
    border-color: rgba(57, 208, 195, 0.9);
    background: rgba(57, 208, 195, 0.26);
}

.tn-ai-card-restore[hidden] {
    display: none;
}

/* --- Task 4: Markdown rendering inside card bodies --- */
.tn-ai-card__body p {
    margin: 0 0 0.52rem;
}

.tn-ai-card__body p:last-child {
    margin-bottom: 0;
}

.tn-ai-card__body ul,
.tn-ai-card__body ol {
    margin: 0 0 0.52rem;
    padding-left: 1.3rem;
}

.tn-ai-card__body ul {
    list-style-type: disc;
}

.tn-ai-card__body ol {
    list-style-type: decimal;
}

.tn-ai-card__body li {
    margin: 0 0 0.2rem;
    line-height: 1.55;
}

.tn-ai-card__body strong {
    font-weight: 700;
    color: inherit;
}

.tn-ai-card__body em {
    font-style: italic;
}

.tn-ai-card__body code {
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 0.82em;
    background: rgba(94, 7, 122, 0.08);
    border-radius: 3px;
    padding: 0.1em 0.3em;
}

.tn-ai-lab-page .tn-ai-card__body code {
    background: rgba(134, 184, 255, 0.14);
    color: #c8e0ff;
}

.tn-ai-card__body a {
    color: var(--tn-purple);
    text-decoration: underline;
}

.tn-ai-lab-page .tn-ai-card__body a {
    color: #7bd9cf;
}

/* --- Task 6: Orchestration trace text readability --- */
.tn-ai-lab-page .tn-lab-viz__status {
    color: #c4daf0;
}

.tn-ai-lab-page .tn-lab-viz__live-link {
    color: #a8c4de;
}

.tn-ai-lab-page .tn-lab-viz__meta {
    color: #b0c8e0;
}

.tn-ai-lab-page .tn-lab-viz-trace__title {
    color: #d8eafc;
}

.tn-ai-lab-page .tn-lab-viz-trace__connection {
    color: #a8c4de;
}

.tn-ai-lab-page .tn-lab-viz-trace__stats span {
    color: #9cbbda;
}

.tn-ai-lab-page .tn-lab-viz-trace__log {
    color: #bdd4ea;
}

.tn-ai-lab-page .tn-lab-viz-trace__empty {
    color: #8fb4d4;
}

.tn-ai-lab-page .tn-lab-viz__node-label {
    color: #d4e8fa;
}

.tn-ai-lab-page .tn-lab-viz__node-time {
    color: #a0bfda;
}

.tn-ai-lab-page .tn-lab-viz-shell__legend span {
    color: #b4cde4;
}

/* --- Task 7: Feedback accumulation note --- */
.tn-feedback__note {
    display: block;
    width: 100%;
    color: #7a6f80;
    font-family: var(--tn-font-body);
    font-size: 0.66rem;
    line-height: 1.35;
    margin-top: 0.15rem;
    opacity: 0.85;
}

.tn-ai-lab-page .tn-feedback__note {
    color: #7d9ab8;
}

/* --- Plan 033: Inline tool surface for UA --- */
.tn-lab-unified__tool-surface:empty {
    display: none;
}

.tn-lab-unified__tool-surface {
    margin-top: 1rem;
    border: 1px solid #e2d7e8;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fcf8fd 100%);
    padding: 1rem;
    box-shadow: 0 10px 20px rgba(29, 18, 28, 0.06);
}

.tn-ai-lab-page .tn-lab-unified__tool-surface {
    border-color: var(--tn-lab-border, rgba(58, 85, 114, 0.72));
    background: linear-gradient(180deg, rgba(13, 24, 38, 0.94), rgba(10, 19, 31, 0.98));
    box-shadow: 0 14px 28px rgba(4, 9, 16, 0.44);
}

/* Inline tool picker grid */
.tn-lab-inline-picker {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.6rem;
}

.tn-lab-inline-picker__btn {
    border: 1px solid #d2c3da;
    border-radius: 10px;
    background: #fcf9fd;
    padding: 0.7rem 0.8rem;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.2s, background 0.2s, transform 0.15s;
}

.tn-lab-inline-picker__btn:hover {
    border-color: #8c46ad;
    background: #f6ecfb;
    transform: translateY(-1px);
}

.tn-lab-inline-picker__btn:focus-visible {
    outline: 3px solid rgba(110, 36, 146, 0.32);
    outline-offset: 2px;
}

.tn-lab-inline-picker__name {
    display: block;
    font-family: var(--tn-font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: #2e2730;
    line-height: 1.25;
}

.tn-lab-inline-picker__desc {
    display: block;
    margin-top: 0.18rem;
    font-family: var(--tn-font-body);
    font-size: 0.7rem;
    color: #6f6575;
    line-height: 1.4;
}

.tn-ai-lab-page .tn-lab-inline-picker__btn {
    border-color: rgba(78, 112, 149, 0.7);
    background: rgba(13, 24, 38, 0.86);
}

.tn-ai-lab-page .tn-lab-inline-picker__btn:hover {
    border-color: rgba(57, 208, 195, 0.74);
    background: rgba(18, 54, 58, 0.7);
}

.tn-ai-lab-page .tn-lab-inline-picker__name {
    color: #e8f2ff;
}

.tn-ai-lab-page .tn-lab-inline-picker__desc {
    color: #90b5d8;
}

@media (max-width: 580px) {
    .tn-lab-inline-picker {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-services-tech__inner,
    .tn-ai-lab-page .tn-lab-viz__node.is-active,
    .tn-ai-lab-page .tn-lab-live-dot,
    .tn-ai-lab-page .tn-lab-viz-sticky,
    .tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace {
        animation: none !important;
        transition: none !important;
    }
}

/* =============================================================
   PLAN 031/033: AI Lab WOW polish layer (final override)
   Purpose: remove remaining light surfaces, sharpen contrast,
   and elevate first-visit visual impact in tool panels.
   ============================================================= */
.tn-ai-lab-page {
    --tn-lab-surface-0: rgba(7, 14, 24, 0.985);
    --tn-lab-surface-1: rgba(10, 20, 32, 0.96);
    --tn-lab-surface-2: rgba(13, 25, 39, 0.94);
    --tn-lab-ink-0: #ecf5ff;
    --tn-lab-ink-1: #d6e7fa;
    --tn-lab-ink-2: #9eb9d6;
}

.tn-ai-lab-page .tn-lab-tabs__list {
    border-color: rgba(78, 112, 149, 0.82);
    background:
        radial-gradient(circle at 14% 0%, rgba(57, 208, 195, 0.12), transparent 38%),
        linear-gradient(180deg, rgba(10, 20, 32, 0.96), rgba(8, 16, 26, 0.98));
    box-shadow: inset 0 1px 0 rgba(86, 132, 180, 0.22);
}

.tn-ai-lab-page .tn-lab-tabs__panel {
    border-color: rgba(78, 112, 149, 0.86);
    background:
        radial-gradient(circle at 12% 0%, rgba(57, 208, 195, 0.08), transparent 46%),
        linear-gradient(180deg, var(--tn-lab-surface-1), var(--tn-lab-surface-0));
    box-shadow: 0 16px 30px rgba(4, 11, 18, 0.56), inset 0 1px 0 rgba(81, 125, 168, 0.22);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool {
    border-color: rgba(78, 112, 149, 0.82);
    background:
        linear-gradient(180deg, rgba(14, 27, 43, 0.95), rgba(10, 19, 31, 0.985));
    box-shadow: 0 14px 26px rgba(4, 10, 17, 0.58), inset 0 1px 0 rgba(94, 141, 188, 0.2);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__title {
    color: var(--tn-lab-ink-0);
    text-shadow: 0 1px 0 rgba(5, 12, 19, 0.62);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-tool__desc,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-status,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-remaining {
    color: var(--tn-lab-ink-2);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-progress__bar {
    border: 1px solid rgba(78, 112, 149, 0.82);
    background: rgba(8, 16, 26, 0.92);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.35);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-progress__bar span {
    background:
        linear-gradient(90deg, rgba(57, 208, 195, 0.9), rgba(100, 171, 255, 0.86));
    box-shadow: 0 0 10px rgba(57, 208, 195, 0.3);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-progress__text {
    color: #b9cee4;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-chat {
    border-color: rgba(78, 112, 149, 0.82);
    background: rgba(9, 18, 29, 0.92);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-escalate,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live__reasoning,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-empty {
    border-color: rgba(78, 112, 149, 0.82);
    background: rgba(11, 21, 34, 0.9);
    color: #d3e6fa;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-roadmap__body {
    border-color: rgba(78, 112, 149, 0.82);
    background: rgba(8, 16, 26, 0.93);
    color: var(--tn-lab-ink-1);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__share-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__active-card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__card,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revisions,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revision {
    border-color: rgba(78, 112, 149, 0.82);
    background: rgba(9, 18, 29, 0.93);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__share-card span,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__active-card p,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__card-meta,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revision-summary,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__shares ul {
    color: #a8c0da;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__active-card code,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-live-artifacts__revision-lineage {
    color: #d5e7fb;
    background: rgba(26, 44, 64, 0.74);
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__head,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__stats,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__status,
.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__line-text {
    color: #bcd3ea;
}

.tn-ai-lab-page .tn-lab-tabs__panel .tn-ai-trace__phase-badge {
    border: 1px solid rgba(110, 157, 205, 0.68);
    background: rgba(27, 47, 69, 0.75);
    color: #d8ebff;
}

.tn-ai-lab-page .tn-lab-provider-row {
    overflow: hidden;
}

.tn-ai-lab-page .tn-lab-provider-row::after {
    content: none !important;
    display: none !important;
}

.tn-ai-lab-page .tn-lab-viz-sticky__inner::after {
    content: "";
    position: absolute;
    inset: -140% auto auto -10%;
    width: 38%;
    height: 260%;
    background: linear-gradient(
        110deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(124, 232, 178, 0.16) 48%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: translateX(-130%);
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-viz-sticky.is-visible .tn-lab-viz-sticky__inner::after {
    animation: tn-lab-sticky-scan 3.2s ease-in-out infinite;
}

@keyframes tn-lab-sticky-scan {
    0% { transform: translateX(-130%); opacity: 0; }
    18% { opacity: 0.65; }
    62% { opacity: 0.38; }
    100% { transform: translateX(340%); opacity: 0; }
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-summary {
    font-weight: 800;
    letter-spacing: 0.02em;
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node {
    box-shadow: inset 0 1px 0 rgba(117, 146, 174, 0.28);
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node.is-active {
    box-shadow:
        inset 0 1px 0 rgba(139, 231, 215, 0.55),
        0 0 0 1px rgba(57, 208, 195, 0.45);
}

.tn-ai-lab-page #tn-chatbot .tn-chatbot__inline-trace-node:not(:last-child)::after {
    background: linear-gradient(90deg, rgba(73, 103, 131, 0.2), rgba(73, 103, 131, 0.95), rgba(73, 103, 131, 0.2));
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-lab-viz-sticky.is-visible .tn-lab-viz-sticky__inner::after {
        animation: none !important;
    }
}

/* =============================================================
   PLAN 035: Guided-first long-term UX refinement
   - Reduce first-view text density
   - Keep AI Lab bespoke (execution surface, not chat clone)
   - Rebuild Live Flow strip emphasis for Pro mode
   ============================================================= */
.tn-ai-lab-page {
    --tn-lab-accent: #90bab5;
    --tn-lab-signal: #8c46ad;
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero {
    padding: clamp(18px, 3.4vw, 40px) 24px clamp(10px, 1.9vw, 22px);
    background:
        radial-gradient(circle at 86% 12%, rgba(144, 186, 181, 0.16), transparent 40%),
        radial-gradient(circle at 16% 84%, rgba(110, 36, 146, 0.16), transparent 48%),
        linear-gradient(160deg, #1a1118 0%, #191228 48%, #140d1d 100%);
}

.tn-ai-lab-page .tn-lab-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
    max-width: min(1180px, calc(100% - 2rem));
}

.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__console {
    display: none;
}

.tn-ai-lab-page .tn-page-hero__heading {
    margin-top: 0.46rem;
    font-size: clamp(1.78rem, 3.2vw, 2.62rem);
    line-height: 1.08;
}

.tn-ai-lab-page .tn-page-hero__text {
    margin-top: 0.64rem;
    max-width: 680px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-hero__context {
    margin-top: 0.36rem;
    font-size: 0.74rem;
    line-height: 1.42;
}

.tn-ai-lab-page .tn-page-hero__ctas {
    margin-top: 0.9rem;
    gap: 0.56rem;
}

.tn-ai-lab-page .tn-page-hero__cta {
    min-height: 40px;
    padding: 0.52rem 0.9rem;
    font-size: 0.74rem;
    letter-spacing: 0.05em;
}

.tn-ai-lab-page .tn-lab-trust-line {
    margin-top: 0.56rem;
    max-width: 760px;
    font-size: 0.69rem;
    line-height: 1.36;
    padding: 0.38rem 0.56rem;
}

.tn-ai-lab-page.tn-lab-view-guided .tn-lab-section-head__kicker {
    display: none;
}

.tn-ai-lab-page .tn-services-tech {
    padding-top: 8px;
}

.tn-ai-lab-page .tn-services-tech__inner {
    max-width: min(1180px, calc(100% - 2rem));
    padding: clamp(0.82rem, 1.35vw, 1.26rem);
}

.tn-ai-lab-page .tn-services__section-heading {
    font-size: clamp(1.58rem, 2.8vw, 2.2rem);
    line-height: 1.08;
}

.tn-ai-lab-page .tn-services-tech__narrative {
    margin-top: 0.52rem;
    font-size: 0.88rem;
    line-height: 1.5;
}

.tn-ai-lab-page .tn-lab-unified {
    margin-top: 0.76rem;
    padding: 0.74rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-label {
    font-size: 0.68rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea {
    min-height: 92px;
    padding: 0.58rem 0.68rem;
    font-size: 0.86rem;
    line-height: 1.44;
}

.tn-ai-lab-page .tn-lab-unified__input-hint {
    margin-top: 0.24rem;
    font-size: 0.61rem;
    line-height: 1.3;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-actions {
    gap: 0.42rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-btn,
.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn {
    min-height: 34px;
    font-size: 0.62rem;
    padding: 0.36rem 0.56rem;
}

.tn-ai-lab-page .tn-ai-status {
    margin-top: 0.54rem;
    font-size: 0.7rem;
    line-height: 1.35;
    font-weight: 700;
}

.tn-ai-lab-page .tn-lab-unified__result {
    margin-top: 0.56rem;
    padding: 0.5rem;
}

.tn-ai-lab-page .tn-lab-unified__layers {
    gap: 0.46rem;
}

.tn-ai-lab-page .tn-lab-unified__layer {
    padding: 0.42rem 0.48rem;
}

.tn-ai-lab-page .tn-lab-unified__layer-title {
    font-size: 0.61rem;
}

.tn-ai-lab-page .tn-lab-unified__summary,
.tn-ai-lab-page .tn-lab-unified__technical-note {
    font-size: 0.72rem;
    line-height: 1.44;
}

.tn-ai-lab-page .tn-lab-unified__proof {
    margin-top: 0.42rem;
    padding: 0.34rem 0.4rem;
}

.tn-ai-lab-page .tn-lab-unified__proof-title,
.tn-ai-lab-page .tn-lab-unified__followups-title,
.tn-ai-lab-page .tn-lab-unified__sources-title,
.tn-ai-lab-page .tn-lab-unified__trace-title {
    font-size: 0.58rem;
}

.tn-ai-lab-page .tn-lab-unified__proof-badge,
.tn-ai-lab-page .tn-lab-unified__followup-chip {
    font-size: 0.6rem;
    padding: 0.18rem 0.38rem;
}

.tn-ai-lab-page .tn-lab-unified__steps {
    margin-top: 0.36rem;
    gap: 0.2rem;
    font-size: 0.72rem;
    line-height: 1.4;
}

.tn-ai-lab-page .tn-lab-unified__steps li {
    gap: 0.34rem;
    grid-template-columns: 1rem minmax(0, 1fr);
}

.tn-ai-lab-page .tn-lab-unified__steps li::before {
    font-size: 0.66rem;
}

.tn-ai-lab-page .tn-lab-unified__technical-toggle {
    padding: 0.36rem 0.48rem;
    font-size: 0.64rem;
}

.tn-ai-lab-page .tn-lab-unified__technical-panel {
    margin-top: 0.36rem;
    gap: 0.34rem;
}

.tn-ai-lab-page .tn-lab-unified__meta strong,
.tn-ai-lab-page .tn-lab-unified__sources-list,
.tn-ai-lab-page .tn-lab-unified__trace-log li {
    font-size: 0.68rem;
}

.tn-ai-lab-page .tn-lab-unified__route-target {
    margin-top: 0.5rem;
    padding: 0.3rem 0.46rem;
    font-size: 0.64rem;
}

.tn-ai-lab-page .tn-lab-unified__continuity {
    margin-top: 0.54rem;
    padding-top: 0.48rem;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status {
    font-size: 0.66rem;
}

.tn-ai-lab-page .tn-lab-command-strip {
    padding-top: 0;
}

.tn-ai-lab-page .tn-lab-command-strip__inner {
    position: relative;
    overflow: hidden;
    padding: 0.48rem 0.58rem 0.54rem;
    border-color: rgba(124, 157, 190, 0.76);
    background:
        radial-gradient(circle at 6% 0%, rgba(110, 36, 146, 0.2), transparent 34%),
        linear-gradient(180deg, rgba(13, 24, 38, 0.93), rgba(8, 17, 29, 0.97));
}

.tn-ai-lab-page .tn-lab-command-strip__inner::before {
    content: "";
    position: absolute;
    left: -18%;
    top: 0;
    width: 58%;
    height: 2px;
    background: linear-gradient(90deg, rgba(144, 186, 181, 0), rgba(144, 186, 181, 0.95), rgba(144, 186, 181, 0));
    animation: tn-lab-flow-scan 3.4s linear infinite;
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-command-strip__heading {
    margin: 0 0 0.34rem;
    color: #d9ebff;
    font-family: var(--tn-font-body);
    font-size: 0.61rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-lab-hero__metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.38rem;
    padding: 0.42rem;
}

.tn-ai-lab-page .tn-lab-hero-metric {
    padding: 0.4rem 0.46rem;
}

.tn-ai-lab-page .tn-lab-hero-metric__label {
    font-size: 0.56rem;
}

.tn-ai-lab-page .tn-lab-hero-metric__value {
    font-size: 0.86rem;
}

.tn-ai-lab-page .tn-lab-hero-metric__detail {
    font-size: 0.58rem;
}

.tn-ai-lab-page .tn-lab-command-strip__meta {
    margin-top: 0.36rem;
    justify-content: flex-start;
}

.tn-ai-lab-page .tn-lab-hero__subline {
    font-size: 0.68rem;
    text-transform: none;
    letter-spacing: 0.02em;
    color: #a7c4df;
}

.tn-ai-lab-page .tn-lab-grid-nav {
    display: none;
}

@keyframes tn-lab-flow-scan {
    0% { transform: translateX(-100%); opacity: 0; }
    14% { opacity: 0.9; }
    86% { opacity: 0.34; }
    100% { transform: translateX(260%); opacity: 0; }
}

@media (max-width: 1080px) {
    .tn-ai-lab-page .tn-lab-hero__console {
        display: none;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .tn-ai-lab-page .tn-page-hero.tn-lab-hero {
        padding-top: 16px;
        padding-bottom: 10px;
    }

    .tn-ai-lab-page .tn-page-hero__heading {
        font-size: clamp(1.48rem, 7vw, 1.9rem);
    }

    .tn-ai-lab-page .tn-lab-hero__context {
        display: none;
    }

    .tn-ai-lab-page .tn-page-hero__ctas {
        margin-top: 0.68rem;
    }

    .tn-ai-lab-page .tn-page-hero__cta {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-lab-command-strip__inner::before {
        animation: none !important;
    }
}

/* =============================================================
   PLAN 035: Visual Impact pass
   - stronger hero atmosphere
   - higher-signal Live Flow strip
   - richer guided response hierarchy
   ============================================================= */
.tn-ai-lab-page .tn-lab-hero__content {
    position: relative;
}

.tn-ai-lab-page .tn-lab-hero__content::before {
    content: "";
    position: absolute;
    right: -8%;
    top: -46%;
    width: clamp(180px, 32vw, 420px);
    height: clamp(180px, 32vw, 420px);
    border-radius: 999px;
    background:
        radial-gradient(circle, rgba(144, 186, 181, 0.28), rgba(144, 186, 181, 0) 66%);
    filter: blur(8px);
    pointer-events: none;
    animation: tn-lab-hero-aura 7.2s ease-in-out infinite;
}

.tn-ai-lab-page .tn-page-hero__badge {
    position: relative;
    overflow: hidden;
}

.tn-ai-lab-page .tn-page-hero__badge::after {
    content: "";
    position: absolute;
    top: 0;
    left: -110%;
    width: 70%;
    height: 100%;
    background: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.26),
        rgba(255, 255, 255, 0)
    );
    animation: tn-lab-badge-scan 5.8s ease-in-out infinite;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .tn-ai-lab-page .tn-page-hero__heading {
        background: linear-gradient(114deg, #f1f6ff 0%, #dbefff 44%, #d0fff8 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        text-shadow: 0 8px 26px rgba(10, 24, 41, 0.46);
    }
}

.tn-ai-lab-page .tn-page-hero__cta {
    position: relative;
    overflow: hidden;
}

.tn-ai-lab-page .tn-page-hero__cta--primary::after {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 78%;
    height: 100%;
    background: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.24),
        rgba(255, 255, 255, 0)
    );
    animation: tn-lab-cta-scan 3.9s linear infinite;
}

.tn-ai-lab-page .tn-page-hero__cta--primary {
    box-shadow:
        0 8px 20px rgba(57, 208, 195, 0.34),
        inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.tn-ai-lab-page .tn-lab-trust-line {
    position: relative;
    overflow: hidden;
}

.tn-ai-lab-page .tn-lab-trust-line::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, #90bab5 0%, #8c46ad 100%);
    box-shadow: 0 0 14px rgba(144, 186, 181, 0.4);
}

.tn-ai-lab-page .tn-lab-command-strip__inner {
    box-shadow:
        0 12px 30px rgba(6, 14, 24, 0.52),
        inset 0 0 0 1px rgba(157, 191, 225, 0.16);
}

.tn-ai-lab-page .tn-lab-command-strip__heading {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
}

.tn-ai-lab-page .tn-lab-command-strip__heading::before {
    content: "";
    width: 0.46rem;
    height: 0.46rem;
    border-radius: 999px;
    background: #90bab5;
    box-shadow: 0 0 0 6px rgba(144, 186, 181, 0.22);
    animation: tn-lab-flow-dot 1.9s ease-in-out infinite;
}

.tn-ai-lab-page .tn-lab-hero-metric {
    position: relative;
    overflow: hidden;
    transition:
        transform 0.28s ease,
        box-shadow 0.28s ease,
        border-color 0.28s ease;
    animation: tn-lab-metric-rise 0.5s ease both;
}

.tn-ai-lab-page .tn-lab-hero-metric:nth-child(2) { animation-delay: 0.04s; }
.tn-ai-lab-page .tn-lab-hero-metric:nth-child(3) { animation-delay: 0.08s; }
.tn-ai-lab-page .tn-lab-hero-metric:nth-child(4) { animation-delay: 0.12s; }

.tn-ai-lab-page .tn-lab-hero-metric::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #90bab5, #8c46ad);
    opacity: 0.64;
}

.tn-ai-lab-page .tn-lab-hero-metric:hover {
    transform: translateY(-2px);
    border-color: rgba(143, 201, 255, 0.92);
    box-shadow: 0 10px 20px rgba(5, 14, 24, 0.38);
}

.tn-ai-lab-page .tn-lab-hero-metric__value {
    text-shadow: 0 0 14px rgba(165, 205, 240, 0.34);
}

.tn-ai-lab-page .tn-lab-unified {
    box-shadow:
        0 18px 36px rgba(4, 10, 17, 0.46),
        inset 0 0 0 1px rgba(147, 184, 220, 0.12);
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea {
    background:
        linear-gradient(180deg, rgba(13, 24, 38, 0.96), rgba(8, 16, 27, 0.98));
    box-shadow: inset 0 1px 0 rgba(140, 181, 218, 0.2);
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea:focus {
    box-shadow:
        0 0 0 3px rgba(144, 186, 181, 0.24),
        0 10px 24px rgba(8, 18, 31, 0.42);
}

.tn-ai-lab-page .tn-lab-unified__layer {
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.tn-ai-lab-page .tn-lab-unified__layer--plain {
    border-color: rgba(144, 186, 181, 0.72);
    box-shadow: inset 0 0 0 1px rgba(144, 186, 181, 0.18);
}

.tn-ai-lab-page .tn-lab-unified__layer--steps {
    border-color: rgba(141, 201, 255, 0.7);
}

.tn-ai-lab-page .tn-lab-unified__layer--technical {
    border-color: rgba(170, 140, 214, 0.64);
}

.tn-ai-lab-page .tn-lab-unified__steps li {
    position: relative;
}

.tn-ai-lab-page .tn-lab-unified__steps li::after {
    content: "";
    position: absolute;
    left: 1.24rem;
    top: 0.2rem;
    bottom: 0.2rem;
    width: 1px;
    background: linear-gradient(180deg, rgba(140, 181, 218, 0.5), rgba(140, 181, 218, 0));
    pointer-events: none;
}

.tn-ai-lab-page .tn-lab-unified__steps li:last-child::after {
    display: none;
}

.tn-ai-lab-page .tn-lab-unified__proof-badge,
.tn-ai-lab-page .tn-lab-unified__followup-chip {
    box-shadow: inset 0 0 0 1px rgba(163, 194, 227, 0.14);
}

.tn-ai-lab-page .tn-lab-unified__result.is-attention .tn-lab-unified__layer {
    animation: tn-lab-layer-pop 0.5s ease both;
}

.tn-ai-lab-page .tn-lab-unified__result.is-attention .tn-lab-unified__layer:nth-child(2) {
    animation-delay: 0.05s;
}

.tn-ai-lab-page .tn-lab-unified__result.is-attention .tn-lab-unified__layer:nth-child(3) {
    animation-delay: 0.1s;
}

@keyframes tn-lab-hero-aura {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: 0.72; }
    50% { transform: translate3d(2%, -2%, 0) scale(1.06); opacity: 1; }
}

@keyframes tn-lab-badge-scan {
    0%, 74% { transform: translateX(0); opacity: 0; }
    84% { opacity: 0.75; }
    100% { transform: translateX(320%); opacity: 0; }
}

@keyframes tn-lab-cta-scan {
    0% { transform: translateX(0); opacity: 0; }
    8% { opacity: 0.8; }
    25% { opacity: 0.28; }
    40%, 100% { transform: translateX(310%); opacity: 0; }
}

@keyframes tn-lab-flow-dot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.18); opacity: 0.74; }
}

@keyframes tn-lab-metric-rise {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tn-lab-layer-pop {
    from {
        opacity: 0.78;
        transform: translateY(2px);
        box-shadow: 0 0 0 rgba(144, 186, 181, 0);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        box-shadow: 0 10px 18px rgba(10, 23, 38, 0.24);
    }
}

@media (max-width: 760px) {
    .tn-ai-lab-page .tn-lab-hero__content::before {
        right: -26%;
        top: -58%;
        width: 260px;
        height: 260px;
    }

    .tn-ai-lab-page .tn-page-hero__badge::after,
    .tn-ai-lab-page .tn-page-hero__cta--primary::after {
        display: none;
    }

    .tn-ai-lab-page .tn-lab-hero-metric:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-lab-hero__content::before,
    .tn-ai-lab-page .tn-page-hero__badge::after,
    .tn-ai-lab-page .tn-page-hero__cta--primary::after,
    .tn-ai-lab-page .tn-lab-command-strip__heading::before,
    .tn-ai-lab-page .tn-lab-hero-metric,
    .tn-ai-lab-page .tn-lab-unified__result.is-attention .tn-lab-unified__layer {
        animation: none !important;
    }
}

/* =============================================================
   PLAN 035: Premium SCADA Command Center visual profile
   - ultra-compact telemetry UI
   - futuristic control-system treatment
   - strict no-horizontal-scroll behavior
   ============================================================= */
.tn-ai-lab-page {
    --tn-scada-bg-0: #03070f;
    --tn-scada-bg-1: #061122;
    --tn-scada-bg-2: #0a1629;
    --tn-scada-cyan: #3be7cc;
    --tn-scada-cyan-soft: rgba(59, 231, 204, 0.26);
    --tn-scada-blue: #6dc1ff;
    --tn-scada-blue-soft: rgba(109, 193, 255, 0.24);
    --tn-scada-amber: #ffbe63;
    --tn-scada-text: #cde7ff;
    --tn-scada-muted: #85a7c7;
    --tn-scada-mono: "Consolas", "Monaco", "Courier New", monospace;
    --tn-lab-accent: var(--tn-scada-cyan);
    --tn-lab-signal: var(--tn-scada-blue);
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero {
    padding: clamp(14px, 2.2vw, 26px) 18px clamp(8px, 1.2vw, 14px);
    border-bottom: 1px solid rgba(109, 193, 255, 0.22);
    background:
        radial-gradient(circle at 88% 10%, rgba(59, 231, 204, 0.14), transparent 38%),
        linear-gradient(180deg, rgba(8, 20, 35, 0.74), rgba(8, 20, 35, 0) 34%),
        linear-gradient(160deg, var(--tn-scada-bg-0), var(--tn-scada-bg-1) 48%, var(--tn-scada-bg-2));
}

.tn-ai-lab-page .tn-page-hero.tn-lab-hero::before {
    opacity: 0.18;
    background:
        repeating-linear-gradient(0deg, transparent 0 18px, rgba(120, 163, 207, 0.22) 18px 19px),
        repeating-linear-gradient(90deg, transparent 0 18px, rgba(120, 163, 207, 0.2) 18px 19px);
}

.tn-ai-lab-page .tn-page-hero__badge {
    border-color: rgba(109, 193, 255, 0.44);
    background: rgba(5, 13, 24, 0.82);
    color: #b8dcff;
    font-family: var(--tn-scada-mono);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.26rem 0.5rem;
}

.tn-ai-lab-page .tn-page-hero__heading {
    margin-top: 0.34rem;
    font-family: var(--tn-scada-mono);
    font-size: clamp(1.26rem, 2.2vw, 1.78rem);
    line-height: 1.05;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-page-hero__text {
    margin-top: 0.42rem;
    max-width: 760px;
    color: var(--tn-scada-muted);
    font-size: 0.72rem;
    line-height: 1.35;
    font-family: var(--tn-scada-mono);
}

.tn-ai-lab-page .tn-lab-hero__context {
    margin-top: 0.24rem;
    color: #6f95b9;
    font-size: 0.64rem;
    line-height: 1.3;
    font-family: var(--tn-scada-mono);
}

.tn-ai-lab-page .tn-page-hero__ctas {
    margin-top: 0.58rem;
    gap: 0.38rem;
}

.tn-ai-lab-page .tn-page-hero__cta {
    min-height: 34px;
    border-radius: 7px;
    font-family: var(--tn-scada-mono);
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.34rem 0.58rem;
}

.tn-ai-lab-page .tn-page-hero__cta--primary {
    background: linear-gradient(120deg, #1e9c8e, #2669a4);
    border-color: #32c9b3;
}

.tn-ai-lab-page .tn-page-hero__cta--outline {
    border-color: rgba(109, 193, 255, 0.58);
    background: rgba(6, 17, 30, 0.72);
}

.tn-ai-lab-page .tn-lab-trust-line {
    margin-top: 0.38rem;
    border-radius: 7px;
    border-color: rgba(109, 193, 255, 0.56);
    background: rgba(4, 13, 23, 0.88);
    color: #9dc8f3;
    font-family: var(--tn-scada-mono);
    font-size: 0.58rem;
    line-height: 1.24;
    letter-spacing: 0.03em;
    padding: 0.28rem 0.44rem 0.28rem 0.58rem;
}

.tn-ai-lab-page .tn-lab-pro-header__inner,
.tn-ai-lab-page .tn-lab-command-strip__inner,
.tn-ai-lab-page .tn-services-tech__inner {
    border-radius: 10px;
    overflow-x: clip;
}

.tn-ai-lab-page .tn-lab-pro-header__inner {
    padding: 0.46rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-pro-header__title {
    font-family: var(--tn-scada-mono);
    font-size: 0.58rem;
    letter-spacing: 0.12em;
}

.tn-ai-lab-page .tn-lab-pro-header__nav {
    gap: 0.32rem;
}

.tn-ai-lab-page .tn-lab-pro-header__nav a {
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    letter-spacing: 0.09em;
    padding: 0.22rem 0.44rem;
}

.tn-ai-lab-page .tn-lab-command-strip__inner {
    padding: 0.34rem 0.42rem 0.4rem;
    border-color: rgba(109, 193, 255, 0.58);
    background:
        radial-gradient(circle at 8% 0%, rgba(59, 231, 204, 0.14), transparent 26%),
        linear-gradient(180deg, rgba(8, 20, 34, 0.96), rgba(4, 12, 22, 0.99));
    box-shadow:
        0 8px 20px rgba(4, 11, 19, 0.54),
        inset 0 0 0 1px rgba(126, 176, 224, 0.16);
}

.tn-ai-lab-page .tn-lab-command-strip__heading {
    margin-bottom: 0.24rem;
    color: #bde2ff;
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    letter-spacing: 0.14em;
}

.tn-ai-lab-page .tn-lab-command-strip__heading::before {
    width: 0.34rem;
    height: 0.34rem;
    box-shadow: 0 0 0 5px rgba(59, 231, 204, 0.18);
}

.tn-ai-lab-page .tn-lab-hero__metrics {
    gap: 0.28rem;
    padding: 0.3rem;
    border-radius: 8px;
    border-color: rgba(109, 193, 255, 0.46);
    background: rgba(7, 16, 29, 0.86);
}

.tn-ai-lab-page .tn-lab-hero-metric {
    border-radius: 7px;
    border-color: rgba(109, 193, 255, 0.48);
    padding: 0.28rem 0.32rem;
    background: linear-gradient(180deg, rgba(11, 23, 38, 0.95), rgba(7, 16, 28, 0.98));
}

.tn-ai-lab-page .tn-lab-hero-metric__label {
    color: #8ab6de;
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    letter-spacing: 0.1em;
    line-height: 1.1;
}

.tn-ai-lab-page .tn-lab-hero-metric__value {
    color: #e2f1ff;
    font-family: var(--tn-scada-mono);
    font-size: 0.72rem;
    line-height: 1.12;
}

.tn-ai-lab-page .tn-lab-hero-metric__detail {
    color: #7298bc;
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    line-height: 1.18;
}

.tn-ai-lab-page .tn-lab-hero__subline {
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    color: #86aacb;
}

.tn-ai-lab-page .tn-services-tech {
    padding: 6px 16px 8px;
}

.tn-ai-lab-page .tn-services-tech__inner {
    max-width: min(1240px, calc(100% - 1rem));
    padding: 0.68rem 0.74rem;
    border-color: rgba(109, 193, 255, 0.38);
    background:
        linear-gradient(180deg, rgba(10, 22, 37, 0.92), rgba(7, 16, 27, 0.98));
    box-shadow:
        0 10px 24px rgba(4, 9, 16, 0.46),
        inset 0 0 0 1px rgba(123, 170, 214, 0.08);
}

.tn-ai-lab-page .tn-services-tech__inner::before {
    opacity: 0.12;
    background:
        repeating-linear-gradient(0deg, transparent 0 20px, rgba(109, 193, 255, 0.28) 20px 21px),
        repeating-linear-gradient(90deg, transparent 0 20px, rgba(109, 193, 255, 0.24) 20px 21px);
}

.tn-ai-lab-page .tn-services__section-heading {
    font-family: var(--tn-scada-mono);
    font-size: clamp(1.1rem, 2vw, 1.44rem);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tn-scada-text);
}

.tn-ai-lab-page .tn-services__section-heading::after {
    width: 54px;
    height: 2px;
    margin-top: 0.42rem;
    background: linear-gradient(90deg, var(--tn-scada-cyan), var(--tn-scada-blue));
    opacity: 0.78;
}

.tn-ai-lab-page .tn-services-tech__narrative {
    margin-top: 0.38rem;
    color: var(--tn-scada-muted);
    font-family: var(--tn-scada-mono);
    font-size: 0.62rem;
    line-height: 1.28;
    max-width: 100%;
}

.tn-ai-lab-page .tn-lab-unified {
    margin-top: 0.5rem;
    border-radius: 8px;
    border-color: rgba(109, 193, 255, 0.48);
    background: linear-gradient(180deg, rgba(9, 20, 34, 0.96), rgba(5, 13, 23, 0.99));
    box-shadow: 0 12px 28px rgba(4, 9, 16, 0.5);
    padding: 0.54rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-label {
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    letter-spacing: 0.1em;
    color: #8cb5dc;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-textarea {
    min-height: 78px;
    border-radius: 7px;
    border-color: rgba(109, 193, 255, 0.48);
    background: linear-gradient(180deg, rgba(8, 17, 30, 0.97), rgba(5, 12, 22, 0.99));
    color: #def0ff;
    font-family: var(--tn-scada-mono);
    font-size: 0.61rem;
    line-height: 1.24;
    padding: 0.46rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-unified__input-hint {
    font-family: var(--tn-scada-mono);
    font-size: 0.5rem;
    color: #6f95b7;
    margin-top: 0.18rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-actions {
    gap: 0.28rem;
}

.tn-ai-lab-page .tn-lab-unified .tn-ai-btn,
.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn {
    min-height: 30px;
    border-radius: 6px;
    padding: 0.24rem 0.42rem;
    font-family: var(--tn-scada-mono);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.tn-ai-lab-page .tn-ai-status {
    margin-top: 0.4rem;
    font-family: var(--tn-scada-mono);
    font-size: 0.56rem;
    letter-spacing: 0.04em;
}

.tn-ai-lab-page .tn-lab-unified__result {
    margin-top: 0.42rem;
    border-radius: 7px;
    border-color: rgba(109, 193, 255, 0.46);
    background: rgba(6, 14, 24, 0.9);
    padding: 0.38rem;
}

.tn-ai-lab-page .tn-lab-unified__layers {
    gap: 0.32rem;
}

.tn-ai-lab-page .tn-lab-unified__layer {
    border-radius: 7px;
    padding: 0.32rem 0.34rem;
}

.tn-ai-lab-page .tn-lab-unified__layer-title {
    font-family: var(--tn-scada-mono);
    font-size: 0.5rem;
    letter-spacing: 0.1em;
}

.tn-ai-lab-page .tn-lab-unified__summary,
.tn-ai-lab-page .tn-lab-unified__technical-note,
.tn-ai-lab-page .tn-lab-unified__sources-empty,
.tn-ai-lab-page .tn-lab-unified__target,
.tn-ai-lab-page .tn-lab-unified__fallback {
    font-family: var(--tn-scada-mono);
    font-size: 0.56rem;
    line-height: 1.25;
}

.tn-ai-lab-page .tn-lab-unified__proof {
    margin-top: 0.28rem;
    border-radius: 7px;
    padding: 0.26rem 0.3rem;
}

.tn-ai-lab-page .tn-lab-unified__proof-title,
.tn-ai-lab-page .tn-lab-unified__followups-title,
.tn-ai-lab-page .tn-lab-unified__sources-title,
.tn-ai-lab-page .tn-lab-unified__trace-title {
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    letter-spacing: 0.09em;
}

.tn-ai-lab-page .tn-lab-unified__proof-badge,
.tn-ai-lab-page .tn-lab-unified__followup-chip {
    border-radius: 999px;
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    line-height: 1.12;
    padding: 0.14rem 0.28rem;
}

.tn-ai-lab-page .tn-lab-unified__steps {
    margin-top: 0.24rem;
    gap: 0.14rem;
}

.tn-ai-lab-page .tn-lab-unified__steps li {
    grid-template-columns: 0.86rem minmax(0, 1fr);
    gap: 0.22rem;
}

.tn-ai-lab-page .tn-lab-unified__steps li::before {
    font-size: 0.52rem;
    line-height: 1.18;
}

.tn-ai-lab-page .tn-lab-unified__steps li > .tn-lab-unified__step-text {
    font-family: var(--tn-scada-mono);
    font-size: 0.56rem;
    line-height: 1.25;
}

.tn-ai-lab-page .tn-lab-unified__next-actions {
    margin-top: 0.32rem;
    gap: 0.24rem;
}

.tn-ai-lab-page .tn-lab-unified__technical-toggle {
    border-radius: 7px;
    padding: 0.28rem 0.34rem;
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    letter-spacing: 0.09em;
}

.tn-ai-lab-page .tn-lab-unified__technical-panel {
    margin-top: 0.28rem;
    gap: 0.24rem;
}

.tn-ai-lab-page .tn-lab-unified__meta {
    gap: 0.28rem;
}

.tn-ai-lab-page .tn-lab-unified__meta span {
    font-family: var(--tn-scada-mono);
    font-size: 0.46rem;
    line-height: 1.2;
}

.tn-ai-lab-page .tn-lab-unified__meta strong,
.tn-ai-lab-page .tn-lab-unified__sources-list,
.tn-ai-lab-page .tn-lab-unified__trace-node-label,
.tn-ai-lab-page .tn-lab-unified__trace-node-time,
.tn-ai-lab-page .tn-lab-unified__trace-log li {
    font-family: var(--tn-scada-mono);
    font-size: 0.5rem;
    line-height: 1.18;
}

.tn-ai-lab-page .tn-lab-unified__trace-node {
    border-radius: 6px;
    padding: 0.2rem 0.24rem;
}

.tn-ai-lab-page .tn-lab-unified__trace-log li {
    border-radius: 6px;
    padding: 0.2rem 0.24rem;
}

.tn-ai-lab-page .tn-lab-unified__route-target {
    border-radius: 6px;
    margin-top: 0.34rem;
    padding: 0.2rem 0.3rem;
    font-family: var(--tn-scada-mono);
    font-size: 0.5rem;
    line-height: 1.18;
}

.tn-ai-lab-page .tn-lab-unified__continuity {
    margin-top: 0.38rem;
    padding-top: 0.34rem;
}

.tn-ai-lab-page .tn-lab-unified__continuity-actions .tn-ai-btn {
    min-height: 28px;
    font-size: 0.48rem;
    padding: 0.2rem 0.32rem;
}

.tn-ai-lab-page .tn-lab-unified__continuity-status {
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    margin-top: 0.24rem;
}

/* Strict zero-horizontal-scroll hardening */
.tn-ai-lab-page,
.tn-ai-lab-page .site-content,
.tn-ai-lab-page #primary,
.tn-ai-lab-page .entry-content,
.tn-ai-lab-page .tn-page-hero.tn-lab-hero,
.tn-ai-lab-page .tn-lab-pro-header,
.tn-ai-lab-page .tn-lab-command-strip,
.tn-ai-lab-page .tn-services-tech,
.tn-ai-lab-page .tn-services-tech__inner,
.tn-ai-lab-page .tn-lab-unified,
.tn-ai-lab-page .tn-lab-viz,
.tn-ai-lab-page .tn-lab-viz__nodes,
.tn-ai-lab-page .tn-lab-viz-sticky__nodes,
.tn-ai-lab-page .tn-lab-unified__trace-pipeline,
.tn-ai-lab-page .tn-lab-hero__metrics {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
}

.tn-ai-lab-page .tn-lab-viz__nodes {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-columns: minmax(0, 1fr);
    overflow: visible;
}

.tn-ai-lab-page .tn-lab-viz__node {
    width: auto;
    min-width: 0;
}

.tn-ai-lab-page .tn-lab-viz-sticky__nodes {
    grid-auto-columns: minmax(0, 1fr);
}

.tn-ai-lab-page .tn-lab-unified__trace-pipeline {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

@media (max-width: 1180px) {
    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        grid-auto-columns: minmax(0, 1fr) !important;
    }

    .tn-ai-lab-page .tn-lab-viz__node {
        width: auto !important;
    }
}

@media (max-width: 760px) {
    .tn-ai-lab-page .tn-page-hero.tn-lab-hero {
        padding: 12px 12px 8px;
    }

    .tn-ai-lab-page .tn-services-tech {
        padding: 6px 10px 8px;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tn-ai-lab-page .tn-lab-unified__trace-pipeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .tn-ai-lab-page .tn-page-hero__cta {
        width: 100%;
        justify-content: center;
    }

    .tn-ai-lab-page .tn-lab-hero__metrics {
        grid-template-columns: 1fr;
    }

    .tn-ai-lab-page .tn-lab-viz__nodes {
        grid-template-columns: 1fr !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tn-ai-lab-page .tn-page-hero__badge::after,
    .tn-ai-lab-page .tn-lab-command-strip__heading::before,
    .tn-ai-lab-page .tn-lab-command-strip__inner::before {
        animation: none !important;
    }
}

/* =============================================================
   PLAN 035: SCADA theme calibration profiles
   - mission (default)
   - industrial (amber/graphite)
   ============================================================= */
.tn-ai-lab-page.tn-lab-theme-mission {
    --tn-scada-bg-0: #03070f;
    --tn-scada-bg-1: #061122;
    --tn-scada-bg-2: #0a1629;
    --tn-scada-cyan: #3be7cc;
    --tn-scada-cyan-soft: rgba(59, 231, 204, 0.26);
    --tn-scada-blue: #6dc1ff;
    --tn-scada-blue-soft: rgba(109, 193, 255, 0.24);
    --tn-scada-amber: #ffbe63;
    --tn-scada-text: #cde7ff;
    --tn-scada-muted: #85a7c7;
}

.tn-ai-lab-page.tn-lab-theme-industrial {
    --tn-scada-bg-0: #080a0d;
    --tn-scada-bg-1: #12161d;
    --tn-scada-bg-2: #1b212a;
    --tn-scada-cyan: #8fd3ff;
    --tn-scada-cyan-soft: rgba(143, 211, 255, 0.2);
    --tn-scada-blue: #ffbe63;
    --tn-scada-blue-soft: rgba(255, 190, 99, 0.25);
    --tn-scada-amber: #ffbe63;
    --tn-scada-text: #f0e2cb;
    --tn-scada-muted: #bea788;
}

.tn-ai-lab-page .tn-lab-pro-header__inner {
    grid-template-columns: auto 1fr auto;
    gap: 0.4rem 0.5rem;
}

.tn-ai-lab-page .tn-lab-theme-switch {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    align-self: center;
    gap: 0.08rem;
    border: 1px solid rgba(109, 193, 255, 0.46);
    border-radius: 999px;
    background: rgba(6, 15, 26, 0.74);
    padding: 0.08rem;
    min-width: 0;
}

.tn-ai-lab-page .tn-lab-theme-switch__btn {
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: #9ec2e5;
    cursor: pointer;
    font-family: var(--tn-scada-mono);
    font-size: 0.48rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    width: 18px;
    min-width: 18px;
    height: 18px;
    min-height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.tn-ai-lab-page .tn-lab-theme-switch__btn:hover,
.tn-ai-lab-page .tn-lab-theme-switch__btn:focus-visible {
    border-color: rgba(109, 193, 255, 0.56);
    color: #d7eaff;
    outline: none;
}

.tn-ai-lab-page .tn-lab-theme-switch__btn.is-active,
.tn-ai-lab-page .tn-lab-theme-switch__btn[aria-pressed="true"] {
    border-color: rgba(59, 231, 204, 0.56);
    background: rgba(59, 231, 204, 0.16);
    color: #dffdf7;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch {
    border-color: rgba(255, 190, 99, 0.52);
    background: rgba(20, 19, 16, 0.78);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn {
    color: #d8c0a1;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn:hover,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn:focus-visible {
    border-color: rgba(255, 190, 99, 0.66);
    color: #ffe7c4;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn.is-active,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn[aria-pressed="true"] {
    border-color: rgba(255, 190, 99, 0.72);
    background: rgba(255, 190, 99, 0.16);
    color: #fff0d8;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero.tn-lab-hero {
    border-bottom-color: rgba(255, 190, 99, 0.24);
    background:
        radial-gradient(circle at 88% 10%, rgba(255, 190, 99, 0.13), transparent 40%),
        linear-gradient(180deg, rgba(30, 28, 22, 0.78), rgba(30, 28, 22, 0) 34%),
        linear-gradient(160deg, #090909, #151616 48%, #1d1f22);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__badge {
    border-color: rgba(255, 190, 99, 0.5);
    background: rgba(26, 19, 11, 0.82);
    color: #f8d9ad;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__heading {
        background: linear-gradient(108deg, #f8e6cc 0%, #ffd08a 44%, #ffe8bf 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__text {
    color: #c5ad8a;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero__context {
    color: #b99f79;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__cta--primary {
    background: linear-gradient(120deg, #8b6a3f, #d39442);
    border-color: #ffc778;
    color: #161310;
    box-shadow:
        0 8px 20px rgba(255, 190, 99, 0.28),
        inset 0 0 0 1px rgba(255, 240, 219, 0.2);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__cta--outline {
    border-color: rgba(255, 190, 99, 0.62);
    background: rgba(30, 23, 14, 0.72);
    color: #f0d8b4;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-trust-line {
    border-color: rgba(255, 190, 99, 0.6);
    background: rgba(24, 19, 12, 0.9);
    color: #e8cdab;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-command-strip__inner {
    border-color: rgba(255, 190, 99, 0.58);
    background:
        radial-gradient(circle at 8% 0%, rgba(255, 190, 99, 0.13), transparent 26%),
        linear-gradient(180deg, rgba(23, 18, 12, 0.96), rgba(13, 11, 9, 0.99));
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-command-strip__heading {
    color: #f6deb8;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-command-strip__heading::before {
    background: #ffbe63;
    box-shadow: 0 0 0 5px rgba(255, 190, 99, 0.18);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero__metrics {
    border-color: rgba(255, 190, 99, 0.44);
    background: rgba(20, 17, 12, 0.86);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero-metric {
    border-color: rgba(255, 190, 99, 0.42);
    background: linear-gradient(180deg, rgba(27, 22, 15, 0.95), rgba(17, 14, 11, 0.98));
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero-metric__label {
    color: #d6b890;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero-metric__value {
    color: #f7e5ca;
    text-shadow: 0 0 14px rgba(255, 190, 99, 0.28);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero-metric__detail {
    color: #b99972;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-hero__subline {
    color: #d4b992;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-live-dot {
    background: var(--tn-scada-amber);
    box-shadow: 0 0 0 6px rgba(255, 190, 99, 0.2);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-tech__inner {
    border-color: rgba(255, 190, 99, 0.36);
    background:
        linear-gradient(180deg, rgba(20, 17, 13, 0.94), rgba(13, 11, 9, 0.99));
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-tech__inner::before {
    background:
        repeating-linear-gradient(0deg, transparent 0 20px, rgba(255, 190, 99, 0.24) 20px 21px),
        repeating-linear-gradient(90deg, transparent 0 20px, rgba(255, 190, 99, 0.2) 20px 21px);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-services__section-heading {
    color: #f1dfc4;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-services__section-heading::after {
    background: linear-gradient(90deg, #ffbe63, #e09e4c);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-tech__narrative {
    color: #c1a988;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified {
    border-color: rgba(255, 190, 99, 0.44);
    background: linear-gradient(180deg, rgba(20, 17, 13, 0.96), rgba(12, 10, 8, 0.99));
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified .tn-ai-label {
    color: #d8b68b;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified .tn-ai-textarea {
    border-color: rgba(255, 190, 99, 0.44);
    background: linear-gradient(180deg, rgba(18, 15, 12, 0.97), rgba(11, 9, 8, 0.99));
    color: #f3e0c2;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__input-hint,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-ai-status {
    color: #b99972;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__result {
    border-color: rgba(255, 190, 99, 0.42);
    background: rgba(16, 13, 10, 0.9);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__layer--plain {
    border-color: rgba(255, 190, 99, 0.56);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__layer--steps {
    border-color: rgba(224, 158, 76, 0.52);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__layer--technical {
    border-color: rgba(197, 147, 86, 0.5);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__proof-badge,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__followup-chip,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__technical-toggle,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__route-target {
    border-color: rgba(255, 190, 99, 0.48);
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__summary,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__technical-note,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__target,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__sources-empty,
.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__steps li > .tn-lab-unified__step-text {
    color: #d7c2a1;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__fallback {
    color: #ffd08d;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-ai-btn {
    border-color: #ffbe63;
    background: linear-gradient(120deg, #8b6a3f, #d39442);
    color: #18120b;
}

.tn-ai-lab-page.tn-lab-theme-industrial .tn-ai-btn--ghost {
    border-color: rgba(255, 190, 99, 0.58);
    background: rgba(255, 190, 99, 0.12);
    color: #f6deb8;
}

@media (max-width: 980px) {
    .tn-ai-lab-page .tn-lab-pro-header__inner {
        grid-template-columns: auto 1fr auto;
    }

    .tn-ai-lab-page .tn-lab-theme-switch {
        grid-column: auto;
        justify-self: end;
    }
}

/* =============================================================
   PLAN 035: SCADA shell v2
   - compact guided masthead (not a marketing hero)
   - deep-dive commentary behind info control
   - wider desktop shell utilization
   ============================================================= */
.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__inner {
    max-width: min(1720px, calc(100% - 0.5rem));
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-services-tech {
    padding-left: 8px;
    padding-right: 8px;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
    max-width: min(1720px, calc(100% - 0.5rem));
    padding: 0.46rem 0.54rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero.tn-lab-hero {
    padding: 8px 10px 6px;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__content {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "badge badge"
        "heading controls"
        "trust controls";
    gap: 0.24rem 0.6rem;
    align-items: center;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__badge {
    grid-area: badge;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__heading {
    grid-area: heading;
    margin: 0;
    font-size: clamp(0.98rem, 1.35vw, 1.26rem);
    line-height: 1.06;
    letter-spacing: 0.045em;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__text,
.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__context {
    display: none;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__ctas {
    grid-area: controls;
    margin: 0;
    justify-content: flex-end;
    gap: 0.28rem;
    align-items: center;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__cta {
    min-height: 28px;
    padding: 0.2rem 0.44rem;
    font-size: 0.5rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-trust-line {
    grid-area: trust;
    margin: 0;
    font-size: 0.5rem;
    padding: 0.17rem 0.34rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__info {
    position: relative;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__info summary {
    list-style: none;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(109, 193, 255, 0.56);
    border-radius: 999px;
    background: rgba(6, 17, 30, 0.78);
    color: #cfe6ff;
    font-family: var(--tn-scada-mono);
    font-size: 0.6rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__info summary::-webkit-details-marker {
    display: none;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__info-pop {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    width: min(360px, calc(100vw - 28px));
    border: 1px solid rgba(109, 193, 255, 0.54);
    border-radius: 8px;
    background: rgba(7, 17, 30, 0.96);
    color: #b8d4ef;
    font-family: var(--tn-scada-mono);
    font-size: 0.52rem;
    line-height: 1.32;
    letter-spacing: 0.02em;
    padding: 0.36rem 0.42rem;
    z-index: 12;
    box-shadow: 0 12px 24px rgba(3, 9, 16, 0.5);
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services__section-heading {
    font-size: clamp(1rem, 1.52vw, 1.34rem);
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__narrative {
    margin-top: 0.2rem;
    font-size: 0.54rem;
    line-height: 1.24;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified {
    margin-top: 0.26rem;
}

@media (max-width: 1080px) {
    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__content {
        grid-template-columns: 1fr;
        grid-template-areas:
            "badge"
            "heading"
            "controls"
            "trust";
        gap: 0.26rem;
        align-items: start;
    }

    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__ctas {
        justify-content: flex-start;
    }

    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__info-pop {
        left: 0;
        right: auto;
    }
}

/* =============================================================
   PLAN 035: Guided viewport compaction patch
   - reduce first-view vertical drag
   - keep Unified Assistant above the fold where possible
   - suppress heavy global footer on AI Lab
   ============================================================= */
.tn-ai-lab-page footer.tn-footer {
    display: none !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero.tn-lab-hero {
    padding: clamp(10px, 1.6vw, 18px) 14px clamp(6px, 1.1vw, 10px);
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__inner {
    max-width: min(1160px, calc(100% - 1rem));
    grid-template-columns: minmax(0, 1fr);
    gap: 0.32rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__console {
    display: none;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__heading {
    margin-top: 0.24rem;
    font-size: clamp(1.14rem, 1.95vw, 1.56rem);
    line-height: 1.08;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__text {
    margin-top: 0.3rem;
    max-width: 760px;
    font-size: 0.66rem;
    line-height: 1.32;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__context {
    margin-top: 0.22rem;
    font-size: 0.58rem;
    line-height: 1.28;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__ctas {
    margin-top: 0.46rem;
    gap: 0.34rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__cta {
    min-height: 30px;
    padding: 0.28rem 0.52rem;
    font-size: 0.52rem;
    letter-spacing: 0.08em;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-trust-line {
    margin-top: 0.3rem;
    max-width: 100%;
    font-size: 0.52rem;
    line-height: 1.24;
    padding: 0.2rem 0.38rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-services-tech {
    padding: 4px 12px 6px;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
    max-width: min(1160px, calc(100% - 1rem));
    padding: 0.5rem 0.56rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-section-head__kicker {
    display: none;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services__section-heading {
    font-size: clamp(1.12rem, 1.96vw, 1.5rem);
    line-height: 1.04;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services__section-heading::after {
    margin-top: 0.22rem;
    width: 40px;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__narrative {
    margin-top: 0.24rem;
    font-size: 0.58rem;
    line-height: 1.28;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified {
    margin-top: 0.32rem;
    padding: 0.38rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified .tn-ai-label {
    font-size: 0.48rem;
    letter-spacing: 0.08em;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified .tn-ai-textarea {
    min-height: 64px;
    padding: 0.34rem 0.42rem;
    font-size: 0.56rem;
    line-height: 1.24;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__input-hint {
    margin-top: 0.14rem;
    font-size: 0.46rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified .tn-ai-actions {
    gap: 0.24rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified .tn-ai-btn,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__next-actions .tn-ai-btn {
    min-height: 26px;
    padding: 0.18rem 0.34rem;
    font-size: 0.46rem;
    letter-spacing: 0.08em;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-ai-status {
    margin-top: 0.24rem;
    font-size: 0.5rem;
    line-height: 1.2;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__result {
    margin-top: 0.3rem;
    padding: 0.26rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__layers {
    gap: 0.24rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__layer {
    padding: 0.24rem 0.26rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__layer-title {
    font-size: 0.44rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__target,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__fallback {
    font-size: 0.52rem;
    line-height: 1.22;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__proof {
    margin-top: 0.2rem;
    padding: 0.2rem 0.22rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__proof-title,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__followups-title,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__sources-title,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__trace-title,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__meta span {
    font-size: 0.44rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__proof-badge,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__followup-chip {
    font-size: 0.46rem;
    padding: 0.12rem 0.24rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__steps {
    gap: 0.16rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__steps li {
    padding-left: 1rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__technical-toggle {
    min-height: 24px;
    font-size: 0.45rem;
    padding: 0.12rem 0.26rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__continuity {
    margin-top: 0.24rem;
    padding-top: 0.2rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__continuity-actions .tn-ai-btn {
    min-height: 24px;
    font-size: 0.44rem;
    padding: 0.14rem 0.26rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__continuity-status {
    margin-top: 0.14rem;
    font-size: 0.44rem;
}

@media (max-width: 980px) {
    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero.tn-lab-hero {
        padding: 10px 10px 8px;
    }

    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-services-tech {
        padding: 4px 8px 6px;
    }
}

/* =============================================================
   PLAN 035: SCADA corrective overrides
   - use available desktop width
   - remove white viewport floor
   - prevent horizontal overflow after guided responses
   - keep Guided shell command-center, not chat-like
   ============================================================= */
body.tn-ai-lab-page,
body.tn-ai-lab-page #page,
body.tn-ai-lab-page .site,
body.tn-ai-lab-page .site-content {
    background:
        radial-gradient(circle at 88% 5%, rgba(67, 132, 210, 0.16), transparent 32%),
        radial-gradient(circle at 8% 26%, rgba(57, 208, 195, 0.12), transparent 34%),
        linear-gradient(180deg, #070f1a 0%, #09111d 34%, #060b14 100%) !important;
}

body.tn-ai-lab-page {
    min-height: 100vh;
    overflow-x: hidden !important;
}

body.tn-ai-lab-page .site-content {
    min-height: calc(100vh - 64px);
    padding-bottom: 10px;
}

body.tn-ai-lab-page #primary,
body.tn-ai-lab-page .entry-content,
body.tn-ai-lab-page main,
body.tn-ai-lab-page .container,
body.tn-ai-lab-page .tn-services-tech,
body.tn-ai-lab-page .tn-services-tech__inner {
    overflow-x: hidden !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-services-tech {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__inner,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero.tn-lab-hero {
    padding: 6px 8px 5px !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-hero__content {
    max-width: none !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.22rem 0.46rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__heading,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-lab-hero__context {
    display: none !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__ctas {
    margin: 0 0 0 auto !important;
    gap: 0.24rem;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__cta {
    min-height: 28px !important;
    padding: 0.18rem 0.42rem !important;
    font-size: 0.5rem !important;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) .tn-lab-trust-line {
    margin: 0 !important;
    flex: 1 1 100%;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #tn-lab-unified-input {
    min-height: 96px !important;
    max-height: 180px;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__result,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__result * {
    min-width: 0;
}

.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__summary,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__technical-note,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__target,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__fallback,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__route-target,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__sources-list a,
.tn-ai-lab-page:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__trace-log li {
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 1080px) {
    .tn-ai-lab-page:not(.tn-lab-view-pro) .tn-page-hero__ctas {
        margin-left: 0 !important;
    }
}

/* =============================================================
   PLAN 092: PATCH B (readability + surface consistency)
   - remove white tool surfaces in guided shell
   - keep tooltip overlay from changing document dimensions
   - raise minimum text size for SCADA readability
   ============================================================= */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified__tool-surface {
    display: none !important;
}

body.tn-ai-lab-page .tn-ai-tool,
body.tn-ai-lab-page .tn-ai-tool__header,
body.tn-ai-lab-page .tn-ai-tool__mount,
body.tn-ai-lab-page .tn-ai-tool__desc,
body.tn-ai-lab-page .tn-ai-tool__noscript,
body.tn-ai-lab-page .tn-ai-form,
body.tn-ai-lab-page .tn-ai-tool textarea,
body.tn-ai-lab-page .tn-ai-tool input,
body.tn-ai-lab-page .tn-ai-tool select,
body.tn-ai-lab-page .tn-ai-tool .tn-ai-empty {
    background-color: transparent !important;
    color: #d3e9ff !important;
    border-color: rgba(68, 111, 153, 0.72) !important;
}

body.tn-ai-lab-page .tn-ai-tool {
    background: linear-gradient(180deg, rgba(10, 20, 34, 0.95), rgba(8, 16, 28, 0.98)) !important;
    box-shadow: 0 14px 28px rgba(3, 10, 18, 0.48) !important;
}

body.tn-ai-lab-page .tn-ai-tool__title {
    color: #eaf4ff !important;
}

body.tn-ai-lab-page .tn-ai-tool__desc {
    color: #9bc0e5 !important;
}

body.tn-ai-lab-page .tn-ai-tool .tn-ai-textarea,
body.tn-ai-lab-page .tn-ai-tool .tn-ai-input {
    background: rgba(7, 16, 28, 0.92) !important;
    color: #d8ecff !important;
}

body.tn-ai-lab-page .tn-lab-tooltip {
    position: fixed !important;
    z-index: 10001 !important;
    max-width: min(36ch, calc(100vw - 16px));
    pointer-events: none;
    will-change: transform, top, left;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-page-hero__cta,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-footprint-toggle,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-trust-line,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-command-strip__heading,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-command-strip__meta,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero-metric__label,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero-metric__detail,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-section-rail__label,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-section-rail__list a,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-section-rail__list a span,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-ai-label,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__layer-title,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__proof-title,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__followups-title,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__sources-title,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__trace-title,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__meta span,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-ai-status,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__input-hint {
    font-size: clamp(0.82rem, 0.72rem + 0.28vw, 1.02rem) !important;
    line-height: 1.32 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__target,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__fallback,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__steps li,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__sources-list a,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-unified__trace-log li,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-ai-tool,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-ai-tool__desc {
    font-size: clamp(0.92rem, 0.82rem + 0.24vw, 1.12rem) !important;
    line-height: 1.45 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-page-hero__cta {
    min-height: 34px !important;
    padding: 0.28rem 0.6rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-trust-line,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__cta,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-command-strip__heading,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-command-strip__meta,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-section-rail__label,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-section-rail__list a,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-section-rail__list a span,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-unified__layer-title,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-unified__steps li,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-ai-status {
    font-size: clamp(0.86rem, 0.78rem + 0.32vw, 1.04rem) !important;
    line-height: 1.38 !important;
}

/* =============================================================
   PLAN 092: VIEWPORT CONTRACT ENFORCEMENT
   - Desktop SCADA hard gate: no page scroll, no x-overflow
   - Ultra-wide: use additional panels, not stretched single columns
   - Mobile/tablet: single primary scroll region
   ============================================================= */
html.tn-lab-scada-desktop,
html.tn-lab-scada-mobile {
    background: #060d16 !important;
}

html.tn-lab-scada-desktop.tn-lab-view-pro {
    height: 100% !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page,
body.tn-ai-lab-page #page,
body.tn-ai-lab-page .site,
body.tn-ai-lab-page .site-content {
    background-color: #060d16 !important;
    background:
        radial-gradient(circle at 86% 6%, rgba(63, 129, 207, 0.16), transparent 32%),
        radial-gradient(circle at 10% 28%, rgba(57, 208, 195, 0.12), transparent 34%),
        linear-gradient(180deg, #060d16 0%, #08111d 45%, #050a12 100%) !important;
}

body.tn-ai-lab-page {
    overflow-x: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro {
    height: 100vh !important;
    min-height: 100vh !important;
    overflow: hidden !important;
}

html.tn-lab-scada-desktop.tn-lab-view-pro body.tn-ai-lab-page {
    height: 100% !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #page,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site-content,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site-content .container,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .content-area,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #primary {
    min-height: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site-content {
    height: var(--tn-lab-shell-height, calc(100vh - 64px)) !important;
    min-height: var(--tn-lab-shell-height, calc(100vh - 64px)) !important;
    overflow: hidden !important;
    padding: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site-content .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #primary {
    height: 100% !important;
    display: flex !important;
    flex-direction: column;
    gap: 6px;
    overflow: hidden !important;
    padding: 0 8px 8px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-pro-header,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-command-strip {
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-page-hero.tn-lab-hero {
    border: 1px solid rgba(79, 121, 167, 0.56);
    border-radius: 12px;
    padding: 6px 10px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-hero__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-pro-header__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-command-strip__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-faq__inner {
    max-width: none !important;
    width: 100% !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-pro-header__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-command-strip__inner {
    border-radius: 12px;
    padding: 0.48rem 0.54rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* BUG 4 fix: Single-column grid in Pro mode (rail is hidden) */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0;
    height: 100%;
    min-height: 0;
}

/* BUG 4 fix: Hide guided section rail in Pro mode */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-section-rail {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__main {
    min-height: 0;
    overflow: auto !important;
    overflow-x: hidden !important;
    padding-right: 2px;
    padding-left: 0 !important;
    scrollbar-gutter: stable;
}

/* BUG 2 fix: Force all sections full-width in Pro mode */
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__main {
    grid-template-columns: 1fr !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__main > * {
    grid-column: 1 / -1 !important;
}

/* BUG 3 fix: Hide guided-only sections in Pro mode */
body.tn-ai-lab-page.tn-lab-view-pro #lab-bridge,
body.tn-ai-lab-page.tn-lab-view-pro #lab-faq,
body.tn-ai-lab-page.tn-lab-view-pro #lab-intake,
body.tn-ai-lab-page.tn-lab-view-pro #lab-alignment {
    display: none !important;
}

/* BUG 1 fix: Condense Pro Console header to single compact bar */
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header {
    padding: 0 24px 0.4rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__inner {
    padding: 0.35rem 0.74rem !important;
    grid-template-columns: auto 1fr auto !important;
    gap: 0.5rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__title {
    font-size: 0.85rem !important;
    margin: 0 !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__nav {
    grid-column: auto !important;
    justify-self: end;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-theme-switch {
    display: none !important;
}

/* BUG 1 fix: Collapse Live Flow telemetry to compact single line */
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-command-strip {
    padding: 0 24px 0.4rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-command-strip__inner {
    padding: 0.35rem 0.62rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-command-strip__heading {
    display: none !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-hero__metrics {
    grid-template-columns: repeat(4, auto) !important;
    gap: 0.75rem !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-hero-metric {
    padding: 0 !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    min-height: 0 !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-hero-metric__label {
    font-size: 0.65rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-hero-metric__value {
    font-size: 0.85rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-hero-metric__detail {
    display: none !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-command-strip__meta {
    margin-top: 0.25rem !important;
    gap: 0.35rem !important;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-command-strip__meta .tn-lab-hero__subline {
    font-size: 0.65rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-section-rail {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    width: auto !important;
    max-height: none !important;
    height: 100% !important;
    align-self: stretch;
    margin: 0 !important;
    overflow: auto;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-faq {
    padding: 0 0 8px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-faq__inner {
    border-radius: 12px !important;
    padding: 0.62rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech__narrative,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta__text,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge__text,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-kb__answer p {
    max-width: 78ch;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0.34rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__console {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__heading {
    margin: 0 !important;
    font-size: clamp(1.14rem, 1.65vw, 1.6rem) !important;
    line-height: 1.05 !important;
    max-width: 26ch;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__context {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__ctas {
    margin: 0 !important;
    gap: 0.28rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__cta {
    min-height: 27px !important;
    padding: 0.17rem 0.42rem !important;
    font-size: 0.49rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-trust-line {
    margin: 0 !important;
    font-size: 0.49rem !important;
    line-height: 1.2 !important;
    padding: 0.18rem 0.34rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #lab-unified .tn-lab-section-head__kicker,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #lab-unified .tn-services-tech__narrative {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #lab-unified .tn-services__section-heading {
    font-size: 1.26rem !important;
    line-height: 1.04 !important;
    margin: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #lab-unified .tn-lab-unified {
    margin-top: 0.24rem !important;
    padding: 0.34rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop #tn-lab-unified-input {
    min-height: 72px !important;
    max-height: 168px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop #lab-unified .tn-lab-unified__result {
    max-height: min(44vh, 460px);
    overflow: auto;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-footprint-compact .tn-lab-command-strip__heading,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-footprint-compact .tn-lab-hero-metric__detail,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-footprint-compact .tn-services-tech__narrative,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-footprint-compact .tn-services-cta__text {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__main {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    align-content: start;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-unified,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-orchestration,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-tools {
    grid-column: 1 / -1;
}

@media (min-width: 2200px) {
    body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__grid {
        grid-template-columns: 280px minmax(0, 1fr);
    }

    body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__main {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-unified,
    body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-orchestration,
    body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-tools {
        grid-column: 1 / span 2;
    }
}

body.tn-ai-lab-page .tn-lab-unified__summary,
body.tn-ai-lab-page .tn-lab-unified__technical-note,
body.tn-ai-lab-page .tn-lab-unified__target,
body.tn-ai-lab-page .tn-lab-unified__fallback,
body.tn-ai-lab-page .tn-lab-unified__route-target,
body.tn-ai-lab-page .tn-lab-unified__sources-list a,
body.tn-ai-lab-page .tn-lab-unified__trace-log li {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

body.tn-ai-lab-page .tn-lab-shell,
body.tn-ai-lab-page .tn-lab-shell__grid,
body.tn-ai-lab-page .tn-lab-shell__main,
body.tn-ai-lab-page .tn-services-tech,
body.tn-ai-lab-page .tn-services-tech__inner,
body.tn-ai-lab-page .tn-services-cta,
body.tn-ai-lab-page .tn-services-cta__inner {
    max-width: 100%;
}

body.tn-ai-lab-page.tn-lab-scada-mobile {
    overflow-x: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .site-content {
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile #primary {
    height: auto !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell {
    overflow: visible;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__grid {
    display: block;
    height: auto;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__main {
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__ctas {
    position: sticky;
    top: calc(var(--tn-lab-shell-top-offset, 64px) + 6px);
    z-index: 6;
    padding: 0.28rem;
    border: 1px solid rgba(86, 126, 166, 0.66);
    border-radius: 10px;
    background: rgba(8, 18, 30, 0.92);
}

body.tn-ai-lab-page .tn-lab-footprint-toggle.is-active {
    border-color: rgba(57, 208, 195, 0.82) !important;
    background: rgba(57, 208, 195, 0.22) !important;
    color: #d9fffb !important;
}

/* =============================================================
   PLAN 035: FINAL SCADA ENFORCEMENT (append-last override)
   ============================================================= */
body.tn-ai-lab-page,
body.tn-ai-lab-page #page,
body.tn-ai-lab-page .site,
body.tn-ai-lab-page .site-content {
    background:
        radial-gradient(circle at 88% 5%, rgba(67, 132, 210, 0.16), transparent 32%),
        radial-gradient(circle at 8% 26%, rgba(57, 208, 195, 0.12), transparent 34%),
        linear-gradient(180deg, #070f1a 0%, #09111d 34%, #060b14 100%) !important;
}

body.tn-ai-lab-page {
    min-height: 100vh;
    overflow-x: hidden !important;
}

body.tn-ai-lab-page .site-content {
    min-height: calc(100vh - 64px);
    padding-bottom: 10px;
}

body.tn-ai-lab-page #primary,
body.tn-ai-lab-page .entry-content,
body.tn-ai-lab-page main,
body.tn-ai-lab-page .container,
body.tn-ai-lab-page .tn-services-tech,
body.tn-ai-lab-page .tn-services-tech__inner {
    overflow-x: hidden !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-services-tech {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-lab-hero__inner,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
    width: calc(100% - 8px) !important;
    max-width: calc(100% - 8px) !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero.tn-lab-hero {
    padding: 6px 8px 5px !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-lab-hero__content {
    max-width: none !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.22rem 0.46rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__heading,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-lab-hero__context {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__ctas {
    margin: 0 0 0 auto !important;
    gap: 0.24rem;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__cta {
    min-height: 28px !important;
    padding: 0.18rem 0.42rem !important;
    font-size: 0.5rem !important;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-lab-trust-line {
    margin: 0 !important;
    flex: 1 1 100%;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #tn-lab-unified-input {
    min-height: 96px !important;
    max-height: 180px;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__result,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__result * {
    min-width: 0;
}

body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__target,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__fallback,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__route-target,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__sources-list a,
body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) #lab-unified .tn-lab-unified__trace-log li {
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 1080px) {
    body.tn-ai-lab-page.tn-lab-legacy-dense:not(.tn-lab-view-pro) .tn-page-hero__ctas {
        margin-left: 0 !important;
    }
}

/* =============================================================
   PLAN 093: AI LAB COMMAND-CENTER REBOOT — CONTENT STRATEGY SURFACES
   New tokenized styles for System Pulse, Architecture Strip,
   Proof Block, Scenario Presets, and compact/mobile overrides.
   ============================================================= */

/* -- System Pulse Hero Strip -- */
.tn-lab-system-pulse {
    background: linear-gradient(180deg, rgba(10, 22, 38, 0.96), rgba(8, 16, 28, 0.98));
    border: 1px solid rgba(79, 121, 167, 0.42);
    border-radius: 10px;
    padding: 0.52rem 0.72rem;
    margin: 0;
}
.tn-lab-system-pulse__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.62rem 1.2rem;
    max-width: none;
    width: 100%;
}

/* Provider chips with status dots */
.tn-lab-system-pulse__providers {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    flex-shrink: 0;
}
.tn-lab-system-pulse__provider {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    font-size: 0.84rem;
    color: #b0d0f0;
    letter-spacing: 0.01em;
}
.tn-lab-pulse-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4a6a8a;
    flex-shrink: 0;
    transition: background 0.3s ease;
}
.tn-lab-pulse-dot.is-reachable { background: #39d0c3; }
.tn-lab-pulse-dot.is-degraded { background: #e0a040; }
.tn-lab-pulse-dot.is-unreachable { background: #cc4444; }

/* Today ops snapshot + lifetime counters */
.tn-lab-system-pulse__today,
.tn-lab-system-pulse__lifetime {
    display: flex;
    align-items: center;
    gap: 0.82rem;
    color: #8aafcc;
    font-size: 0.82rem;
}
.tn-lab-system-pulse__today [data-pulse-value],
.tn-lab-system-pulse__lifetime [data-pulse-value] {
    color: #eaf4ff;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    margin-right: 0.18rem;
}

/* Trend sparklines */
.tn-lab-system-pulse__trends {
    display: flex;
    align-items: center;
    gap: 0.92rem;
}
.tn-lab-system-pulse__trend {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
}
.tn-lab-system-pulse__trend-label {
    font-size: 0.72rem;
    color: #6a8aaa;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.tn-lab-sparkline {
    width: 80px;
    height: 24px;
    display: block;
}
.tn-lab-sparkline polyline,
.tn-lab-sparkline path {
    fill: none;
    stroke: #39d0c3;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}
.tn-lab-sparkline .sparkline-area {
    fill: rgba(57, 208, 195, 0.12);
    stroke: none;
}

/* Sync status line */
.tn-lab-system-pulse__sync {
    display: flex;
    align-items: center;
    gap: 0.32rem;
    font-size: 0.72rem;
    color: #5a7a9a;
    margin: 0;
    margin-left: auto;
}

/* -- Architecture Transparency Strip -- */
.tn-lab-architecture-strip {
    background: rgba(10, 22, 38, 0.72);
    border: 1px solid rgba(57, 208, 195, 0.22);
    border-radius: 8px;
    padding: 0.38rem 0.72rem;
    margin: 0;
}
.tn-lab-architecture-strip__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.42rem;
    justify-content: center;
    max-width: none;
    width: 100%;
}
.tn-lab-arch-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    font-size: 0.76rem;
    color: #8aafcc;
    background: rgba(57, 208, 195, 0.08);
    border: 1px solid rgba(57, 208, 195, 0.18);
    border-radius: 4px;
    padding: 0.14rem 0.52rem;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.tn-lab-arch-chip strong {
    color: #39d0c3;
    font-weight: 600;
}

/* -- What You Are Seeing Proof Block -- */
.tn-lab-proof-block {
    background: rgba(10, 22, 38, 0.82);
    border-left: 3px solid rgba(57, 208, 195, 0.52);
    border-radius: 0 8px 8px 0;
    padding: 0.52rem 0.82rem;
    margin: 0;
}
.tn-lab-proof-block__text {
    font-size: 0.86rem;
    color: #9bc0e5;
    line-height: 1.52;
    margin: 0;
    max-width: 82ch;
}
.tn-lab-proof-block__text strong {
    color: #eaf4ff;
}
.tn-lab-proof-block__text [data-proof-providers],
.tn-lab-proof-block__text [data-proof-vectors],
.tn-lab-proof-block__text [data-proof-stages] {
    color: #39d0c3;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* -- Scenario Preset Cards -- */
.tn-lab-scenario-presets {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.62rem;
    margin: 0.62rem 0;
}
.tn-lab-scenario-card {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    background: rgba(10, 22, 38, 0.88);
    border: 1px solid rgba(79, 121, 167, 0.42);
    border-radius: 10px;
    padding: 0.72rem 0.82rem;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    text-align: left;
    color: inherit;
    font-family: inherit;
}
.tn-lab-scenario-card:hover,
.tn-lab-scenario-card:focus-visible {
    border-color: rgba(57, 208, 195, 0.62);
    box-shadow: 0 0 16px rgba(57, 208, 195, 0.14);
    outline: none;
}
.tn-lab-scenario-card.is-active {
    border-color: #39d0c3;
    box-shadow: 0 0 20px rgba(57, 208, 195, 0.22);
}
.tn-lab-scenario-card__pillar {
    font-size: 0.68rem;
    color: #39d0c3;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}
.tn-lab-scenario-card__title {
    font-size: 1rem;
    color: #eaf4ff;
    font-weight: 600;
    line-height: 1.28;
}
.tn-lab-scenario-card__desc {
    font-size: 0.84rem;
    color: #8aafcc;
    line-height: 1.42;
}

/* -- Desktop SCADA overrides for new surfaces -- */
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-proof-block {
    flex: 0 0 auto;
    margin: 0 !important;
}

/* -- Compact mode density reduction -- */
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-system-pulse {
    padding: 0.28rem 0.52rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-system-pulse__provider {
    font-size: 0.74rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-system-pulse__today,
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-system-pulse__lifetime {
    font-size: 0.72rem;
    gap: 0.52rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-system-pulse__trends {
    gap: 0.52rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-sparkline {
    width: 60px;
    height: 18px;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-architecture-strip {
    padding: 0.22rem 0.52rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-arch-chip {
    font-size: 0.68rem;
    padding: 0.08rem 0.38rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-proof-block {
    padding: 0.32rem 0.62rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-proof-block__text {
    font-size: 0.78rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-scenario-presets {
    gap: 0.38rem;
    margin: 0.38rem 0;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-scenario-card {
    padding: 0.48rem 0.62rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-scenario-card__title {
    font-size: 0.88rem;
}
body.tn-ai-lab-page.tn-lab-footprint-compact .tn-lab-scenario-card__desc {
    font-size: 0.76rem;
}

/* -- Mobile responsive overrides -- */
@media (max-width: 768px) {
    .tn-lab-system-pulse__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.42rem;
    }
    .tn-lab-system-pulse__providers {
        flex-wrap: wrap;
        gap: 0.42rem;
    }
    .tn-lab-system-pulse__today,
    .tn-lab-system-pulse__lifetime {
        flex-wrap: wrap;
        gap: 0.52rem;
    }
    .tn-lab-system-pulse__trends {
        flex-wrap: wrap;
        gap: 0.52rem;
    }
    .tn-lab-sparkline {
        width: 64px;
        height: 20px;
    }
    .tn-lab-scenario-presets {
        grid-template-columns: 1fr;
    }
    .tn-lab-architecture-strip__inner {
        justify-content: flex-start;
    }
}

/* -- Guided view visibility rules -- */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-proof-block {
    display: block;
}
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-proof-block {
    display: block;
}

/* Scenario presets only in Guided mode */
body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-scenario-presets {
    display: none;
}

/* -- Methodology phase map -- */
.tn-lab-unified__layer--methodology {
    margin-top: 0.42rem;
}
.tn-lab-unified__methodology-map {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.32rem;
}
.tn-lab-unified__methodology-phase {
    display: inline-flex;
    flex-direction: column;
    gap: 0.08rem;
    padding: 0.32rem 0.52rem;
    border: 1px solid rgba(79, 121, 167, 0.32);
    border-radius: 6px;
    background: rgba(10, 22, 38, 0.72);
    color: #8aafcc;
    font-size: 0.82rem;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.tn-lab-unified__methodology-phase.is-active {
    border-color: #39d0c3;
    background: rgba(57, 208, 195, 0.12);
    color: #eaf4ff;
}
.tn-lab-unified__methodology-phase.is-active strong {
    color: #39d0c3;
}
.tn-lab-unified__methodology-desc {
    font-size: 0.7rem;
    color: #6a8aaa;
    line-height: 1.2;
}
.tn-lab-unified__methodology-phase.is-active .tn-lab-unified__methodology-desc {
    color: #9bc0e5;
}
.tn-lab-unified__methodology-arrow {
    color: #4a6a8a;
    font-size: 0.9rem;
}
.tn-lab-unified__methodology-fallback {
    font-size: 0.78rem;
    color: #6a8aaa;
    font-style: italic;
    margin: 0.22rem 0 0;
}

@media (max-width: 768px) {
    .tn-lab-unified__methodology-map {
        flex-direction: column;
        align-items: stretch;
    }
    .tn-lab-unified__methodology-arrow {
        display: none;
    }
}

/* =============================================================
   PLAN 093: SCADA polish pass
   - fix Guided info tooltip clipping/stacking
   - normalize desktop shell gutters and panel spacing rhythm
   - preserve no-scroll app-shell behavior while reducing visual clutter
   ============================================================= */
body.tn-ai-lab-page.tn-lab-scada-desktop #primary {
    --tn-lab-shell-gutter: clamp(12px, 1.15vw, 22px);
    gap: 10px;
    padding: 0 var(--tn-lab-shell-gutter) 12px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-page-hero.tn-lab-hero {
    overflow: visible !important;
    z-index: 60;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-page-hero__ctas {
    overflow: visible;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero__info {
    position: relative;
    z-index: 1200;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero__info[open] {
    z-index: 1201;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero__info-pop {
    z-index: 1300 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-proof-block,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-shell {
    position: relative;
    z-index: 20;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-pro-header,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-command-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-proof-block,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-shell {
    margin: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-hero__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-pro-header__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-command-strip__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-faq__inner {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

body.tn-ai-lab-page.tn-lab-scada-desktop:not(.tn-lab-view-pro) .tn-lab-hero__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
    width: 100% !important;
    max-width: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-shell__grid {
    gap: 10px;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-faq {
    padding: 0 0 10px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-faq__inner {
    border-radius: 14px !important;
    padding: 0.78rem 0.9rem !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-proof-block {
    border-color: rgba(79, 121, 167, 0.34);
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-scenario-presets {
    gap: 0.74rem;
    margin: 0.72rem 0;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-scenario-card {
    border-color: rgba(79, 121, 167, 0.34);
    padding: 0.82rem 0.9rem;
}

/* =============================================================
   PLAN 093: Guided narrative reset (buyer-first pass)
   - restore visible hero value proposition
   - collapse Guided header stack to one compact status band
   - move desktop Guided to normal page-scroll narrative
   - keep Pro as SCADA no-page-scroll operator mode
   ============================================================= */
body.tn-ai-lab-page.tn-lab-view-guided {
    --tn-lab-type-xs: 0.82rem;
    --tn-lab-type-sm: 0.92rem;
    --tn-lab-type-md: 1rem;
    --tn-lab-type-lg: clamp(1.75rem, 2.8vw, 2.45rem);
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__heading {
    display: block !important;
    margin: 0.34rem 0 0 !important;
    font-size: var(--tn-lab-type-lg) !important;
    line-height: 1.08 !important;
    letter-spacing: 0.01em !important;
    max-width: 22ch !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__text {
    display: block !important;
    margin-top: 0.54rem !important;
    max-width: 72ch !important;
    font-size: var(--tn-lab-type-md) !important;
    line-height: 1.48 !important;
    color: #b9d6f2 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__context {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__badge {
    font-size: var(--tn-lab-type-xs) !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas {
    margin-top: 0.78rem !important;
    gap: 0.52rem !important;
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 100%;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "badge ctas"
      "heading ctas"
      "text ctas"
      "kb ctas";
    column-gap: 0.9rem;
    row-gap: 0.35rem;
    align-items: center;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__badge { grid-area: badge; }
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__heading { grid-area: heading; }
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__text { grid-area: text; }
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas { grid-area: ctas; }
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context { grid-area: kb; }

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__cta {
    min-height: 38px !important;
    padding: 0.4rem 0.76rem !important;
    font-size: var(--tn-lab-type-sm) !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__cta {
    min-height: 40px !important;
    padding: 0.42rem 0.8rem !important;
    font-size: 0.92rem !important;
    line-height: 1.25 !important;
}

/* Guided top stack collapse: keep only one status/context strip above content. */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-trust-line,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-proof-block {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse {
    margin: 0 !important;
    padding: 0.44rem 0.78rem !important;
    border-radius: 10px !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1.2fr) auto auto !important;
    align-items: center;
    gap: 0.4rem 1rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__providers {
    gap: 0.58rem !important;
    min-width: 0;
    flex-wrap: wrap;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__provider {
    font-size: 0.86rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__today {
    gap: 0.78rem !important;
    font-size: 0.86rem !important;
    white-space: nowrap;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__lifetime,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__trends {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__sync {
    margin-left: 0 !important;
    justify-self: end;
    font-size: 0.84rem !important;
    white-space: nowrap;
}

/* Plan 092: Guided desktop uses SCADA shell containment (body no-scroll). */
/* Plan 099: Guided mode scrolls naturally — no viewport lock. */
html.tn-lab-scada-desktop.tn-lab-view-guided {
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 100vh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .site-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .site-content .container {
    height: auto !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #primary {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    gap: 0 !important;
    padding: 0 clamp(14px, 1.7vw, 30px) 0 !important;
}

/* Plan 099: Guided desktop shell — natural document flow, no internal scroll trap. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell__grid {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell__main {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq {
    padding: 0 0 12px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq__inner {
    width: 100% !important;
    max-width: none !important;
}

/* Plan 092: Guided desktop above-shell elements shrink so shell fills remaining space. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-guided-nav {
    flex: 0 0 auto !important;
    overflow: hidden !important;
    margin: 0 !important;
}

/* Plan 092: Hide non-essential above-shell sections in desktop SCADA Guided —
   telemetry info is already in the shell sections. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-proof-block,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-utility-footer {
    display: none !important;
}

/* Plan 092: Compact hero in SCADA Guided desktop — keep badge, heading, CTAs;
   hide metrics, description, and KB context to save vertical space. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__metrics,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__kb-context,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__subline {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__inner {
    padding: 0 !important;
    gap: 6px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__heading {
    font-size: clamp(1.1rem, 1.8vw, 1.5rem) !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__ctas {
    margin: 0 !important;
    gap: 8px !important;
}

/* Guided reveals proof sections in narrative order, keeps advanced tools in Pro. */
body.tn-ai-lab-page.tn-lab-view-guided #lab-pulse,
body.tn-ai-lab-page.tn-lab-view-guided #lab-orchestration,
body.tn-ai-lab-page.tn-lab-view-guided #lab-tools,
body.tn-ai-lab-page.tn-lab-view-guided #lab-bridge,
body.tn-ai-lab-page.tn-lab-view-guided #lab-intake,
body.tn-ai-lab-page.tn-lab-view-guided #lab-faq,
body.tn-ai-lab-page.tn-lab-view-guided #lab-alignment {
    display: block !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #tn-lab-pro-shell,
body.tn-ai-lab-page.tn-lab-view-guided #lab-command-strip,
body.tn-ai-lab-page.tn-lab-view-guided [data-lab-rail] {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell__main {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
}

body.tn-ai-lab-page.tn-lab-view-guided #lab-unified { order: 1; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-pulse { order: 2; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-orchestration { order: 3; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-tools { order: 4; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-bridge { order: 5; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-faq { order: 6; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-intake { order: 7; }
body.tn-ai-lab-page.tn-lab-view-guided #lab-alignment { order: 8; }

/* Bring footer/trust surface back in Guided; keep Pro focused. */
body.tn-ai-lab-page.tn-lab-view-guided footer.tn-footer {
    display: block !important;
}

body.tn-ai-lab-page.tn-lab-view-pro footer.tn-footer {
    display: none !important;
}

/* Plan 092: Desktop SCADA hides footer to prevent overflow outside the shell. */
body.tn-ai-lab-page.tn-lab-scada-desktop footer.tn-footer,
body.tn-ai-lab-page.tn-lab-scada-desktop .tn-lab-utility-footer {
    display: none !important;
}

/* Mobile stays single-scroll and keeps compact status behavior. */
@media (max-width: 1023px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
        display: flex !important;
        flex-wrap: wrap;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__sync {
        justify-self: auto;
    }
}

/* Pro shell containment: keep SCADA no-page-scroll with internal pane scrolling. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-proof-block {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .site-content .container,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-hero-page {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__grid {
    height: 100% !important;
    min-height: 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__main {
    height: 100% !important;
    min-height: 0 !important;
    overflow: auto !important;
}

/* =============================================================
   PLAN 093 PASS 1: GUIDED TOP-ZONE SIMPLIFICATION + TELEMETRY COLLAPSE
   ============================================================= */
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas [data-lab-footprint-toggle],
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas .tn-lab-hero__info {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context {
    margin: 0.32rem 0 0;
    font-size: 0.94rem;
    line-height: 1.45;
    color: rgba(174, 204, 232, 0.92);
    max-width: 74ch;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context a {
    color: #54d7cc;
    text-decoration-color: rgba(84, 215, 204, 0.52);
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse {
    padding: 0 !important;
    border-radius: 12px;
    overflow: hidden;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__disclosure {
    display: block;
    margin: 0;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.56rem 0.8rem;
    cursor: pointer;
    list-style: none;
    min-height: 44px;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary::-webkit-details-marker {
    display: none;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live {
    display: inline-flex;
    align-items: center;
    gap: 0.34rem;
    color: #d8ecff;
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
    color: #93b6d7;
    font-size: 0.84rem;
    line-height: 1.3;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-hint {
    margin-left: auto;
    color: #54d7cc;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__disclosure[open] .tn-lab-system-pulse__summary {
    border-bottom: 1px solid rgba(79, 121, 167, 0.34);
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.58rem 1rem;
    padding: 0.64rem 0.8rem 0.74rem;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__providers,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__today,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__lifetime,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__trends,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__sync,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls {
    min-width: 0;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__providers {
    grid-column: 1 / -1;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__trends {
    grid-column: 1 / -1;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__sync {
    margin-left: 0;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls {
    display: flex;
    justify-content: flex-end;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls [data-lab-footprint-toggle] {
    min-height: 32px;
    padding: 0.24rem 0.58rem;
    font-size: 0.82rem;
}

body.tn-ai-lab-page .tn-lab-live-dot.is-reachable {
    background: #2fd9c8;
}

body.tn-ai-lab-page .tn-lab-live-dot.is-warning {
    background: #deaf58;
}

body.tn-ai-lab-page .tn-lab-live-dot.is-unreachable {
    background: #d95f5f;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #primary {
    padding: 0 clamp(20px, 2.6vw, 54px) 0 !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq {
    margin-inline: auto;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell__main {
    gap: 14px;
}

@media (max-width: 1023px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 0.35rem 0.62rem;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live {
        width: 100%;
        white-space: normal;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
        width: calc(100% - 96px);
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-hint {
        margin-left: auto;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
        grid-template-columns: 1fr;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls {
        justify-content: flex-start;
    }
}

/* =============================================================
   PLAN 093 PASS 1B: Guided visual polish + readability
   - harden tooltip stacking above all lab surfaces
   - normalize desktop guided gutters and panel rhythm
   - use available width without edge-collision
   - remove white textarea/tool surfaces in unified intake
   ============================================================= */
body.tn-ai-lab-page .tn-lab-tooltip {
    position: fixed !important;
    z-index: 2147483000 !important;
    max-width: min(40ch, calc(100vw - 20px)) !important;
    filter: drop-shadow(0 10px 22px rgba(2, 10, 18, 0.55));
    transform: translate3d(0, 0, 0);
}

body.tn-ai-lab-page .tn-lab-hero__info {
    position: relative;
    z-index: 2147481000 !important;
}

body.tn-ai-lab-page .tn-lab-hero__info-pop {
    z-index: 2147482000 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided {
    --tn-lab-guided-gutter: clamp(18px, 2.4vw, 48px);
    --tn-lab-guided-max: min(1720px, calc(100vw - (var(--tn-lab-guided-gutter) * 2)));
    --tn-lab-guided-panel-gap: 12px;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided #primary {
    padding: 0 var(--tn-lab-guided-gutter) 0 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-view-guided .tn-faq,
body.tn-ai-lab-page.tn-lab-view-guided footer.tn-footer {
    width: 100%;
    max-width: var(--tn-lab-guided-max);
    margin-inline: auto !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell {
    margin-bottom: var(--tn-lab-guided-panel-gap) !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell__main {
    gap: var(--tn-lab-guided-panel-gap) !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-faq__inner {
    padding: 0.9rem 1rem !important;
    border-radius: 14px !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.62rem;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card {
    min-width: 0;
    padding: 0.68rem 0.82rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card__title {
    font-size: 0.88rem !important;
    line-height: 1.25 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card__desc {
    font-size: 0.78rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card__desc {
    line-height: 1.38;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified .tn-ai-form,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified .tn-ai-form * {
    box-sizing: border-box;
}

body.tn-ai-lab-page.tn-lab-view-guided #tn-lab-unified-input,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified .tn-ai-textarea {
    background: rgba(6, 16, 29, 0.96) !important;
    color: #d8ecff !important;
    border-color: rgba(76, 125, 168, 0.74) !important;
    min-height: 148px;
    font-size: 1rem !important;
    line-height: 1.6 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #tn-lab-unified-input::placeholder,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-unified .tn-ai-textarea::placeholder {
    color: rgba(147, 182, 215, 0.82) !important;
    font-size: 0.95rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-hint {
    font-size: 0.9rem !important;
}

@media (max-width: 1480px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__content {
        grid-template-columns: 1fr !important;
        grid-template-areas:
          "badge"
          "heading"
          "text"
          "ctas"
          "kb" !important;
        align-items: start !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas {
        justify-content: flex-start !important;
        margin-top: 0.52rem !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
        grid-template-columns: 1fr;
    }
}

/* Pro desktop stays hard SCADA shell: lock document scroll to pane-level only. */
html.tn-lab-scada-desktop.tn-lab-view-pro {
    height: 100% !important;
    overflow-y: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro {
    height: 100vh !important;
    min-height: 100vh !important;
    overflow: hidden !important;
}

/* =============================================================
   AI LAB MINIMAL FOOTER (Guided-only)
   - replace heavy global footer on this page with a compact utility bar
   - keep Pro mode footer-free for SCADA focus
   ============================================================= */
body.tn-ai-lab-page footer.tn-footer {
    display: none !important;
}

body.tn-ai-lab-page .tn-lab-utility-footer {
    display: none;
    width: 100%;
    max-width: var(--tn-lab-guided-max, min(1720px, calc(100vw - 2rem)));
    margin: 10px auto 22px;
    border: 1px solid rgba(76, 125, 168, 0.36);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(8, 18, 32, 0.92), rgba(5, 12, 24, 0.96));
    box-shadow: 0 12px 26px rgba(2, 10, 18, 0.35);
}

body.tn-ai-lab-page .tn-lab-utility-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    padding: 0.6rem 0.9rem;
}

body.tn-ai-lab-page .tn-lab-utility-footer__copy {
    margin: 0;
    color: rgba(156, 186, 214, 0.86);
    font-size: 0.86rem;
    line-height: 1.35;
}

body.tn-ai-lab-page .tn-lab-utility-footer__links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.42rem;
}

body.tn-ai-lab-page .tn-lab-utility-footer__links a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.28rem 0.58rem;
    border-radius: 6px;
    border: 1px solid rgba(76, 125, 168, 0.4);
    color: #cfe5fb;
    font-size: 0.85rem;
    line-height: 1.25;
    text-decoration: none;
    transition: border-color 180ms ease, color 180ms ease, background 180ms ease;
}

body.tn-ai-lab-page .tn-lab-utility-footer__links a:hover,
body.tn-ai-lab-page .tn-lab-utility-footer__links a:focus-visible {
    border-color: rgba(84, 215, 204, 0.72);
    color: #e8f8ff;
    background: rgba(14, 33, 52, 0.7);
    outline: none;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-utility-footer {
    display: block;
}

body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-utility-footer {
    display: none !important;
}

@media (max-width: 760px) {
    body.tn-ai-lab-page .tn-lab-utility-footer__inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =============================================================
   PLAN 095: Guided stabilization + readability floor
   ============================================================= */
body.tn-ai-lab-page .tn-lab-unified__route-guidance {
    margin: 0.46rem 0 0;
    color: #9ec4e8;
    font-size: 0.88rem;
    line-height: 1.38;
}

body.tn-ai-lab-page .tn-lab-unified__route-guidance[hidden] {
    display: none !important;
}

body.tn-ai-lab-page .tn-lab-unified__route-guidance.is-warning {
    color: #f2c06d;
}

body.tn-ai-lab-page .tn-lab-unified__route-guidance.is-error {
    color: #f39ca1;
}

body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__meta span,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__proof-title,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__followups-title,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__sources-title,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__trace-title,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__layer-title,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-ai-status,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__input-hint,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__continuity-status,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__route-target,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__route-guidance {
    font-size: 0.84rem !important;
    line-height: 1.34 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__proof-badge,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__followup-chip,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__technical-toggle,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__continuity-actions .tn-ai-btn,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-ai-actions .tn-ai-btn {
    font-size: 0.82rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__target,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__fallback,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__steps li,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__methodology-desc,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__methodology-fallback {
    font-size: 0.95rem !important;
    line-height: 1.45 !important;
}

/* =============================================================
   PLAN 096: Guided narrative simplification + Pro reliability recovery
   ============================================================= */

/* Guided top zone: keep only hero + collapsed system-live summary band. */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-architecture-strip,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-proof-block {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero {
    margin-bottom: 10px !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__text {
    display: block !important;
    max-width: 78ch;
    font-size: 0.96rem !important;
    line-height: 1.42 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context {
    margin-top: 0.3rem !important;
    font-size: 0.9rem !important;
    line-height: 1.35 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas .tn-page-hero__cta {
    min-height: 38px !important;
    font-size: 0.86rem !important;
}

/* Pro panels 01-04: prevent collapsed 10px strip behavior. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro .tn-lab-shell__main {
    grid-auto-rows: max-content !important;
    align-content: start !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-unified,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-pulse,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-orchestration,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-tools {
    height: auto !important;
    min-height: max-content !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 12px !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-unified .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-pulse .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-orchestration .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #lab-tools .tn-services-tech__inner {
    overflow: visible !important;
}

/* CTA/readability floor for decision paths. */
body.tn-ai-lab-page .tn-lab-unified__steps li,
body.tn-ai-lab-page .tn-lab-unified__summary,
body.tn-ai-lab-page .tn-lab-unified__technical-note,
body.tn-ai-lab-page .tn-lab-unified__target,
body.tn-ai-lab-page .tn-lab-unified__fallback,
body.tn-ai-lab-page .tn-lab-unified__methodology-desc,
body.tn-ai-lab-page .tn-lab-unified__methodology-fallback {
    font-size: 0.95rem !important;
    line-height: 1.42 !important;
}

body.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn,
body.tn-ai-lab-page .tn-ai-actions .tn-ai-btn,
body.tn-ai-lab-page .tn-lab-unified__proof-badge,
body.tn-ai-lab-page .tn-lab-unified__followup-chip,
body.tn-ai-lab-page .tn-lab-unified__technical-toggle,
body.tn-ai-lab-page .tn-lab-unified__route-guidance,
body.tn-ai-lab-page .tn-lab-unified__meta span,
body.tn-ai-lab-page .tn-lab-unified__layer-title,
body.tn-ai-lab-page .tn-lab-unified__proof-title,
body.tn-ai-lab-page .tn-lab-unified__followups-title,
body.tn-ai-lab-page .tn-lab-unified__sources-title,
body.tn-ai-lab-page .tn-lab-unified__trace-title,
body.tn-ai-lab-page .tn-lab-unified__continuity-status,
body.tn-ai-lab-page .tn-ai-status,
body.tn-ai-lab-page .tn-lab-unified__input-hint {
    font-size: 0.84rem !important;
    line-height: 1.34 !important;
}

body.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn,
body.tn-ai-lab-page .tn-ai-actions .tn-ai-btn {
    min-height: 36px !important;
    padding: 0.32rem 0.72rem !important;
}

/* =============================================================
   PLAN 096B: audit hardening (mobile Pro containment + readability + polish)
   - mobile Pro must not overlay guided layers
   - system pulse must not collide below 400px
   - remove floating controls that obstruct input
   - normalize odd-card grid behavior + typography floor
   - eliminate vestigial separator artifacts
   ============================================================= */

body.tn-ai-lab-page .tn-lab-pro-header,
body.tn-ai-lab-page .tn-lab-command-strip,
body.tn-ai-lab-page .tn-lab-shell {
    position: relative;
    z-index: 24;
}

body.tn-ai-lab-page .tn-lab-tooltip {
    z-index: 2147483600 !important;
}

body.tn-ai-lab-page .tn-lab-unified__route-target:empty {
    display: none !important;
}

body.tn-ai-lab-page .tn-lab-unified__continuity {
    border-top: 0 !important;
    padding-top: 0.42rem !important;
}

body.tn-ai-lab-page .tn-lab-unified__input-hint,
body.tn-ai-lab-page .tn-lab-unified__route-guidance {
    text-align: left !important;
}

body.tn-ai-lab-page .tn-page-hero__ctas .tn-page-hero__cta,
body.tn-ai-lab-page .tn-ai-actions .tn-ai-btn,
body.tn-ai-lab-page .tn-lab-unified__next-actions .tn-ai-btn {
    width: auto !important;
    max-width: 100%;
}

body.tn-ai-lab-page .tn-lab-scenario-card__pillar,
body.tn-ai-lab-page .tn-lab-section-head__kicker,
body.tn-ai-lab-page .tn-lab-system-pulse__summary-hint,
body.tn-ai-lab-page .tn-lab-viz__node-label,
body.tn-ai-lab-page .tn-lab-viz__node-time,
body.tn-ai-lab-page .tn-lab-viz-trace__title,
body.tn-ai-lab-page .tn-lab-viz-trace__stats span,
body.tn-ai-lab-page .tn-lab-pro-header__title,
body.tn-ai-lab-page .tn-lab-pro-header__nav a,
body.tn-ai-lab-page .tn-lab-command-strip__heading,
body.tn-ai-lab-page .tn-lab-hero-metric__label,
body.tn-ai-lab-page .tn-lab-section-rail__label,
body.tn-ai-lab-page .tn-lab-section-rail__list a,
body.tn-ai-lab-page .tn-lab-section-rail__list a span {
    font-size: 0.82rem !important;
    line-height: 1.28 !important;
}

body.tn-ai-lab-page .tn-lab-viz-trace__stats span {
    font-size: 0.84rem !important;
}

@media (max-width: 1480px) and (min-width: 901px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        max-width: min(760px, 100%);
    }
}

@media (max-width: 1100px) {
    body.tn-ai-lab-page.tn-lab-view-pro .tn-page-hero.tn-lab-hero,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-system-pulse,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-architecture-strip,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-proof-block {
        display: none !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-section-rail,
    body.tn-ai-lab-page.tn-lab-view-pro [data-lab-rail] {
        display: none !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
        display: block !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell {
        margin-top: 0.42rem !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__grid,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__main {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #lab-unified,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-pulse,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-orchestration,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-tools {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__ctas {
        position: static !important;
        top: auto !important;
        z-index: auto !important;
        border: 0 !important;
        background: transparent !important;
        padding: 0 !important;
    }
}

@media (max-width: 900px) {
    body.tn-ai-lab-page .back-to-top,
    body.tn-ai-lab-page a.back-to-top,
    body.tn-ai-lab-page #back-to-top {
        bottom: calc(0.75rem + env(safe-area-inset-bottom)) !important;
        right: 0.62rem !important;
    }
}

@media (max-width: 767px) {
    body.tn-ai-lab-page .back-to-top,
    body.tn-ai-lab-page a.back-to-top,
    body.tn-ai-lab-page #back-to-top {
        display: none !important;
    }
}

@media (max-width: 399px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse {
        padding: 0.36rem 0.56rem !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.32rem 0.52rem !important;
        align-items: start !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
        grid-column: 1 / -1;
        width: 100% !important;
        min-width: 0;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-hint {
        grid-column: 2;
        justify-self: end;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__providers,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__today {
        gap: 0.46rem !important;
        font-size: 0.82rem !important;
    }
}

/* Provider identity readability lift */
body.tn-ai-lab-page .tn-lab-provider-row__icon {
    min-width: 1.68rem !important;
    min-height: 1.68rem !important;
}

body.tn-ai-lab-page .tn-lab-provider-row.provider-openai .tn-lab-provider-row__icon::before,
body.tn-ai-lab-page .tn-lab-provider-row.provider-anthropic .tn-lab-provider-row__icon::before,
body.tn-ai-lab-page .tn-lab-provider-row.provider-xai .tn-lab-provider-row__icon::before,
body.tn-ai-lab-page .tn-lab-provider-row.provider-google .tn-lab-provider-row__icon::before {
    width: 1.12rem !important;
    height: 1.12rem !important;
    opacity: 0.92 !important;
}

body.tn-ai-lab-page .tn-lab-provider-row__name {
    font-size: 0.86rem !important;
    letter-spacing: 0.02em !important;
}

@media (min-width: 1024px) {
    body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 50%;
        right: -0.56rem;
        width: 0.5rem;
        height: 2px;
        border-radius: 999px;
        background: rgba(112, 148, 186, 0.58);
        transform: translateY(-50%);
        pointer-events: none;
        z-index: 1;
    }

    body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node.is-active:not(:last-child)::after {
        background: linear-gradient(90deg, rgba(60, 228, 214, 0.3), rgba(60, 228, 214, 0.96));
        box-shadow: 0 0 10px rgba(60, 228, 214, 0.38);
    }

    body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node.is-complete:not(:last-child)::after {
        background: linear-gradient(90deg, rgba(126, 232, 179, 0.34), rgba(126, 232, 179, 0.96));
        box-shadow: 0 0 8px rgba(126, 232, 179, 0.3);
    }
}

/* =============================================================
   PLAN 096C: final hardening pass
   - close residual Pro viewport overflow delta
   - restore guided wayfinding rail on wide desktop
   - increase visual contrast between Mission/Industrial profiles
   ============================================================= */
html.tn-lab-scada-desktop.tn-lab-view-pro,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro {
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-pro #primary {
    padding-bottom: 0 !important;
}

body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-pro-header__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-command-strip__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-faq__inner,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero.tn-lab-hero {
    border-color: rgba(255, 190, 99, 0.56) !important;
    background:
        linear-gradient(150deg, rgba(21, 25, 33, 0.97), rgba(28, 35, 47, 0.94))
        !important;
    box-shadow:
        0 0 0 1px rgba(255, 190, 99, 0.16) inset,
        0 16px 32px rgba(0, 0, 0, 0.35) !important;
}

body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-theme-switch__btn.is-active,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-page-hero__cta--primary,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-ai-btn--primary {
    background: linear-gradient(90deg, rgba(255, 190, 99, 0.96), rgba(255, 214, 146, 0.96)) !important;
    color: #1a2028 !important;
    border-color: rgba(255, 190, 99, 0.88) !important;
}

body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-viz__node.is-active {
    border-color: rgba(255, 190, 99, 0.96) !important;
    box-shadow: 0 0 0 1px rgba(255, 190, 99, 0.36) inset, 0 0 12px rgba(255, 190, 99, 0.32);
}

/* =============================================================
   PLAN 096D: Stability and usability hardening
   ============================================================= */
body.tn-ai-lab-page .tn-header {
    position: sticky;
    top: 0;
    z-index: 10030;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__content,
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__info {
    overflow: visible !important;
}

body.tn-ai-lab-page .tn-lab-theme-switch {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.28rem;
    align-items: center;
}

body.tn-ai-lab-page .tn-lab-theme-switch__note {
    grid-column: 1 / -1;
    margin: 0.08rem 0 0;
    color: #9ec1de;
    font-size: 0.82rem;
    line-height: 1.32;
}

body.tn-ai-lab-page .tn-lab-pro-header__inner,
body.tn-ai-lab-page .tn-lab-command-strip__inner,
body.tn-ai-lab-page .tn-services-tech__inner,
body.tn-ai-lab-page .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page .tn-lab-system-pulse {
    transition: background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

body.tn-ai-lab-page #lab-unified .tn-lab-unified__steps,
body.tn-ai-lab-page #lab-unified .tn-lab-unified__steps li,
body.tn-ai-lab-page #lab-unified .tn-lab-unified__steps li > .tn-lab-unified__step-text {
    font-size: 0.95rem !important;
    line-height: 1.42 !important;
}

body.tn-ai-lab-page #lab-unified .tn-lab-unified__next-actions .tn-ai-btn,
body.tn-ai-lab-page #lab-unified .tn-ai-actions .tn-ai-btn,
body.tn-ai-lab-page #lab-unified [data-lab-refine-action],
body.tn-ai-lab-page #lab-unified [data-lab-open-route] {
    font-size: 0.84rem !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
    padding: 0.34rem 0.72rem !important;
    letter-spacing: 0.03em !important;
}

body.tn-ai-lab-page .tn-lab-scenario-notice {
    margin-top: 0.66rem;
    border: 1px solid rgba(100, 145, 190, 0.66);
    border-radius: 10px;
    background: rgba(12, 24, 39, 0.86);
    color: #d8ecff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.54rem;
    padding: 0.44rem 0.58rem;
    font-size: 0.86rem;
    line-height: 1.3;
}

body.tn-ai-lab-page .tn-lab-scenario-notice .tn-ai-btn {
    min-height: 30px !important;
    font-size: 0.8rem !important;
    white-space: nowrap;
}

body.tn-ai-lab-page .tn-search__full-site {
    border: 1px solid rgba(131, 165, 205, 0.46);
    border-radius: 999px;
    background: rgba(16, 30, 48, 0.72);
    color: #cde6ff;
    font-size: 0.78rem;
    line-height: 1.1;
    padding: 0.24rem 0.58rem;
    cursor: pointer;
}

body.tn-ai-lab-page #tn-search-overlay .tn-search__full-site {
    display: none !important;
}

body.tn-ai-lab-page .tn-search__full-site:hover,
body.tn-ai-lab-page .tn-search__full-site:focus-visible {
    border-color: rgba(84, 216, 207, 0.84);
    color: #ecfbff;
    background: rgba(25, 52, 79, 0.78);
    outline: none;
}

#tn-search-overlay .tn-search__starter {
    border: 1px dashed rgba(135, 163, 197, 0.5);
    border-radius: 12px;
    background: rgba(11, 22, 34, 0.44);
    padding: 0.72rem 0.82rem;
    color: #cde0f6;
    font-family: var(--tn-font-body, "DM Sans", sans-serif);
}

#tn-search-overlay .tn-search__starter p {
    margin: 0 0 0.36rem;
    font-size: 0.92rem;
    line-height: 1.42;
}

#tn-search-overlay .tn-search__starter span {
    display: block;
    font-size: 0.8rem;
    color: #8fb0d3;
}

@media (min-width: 1200px) {
    body.tn-ai-lab-page.tn-chatbot-open #lab-unified .tn-services-tech__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-tools .tn-services-tech__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-orchestration .tn-services-tech__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-bridge .tn-lab-bridge__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-faq .tn-faq__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-intake .tn-services-cta__inner,
    body.tn-ai-lab-page.tn-chatbot-open #lab-alignment .tn-services-cta__inner {
        margin-right: clamp(320px, var(--tn-ai-lab-chat-reserve, 380px), 560px);
        transition: margin-right 0.24s ease;
    }
}

@media (max-width: 600px) {
    .tn-ai-lab-page .tn-chatbot__panel {
        width: calc(100vw - 1rem) !important;
        max-width: calc(100vw - 1rem) !important;
        height: min(60dvh, calc(100dvh - 8rem)) !important;
        max-height: min(60dvh, calc(100dvh - 8rem)) !important;
        border-radius: 12px !important;
    }
}

/* =============================================================
   PLAN 096E: conversion clarity + pro stability polish
   ============================================================= */
body.tn-ai-lab-page a[data-tn-talk-strategy] {
    transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease,
        box-shadow 160ms ease;
}

body.tn-ai-lab-page a[data-tn-talk-strategy]:hover,
body.tn-ai-lab-page a[data-tn-talk-strategy]:focus-visible {
    color: #f0fdff !important;
    text-decoration-color: rgba(84, 216, 207, 0.92) !important;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

body.tn-ai-lab-page .tn-lab-scenario-card:hover,
body.tn-ai-lab-page .tn-lab-scenario-card:focus-visible {
    border-color: rgba(84, 216, 207, 0.88) !important;
    background: linear-gradient(
        150deg,
        rgba(17, 38, 61, 0.94),
        rgba(15, 52, 76, 0.9)
    ) !important;
    color: #eef8ff !important;
}

body.tn-ai-lab-page .tn-lab-scenario-card:hover .tn-lab-scenario-card__pillar,
body.tn-ai-lab-page .tn-lab-scenario-card:focus-visible .tn-lab-scenario-card__pillar {
    color: #9ef3e7 !important;
}

@media (min-width: 1024px) {
    body.tn-ai-lab-page.tn-lab-view-pro #lab-unified,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-pulse,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-orchestration,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-tools {
        display: block !important;
        visibility: visible !important;
        min-height: 220px !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

body.tn-ai-lab-page.tn-lab-theme-industrial .tn-services-tech__narrative,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-theme-industrial .tn-lab-unified__steps li {
    font-size: 0.97rem !important;
    line-height: 1.46 !important;
}

@media (max-width: 900px) {
    body.tn-ai-lab-page .tn-chatbot__panel {
        width: calc(100vw - 1rem) !important;
        max-width: calc(100vw - 1rem) !important;
        height: min(56dvh, calc(100dvh - 8.5rem)) !important;
        max-height: min(56dvh, calc(100dvh - 8.5rem)) !important;
    }
}

/* =============================================================
   AI LAB A11Y hardening
   - keep a readable H1 fallback when gradient text clipping is unavailable
   - support forced-colors mode with explicit text color
   ============================================================= */
body.tn-ai-lab-page .tn-page-hero__heading {
    color: #e8f3ff !important;
    -webkit-text-fill-color: currentColor;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    body.tn-ai-lab-page .tn-page-hero__heading {
        -webkit-text-fill-color: transparent;
    }
}

@media (forced-colors: active) {
    body.tn-ai-lab-page .tn-page-hero__heading {
        background: none !important;
        color: CanvasText !important;
        -webkit-text-fill-color: CanvasText !important;
        text-shadow: none !important;
    }
}

/* =============================================================
   AI LAB UX hardening pass
   - defensive layout containment for pulse disclosure
   - reduce guided cognitive load
   - improve readability contrast
   - prevent duplicate cookie-consent surfaces on AI Lab
   ============================================================= */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__disclosure,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
    overflow: hidden;
    contain: layout inline-size paint;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary > * {
    min-width: 0;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
    flex: 1 1 auto;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-section-rail,
body.tn-ai-lab-page.tn-lab-view-guided [data-lab-rail] {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell__grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-tabs__hint {
    display: none !important;
}

body.tn-ai-lab-page .tn-services-tech__narrative,
body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer,
body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer p {
    color: #d5e8f9 !important;
}

body.tn-ai-lab-page .tn-lab-system-pulse,
body.tn-ai-lab-page .tn-lab-system-pulse__disclosure,
body.tn-ai-lab-page .tn-lab-system-pulse__inner {
    overflow-x: clip !important;
}

@supports not (overflow: clip) {
    body.tn-ai-lab-page .tn-lab-system-pulse,
    body.tn-ai-lab-page .tn-lab-system-pulse__disclosure,
    body.tn-ai-lab-page .tn-lab-system-pulse__inner {
        overflow-x: hidden !important;
    }
}

body.tn-ai-lab-page .tn-lab-scenario-notice[hidden] {
    display: none !important;
}

body.tn-ai-lab-page .cmplz-manage-consent-container {
    display: none !important;
}

body.tn-ai-lab-page #cmplz-manage-consent {
    display: none !important;
}

@media (max-width: 900px) {
    body.tn-ai-lab-page.tn-lab-view-pro #tn-chatbot .tn-chatbot__panel {
        width: min(360px, calc(100vw - 18px)) !important;
        max-width: min(360px, calc(100vw - 18px)) !important;
        height: min(72vh, 560px) !important;
        max-height: min(72vh, 560px) !important;
    }
}

@media (max-width: 600px) {
    body.tn-ai-lab-page.tn-lab-view-pro #tn-chatbot {
        right: 8px !important;
        bottom: 8px !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #tn-chatbot .tn-chatbot__panel {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        height: min(68vh, 520px) !important;
        max-height: min(68vh, 520px) !important;
    }
}

/* =============================================================
   PLAN 096F: final stabilization and audit closure
   - neutralize legacy dense micro-typography in Guided
   - enforce deterministic Pro header/command strip visibility
   - prevent pulse disclosure width shifts after toggle
   - raise interaction touch targets and readability floor
   ============================================================= */
body.tn-ai-lab-page.tn-lab-view-guided [data-lab-rail] {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell,
body.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
    display: block !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #tn-lab-pro-shell,
body.tn-ai-lab-page.tn-lab-view-guided #lab-command-strip {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__heading {
    font-size: clamp(2.4rem, 4vw, 3.8rem) !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-services-tech__narrative,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__summary,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__technical-note,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__target,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__fallback,
body.tn-ai-lab-page.tn-lab-view-guided #lab-unified .tn-lab-unified__steps li {
    font-size: 0.97rem !important;
    line-height: 1.45 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__badge {
    font-size: 0.84rem !important;
    letter-spacing: 0.14em !important;
}

body.tn-ai-lab-page .tn-page-hero__ctas .tn-page-hero__cta,
body.tn-ai-lab-page #lab-unified .tn-ai-actions .tn-ai-btn,
body.tn-ai-lab-page #lab-unified .tn-lab-unified__next-actions .tn-ai-btn,
body.tn-ai-lab-page #lab-unified .tn-lab-unified__continuity-actions .tn-ai-btn,
body.tn-ai-lab-page .tn-lab-pro-header__back,
body.tn-ai-lab-page .tn-lab-pro-header__nav a,
body.tn-ai-lab-page .tn-lab-utility-footer__links a {
    min-height: 44px !important;
    font-size: 0.9rem !important;
}

body.tn-ai-lab-page .tn-lab-pro-header__title,
body.tn-ai-lab-page .tn-lab-command-strip__heading,
body.tn-ai-lab-page .tn-lab-hero-metric__label {
    font-size: 0.9rem !important;
    line-height: 1.3 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.5rem;
    contain: none !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

body.tn-ai-lab-page .tn-lab-system-pulse__disclosure,
body.tn-ai-lab-page .tn-lab-system-pulse__disclosure[open] {
    max-width: 100% !important;
    overflow-x: clip !important;
}

body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node::before,
body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node::after {
    z-index: 2;
}

@media (max-width: 900px) {
    body.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
        display: block !important;
    }

    body.tn-ai-lab-page .tn-lab-pro-header__inner,
    body.tn-ai-lab-page .tn-lab-command-strip__inner {
        padding: 0.62rem !important;
    }
}

/* =============================================================
   PLAN 096G: final UX rigor pass
   - tighten guided disclosure layout stability
   - remove non-essential keyboard hint copy from primary flow
   - enforce touch-target floor on high-frequency links/buttons
   - keep Pro mobile rail from overlaying content
   ============================================================= */
body.tn-ai-lab-page .tn-lab-tabs__hint {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
    grid-template-columns: max-content minmax(0, 1fr) auto !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live {
    max-width: 100%;
}

body.tn-ai-lab-page .tn-lab-hero__kb-context a,
body.tn-ai-lab-page .tn-lab-bridge__actions a,
body.tn-ai-lab-page .tn-services-cta__alt a,
body.tn-ai-lab-page .tn-lab-viz__replay,
body.tn-ai-lab-page .tn-lab-viz-trace__links a,
body.tn-ai-lab-page .tn-lab-kb__question,
body.tn-ai-lab-page .tn-lab-kb__question > span,
body.tn-ai-lab-page .tn-lab-section-rail__list a {
    min-height: 44px !important;
}

body.tn-ai-lab-page .tn-lab-hero__kb-context a,
body.tn-ai-lab-page .tn-lab-bridge__actions a,
body.tn-ai-lab-page .tn-services-cta__alt a {
    display: inline-flex;
    align-items: center;
}

body.tn-ai-lab-page .tn-lab-kb__question {
    align-items: center;
}

@media (min-width: 901px) and (max-width: 1320px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: min(760px, 100%);
        justify-self: center;
    }
}

@media (max-width: 1023px) {
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-section-rail,
    body.tn-ai-lab-page.tn-lab-view-pro [data-lab-rail] {
        display: none !important;
    }
}

/* =============================================================
   PLAN 096H: guided-first readability + mobile Pro containment
   - neutralize legacy dense compaction defaults
   - normalize horizontal gutters and spacing rhythm
   - keep Pro mobile surfaces stacked (no overlap bleed)
   - keep telemetry disclosure stable below 400px
   ============================================================= */
body.tn-ai-lab-page .back-to-top,
body.tn-ai-lab-page a.back-to-top,
body.tn-ai-lab-page #back-to-top {
    display: none !important;
}

html.tn-lab-view-guided,
html.tn-lab-view-pro,
body.tn-ai-lab-page,
body.tn-ai-lab-page #page {
    background: #060b14 !important;
}

body.tn-ai-lab-page {
    color: #d9eaf9 !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-faq__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-utility-footer {
    max-width: min(1760px, calc(100vw - clamp(24px, 4vw, 72px))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-cta {
    padding-inline: clamp(12px, 2vw, 24px) !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas {
    margin: 0.72rem 0 0 !important;
    justify-content: flex-start !important;
    gap: 0.58rem !important;
    flex-wrap: wrap !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__cta,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-hint,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls [data-lab-footprint-toggle] {
    min-height: 40px !important;
    width: auto !important;
    font-size: 0.9rem !important;
    line-height: 1.2 !important;
    padding: 0.44rem 0.86rem !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__text,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__kb-context,
body.tn-ai-lab-page .tn-services-tech__narrative,
body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer,
body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer p {
    font-size: 1rem !important;
    line-height: 1.52 !important;
    color: #d9eaf9 !important;
}

body.tn-ai-lab-page .tn-lab-unified__input-hint,
body.tn-ai-lab-page .tn-lab-unified__route-guidance {
    text-align: left !important;
}

body.tn-ai-lab-page .tn-lab-unified__route-target[hidden],
body.tn-ai-lab-page .tn-lab-unified__continuity[hidden] {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.tn-ai-lab-page .tn-lab-viz__status,
body.tn-ai-lab-page .tn-lab-viz__live-link,
body.tn-ai-lab-page .tn-lab-viz__meta,
body.tn-ai-lab-page .tn-lab-viz__history-btn,
body.tn-ai-lab-page .tn-lab-viz__replay,
body.tn-ai-lab-page .tn-lab-viz-trace__title,
body.tn-ai-lab-page .tn-lab-viz-trace__connection,
body.tn-ai-lab-page .tn-lab-viz-trace__stats span,
body.tn-ai-lab-page .tn-lab-viz-trace__empty,
body.tn-ai-lab-page .tn-lab-pulse-card__label,
body.tn-ai-lab-page .tn-lab-pulse-board__meta {
    font-size: 0.84rem !important;
    line-height: 1.34 !important;
}

@media (min-width: 880px) and (max-width: 1540px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-presets {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-scenario-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        max-width: min(780px, 100%);
    }
}

@media (min-width: 768px) {
    body.tn-ai-lab-page .tn-lab-viz__nodes .tn-lab-viz__node:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 50%;
        right: -0.54rem;
        width: 0.48rem;
        height: 2px;
        border-radius: 999px;
        transform: translateY(-50%);
        background: rgba(109, 142, 174, 0.56);
        z-index: 1;
        pointer-events: none;
    }
}

@media (max-width: 1100px) {
    body.tn-ai-lab-page.tn-lab-view-pro .tn-page-hero.tn-lab-hero,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-system-pulse,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-architecture-strip,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-proof-block {
        display: none !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
        position: sticky !important;
        z-index: 46 !important;
        background: rgba(8, 18, 30, 0.96) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #tn-lab-pro-shell {
        top: var(--tn-lab-shell-top-offset, 64px) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #lab-command-strip {
        top: calc(var(--tn-lab-shell-top-offset, 64px) + 52px) !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__grid,
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-shell__main {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.tn-ai-lab-page.tn-lab-view-pro #lab-unified,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-pulse,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-orchestration,
    body.tn-ai-lab-page.tn-lab-view-pro #lab-tools {
        display: block !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

@media (max-width: 399px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 0.32rem 0.4rem !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-live,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__summary-meta {
        grid-column: 1 / -1;
        white-space: normal !important;
        text-overflow: clip !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__inner {
        gap: 0.44rem !important;
    }

    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__providers,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__today,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__lifetime,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-system-pulse__controls {
        width: 100%;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
        gap: 0.42rem !important;
    }
}

/* =============================================================
   PLAN 096I: post-audit closure hardening (scoped to mobile by Plan 092)
   - Mobile guided keeps normal document scroll (no shell capture)
   - Desktop guided uses Plan 092 SCADA shell containment
   ============================================================= */
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided [data-lab-scroll-region],
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-shell__grid,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-shell__main {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-section-rail,
body.tn-ai-lab-page.tn-lab-view-guided [data-lab-rail] {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-proof-block {
    display: block !important;
    margin: 0 0 10px !important;
    border: 1px solid rgba(92, 149, 197, 0.46) !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, rgba(9, 21, 35, 0.95), rgba(6, 14, 24, 0.98)) !important;
    box-shadow:
        0 0 0 1px rgba(84, 216, 207, 0.12) inset,
        0 10px 24px rgba(3, 12, 21, 0.34);
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-proof-block__text {
    font-size: 0.96rem !important;
    line-height: 1.48 !important;
    color: #dcedfc !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav {
    max-width: min(1240px, calc(100% - 2rem));
    margin: 0 auto 10px;
    padding: 0 20px;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.tn-lab-grid-nav {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.46rem !important;
    align-items: center;
}

body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-guided-nav {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided #lab-tools .tn-lab-tier-map,
body.tn-ai-lab-page.tn-lab-view-guided #lab-tools [data-tn-lab-tabs] {
    display: none !important;
}

body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-tools-teaser {
    display: block;
    margin-top: 0.9rem;
    border: 1px solid rgba(82, 126, 170, 0.46);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(11, 23, 37, 0.92), rgba(8, 17, 29, 0.98));
    padding: 0.92rem 0.96rem;
}

body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-tools-teaser {
    display: none !important;
}

/* Plan 092: SCADA compact hero — small heading, hide description. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__heading {
    margin: 0 !important;
    font-size: clamp(1.1rem, 1.8vw, 1.5rem) !important;
    line-height: 1.2 !important;
    max-width: none !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__text {
    display: block !important;
    max-width: 720px;
    margin-top: 0.5rem !important;
    font-size: 0.94rem !important;
    line-height: 1.55 !important;
    color: #a8c4de !important;
    opacity: 0.9;
}

@media (max-width: 1100px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.tn-lab-grid-nav {
        display: none !important;
    }
}

body.tn-ai-lab-page .tn-lab-tools-teaser__intro {
    margin: 0 0 0.82rem;
    color: #d7e9fb;
    font-size: 0.95rem;
    line-height: 1.5;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.72rem;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__card {
    border: 1px solid rgba(82, 124, 166, 0.42);
    border-radius: 12px;
    background: rgba(10, 21, 34, 0.72);
    padding: 0.72rem 0.8rem;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__label {
    display: inline-flex;
    margin-bottom: 0.45rem;
    color: #54d7cc;
    font-size: 0.77rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__card strong {
    display: block;
    color: #e5f2ff;
    font-size: 0.96rem;
    line-height: 1.35;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__card p {
    margin: 0.36rem 0 0;
    color: #a9c4dd;
    font-size: 0.88rem;
    line-height: 1.5;
}

body.tn-ai-lab-page .tn-lab-tools-teaser__actions {
    margin: 0.88rem 0 0;
}

body.tn-ai-lab-page.tn-lab-view-guided #tn-chatbot {
    display: block !important;
}

@media (max-width: 767px) {
    body.tn-ai-lab-page .tn-lab-tools-teaser__grid {
        grid-template-columns: 1fr;
    }
}

body.tn-ai-lab-page .tn-lab-viz__history-btn {
    min-height: 44px !important;
    min-width: 60px !important;
    padding: 0.42rem 0.76rem !important;
    font-size: 0.86rem !important;
    line-height: 1.2 !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Plan 092 SCADA Viewport Contract — Guided Desktop
   Body and html are locked (overflow: hidden) so the document never scrolls.
   The shell__main owns the scroll region for all guided content sections.
   ────────────────────────────────────────────────────────────────────────── */
html.tn-lab-scada-desktop {
    height: 100% !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop > header,
body.tn-ai-lab-page.tn-lab-scada-desktop > .tn-header {
    flex: 0 0 auto !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .site-content {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop .site-content .container {
    height: 100% !important;
    overflow: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop #primary {
    height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Keep pulse disclosure from introducing horizontal drift on expand/collapse. */
body.tn-ai-lab-page .tn-lab-system-pulse,
body.tn-ai-lab-page .tn-lab-system-pulse__disclosure,
body.tn-ai-lab-page .tn-lab-system-pulse__inner {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}

/* Rail and flow navigation targets meet 44px touch floor. */
body.tn-ai-lab-page .tn-lab-section-rail__list a,
body.tn-ai-lab-page .tn-lab-viz__history-btn {
    min-height: 44px !important;
    align-items: center !important;
}

/* Tooltip readability hardening */
body.tn-ai-lab-page .tn-lab-tooltip {
    color: #eaf4ff !important;
    background: rgba(7, 17, 30, 0.96) !important;
    border: 1px solid rgba(90, 141, 187, 0.76) !important;
    border-radius: 10px !important;
    box-shadow:
        0 12px 28px rgba(2, 10, 18, 0.58),
        0 0 0 1px rgba(82, 214, 203, 0.12) inset !important;
    padding: 0.48rem 0.62rem !important;
    font-family: var(--tn-font-body) !important;
    font-size: 0.82rem !important;
    line-height: 1.34 !important;
    letter-spacing: 0.01em !important;
    text-shadow: none !important;
    opacity: 0;
    transition: opacity 0.14s ease;
}

body.tn-ai-lab-page .tn-lab-tooltip.is-visible {
    opacity: 1;
}

body.tn-ai-lab-page .tn-lab-tooltip[hidden] {
    display: none !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Plan 092 SCADA Viewport Contract — Mobile Reset
   Mobile/tablet uses normal document scroll. Undo desktop containment.
   ────────────────────────────────────────────────────────────────────────── */
html.tn-lab-scada-mobile {
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile {
    height: auto !important;
    min-height: 100vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .site-content,
body.tn-ai-lab-page.tn-lab-scada-mobile .site-content .container,
body.tn-ai-lab-page.tn-lab-scada-mobile #primary {
    height: auto !important;
    overflow: visible !important;
}

body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__grid,
body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__main {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

/* Mobile: show footer in Guided mode. */
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided footer.tn-footer,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-utility-footer {
    display: block !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Plan 092 SCADA — White Floor Prevention
   Ensure no white/transparent background leaks below the shell.
   ────────────────────────────────────────────────────────────────────────── */
body.tn-ai-lab-page.tn-lab-scada-desktop {
    background: var(--tn-lab-surface, #0d1926) !important;
}

html.tn-lab-scada-desktop {
    background: var(--tn-lab-surface, #0d1926) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   PLAN 097: Mobile & Tablet Excellence
   Horizontal overflow fixes, touch-target compliance, hero optimization,
   typography cleanup, and mobile shell UX enhancement.
   ══════════════════════════════════════════════════════════════════════════ */

/* --- 097-A: Pulse drawer mobile containment --- */
@media (max-width: 480px) {
    .tn-lab-pulse-drawer {
        width: 100vw !important;
        max-width: 100vw !important;
    }
}

/* --- 097-B: Viz replay button + container overflow fix --- */
body.tn-ai-lab-page .tn-lab-viz {
    overflow: hidden !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.tn-ai-lab-page .tn-lab-viz__replay {
    max-width: 100% !important;
    white-space: normal !important;
    word-break: break-word !important;
    box-sizing: border-box !important;
}

body.tn-ai-lab-page .tn-lab-viz__top,
body.tn-ai-lab-page .tn-lab-viz__status-wrap {
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* --- 097-C: State badge overflow fix (Galaxy Fold) --- */
body.tn-ai-lab-page .tn-lab-viz__header {
    flex-wrap: wrap !important;
    max-width: 100% !important;
}

body.tn-ai-lab-page .tn-lab-state {
    flex-shrink: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* --- 097-D: Touch target compliance (mobile) --- */
@media (max-width: 1024px) {
    /* Hero CTAs: enforce 44px minimum (match guided-view specificity) */
    body.tn-ai-lab-page .tn-page-hero__cta,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__cta {
        min-height: 44px !important;
        padding-top: 0.55rem !important;
        padding-bottom: 0.55rem !important;
    }

    /* Pulse card drill buttons */
    body.tn-ai-lab-page .tn-lab-pulse-card__drill {
        min-height: 44px !important;
        min-width: 44px !important;
        padding: 0.5rem 0.75rem !important;
        font-size: 0.82rem !important;
    }

    /* Pulse drawer close button */
    body.tn-ai-lab-page .tn-lab-pulse-drawer__close {
        min-height: 44px !important;
        min-width: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* Kicker links (Bridge, Intake, Align) */
    body.tn-ai-lab-page .tn-lab-bridge__kicker-link,
    body.tn-ai-lab-page .tn-lab-cta-kicker__link {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        padding: 0.5rem 0.75rem !important;
    }

    /* Viz history buttons */
    body.tn-ai-lab-page .tn-lab-viz__history-btn {
        min-height: 44px !important;
        min-width: 44px !important;
        padding: 0.5rem 0.65rem !important;
    }

    /* Pro console ghost button */
    body.tn-ai-lab-page .tn-ai-btn--ghost {
        min-height: 44px !important;
        padding: 0.5rem 0.75rem !important;
    }

    /* Contact form submit */
    body.tn-ai-lab-page .wpcf7-submit {
        min-height: 44px !important;
    }
}

/* --- 097-E: Mobile hero optimization --- */
@media (max-width: 768px) {
    /* Compact hero: reduce to ~35-40% of viewport */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-hero,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero.tn-lab-hero {
        padding: 12px 12px 8px !important;
    }

    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__heading {
        font-size: clamp(1.4rem, 5.5vw, 2rem) !important;
        line-height: 1.15 !important;
        margin-bottom: 0.35rem !important;
    }

    /* Hide hero metrics on mobile (always show "syncing" anyway) */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-hero__metrics {
        display: none !important;
    }

    /* Tighten hero subline */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-hero__subline {
        display: none !important;
    }

    /* Compact hero text */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__text {
        font-size: 0.88rem !important;
        line-height: 1.4 !important;
        margin-bottom: 0.3rem !important;
        -webkit-line-clamp: 3 !important;
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    /* Compact hero badge — minimum 12px */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__badge {
        font-size: 12px !important;
        padding: 0.22rem 0.56rem !important;
        margin-bottom: 0.35rem !important;
    }

    /* Tighter hero CTAs on mobile */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__ctas {
        margin-top: 0.5rem !important;
        gap: 0.4rem !important;
    }

    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-page-hero__cta,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-page-hero__cta {
        min-height: 44px !important;
        font-size: 0.88rem !important;
        padding: 0.55rem 0.85rem !important;
    }

    /* Hide KB context on mobile — too much vertical space */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-hero__kb-context {
        display: none !important;
    }

    /* Compact hero inner grid */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-hero__inner {
        gap: 0.25rem !important;
    }
}

/* --- 097-F: Typography floor (mobile) --- */
@media (max-width: 768px) {
    /* Minimum 12px for all AI Lab text */
    body.tn-ai-lab-page .tn-ai-label {
        font-size: 12px !important;
    }

    body.tn-ai-lab-page .tn-lab-pulse-card__drill {
        font-size: 12px !important;
    }

    body.tn-ai-lab-page .tn-lab-viz__history-label {
        font-size: 12px !important;
    }

    body.tn-ai-lab-page .tn-lab-state {
        font-size: 12px !important;
        padding: 0.35rem 0.5rem !important;
    }

    body.tn-ai-lab-page .tn-lab-pulse-card__value {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-lab-viz__node-label,
    body.tn-ai-lab-page .tn-lab-viz__node-time {
        font-size: 13px !important;
    }

    /* System pulse text */
    body.tn-ai-lab-page .tn-lab-system-pulse__providers,
    body.tn-ai-lab-page .tn-lab-system-pulse__today {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-lab-system-pulse__sync {
        font-size: 13px !important;
    }

    /* Scenario card text */
    body.tn-ai-lab-page .tn-lab-scenario-card__pillar {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-lab-scenario-card__desc {
        font-size: 13px !important;
    }

    /* Unified input area */
    body.tn-ai-lab-page .tn-lab-unified__input-hint {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-ai-btn {
        font-size: 13px !important;
    }

    /* Pulse card labels */
    body.tn-ai-lab-page .tn-lab-pulse-card__label {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-lab-pulse-board__meta {
        font-size: 13px !important;
    }

    /* Viz status text */
    body.tn-ai-lab-page .tn-lab-viz__status {
        font-size: 13px !important;
    }

    body.tn-ai-lab-page .tn-lab-viz__live-link {
        font-size: 13px !important;
    }
}

/* --- 097-G: Mobile system pulse compaction --- */
@media (max-width: 768px) {
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse {
        padding: 6px 10px !important;
    }

    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-proof-block {
        padding: 6px 10px !important;
        font-size: 13px !important;
    }
}

/* --- 097-H: Galaxy Fold / ultra-narrow screen safety --- */
@media (max-width: 320px) {
    body.tn-ai-lab-page .tn-page-hero__heading {
        font-size: 1.25rem !important;
        line-height: 1.2 !important;
        word-break: break-word !important;
    }

    body.tn-ai-lab-page .tn-page-hero__text {
        font-size: 0.82rem !important;
    }

    body.tn-ai-lab-page .tn-page-hero__ctas {
        flex-direction: column !important;
        gap: 0.35rem !important;
    }

    body.tn-ai-lab-page .tn-page-hero__cta {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
    }

    body.tn-ai-lab-page .tn-lab-scenario-presets {
        grid-template-columns: 1fr !important;
    }

    body.tn-ai-lab-page .tn-lab-system-pulse__providers {
        flex-wrap: wrap !important;
    }

    body.tn-ai-lab-page .tn-lab-viz {
        padding: 0.5rem !important;
    }

    body.tn-ai-lab-page .tn-lab-viz__nodes {
        gap: 0.25rem !important;
    }

    body.tn-ai-lab-page .tn-lab-viz__node {
        min-width: 0 !important;
        flex-shrink: 1 !important;
    }

    body.tn-ai-lab-page .tn-lab-pulse-board__cards {
        grid-template-columns: 1fr !important;
    }

    /* Ensure drawer is full width on narrow screens */
    .tn-lab-pulse-drawer {
        width: 100vw !important;
    }
}

/* --- 097-I: Tablet touch optimization --- */
@media (min-width: 769px) and (max-width: 1024px) {
    /* Ensure CTA height is touch-friendly on tablets */
    body.tn-ai-lab-page .tn-page-hero__cta,
    body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__cta {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Ensure buttons have adequate spacing */
    body.tn-ai-lab-page .tn-lab-pulse-card__drill {
        min-height: 44px !important;
        font-size: 13px !important;
        padding: 0.5rem 0.75rem !important;
    }

    body.tn-ai-lab-page .tn-lab-state {
        font-size: 12px !important;
        padding: 0.3rem 0.56rem !important;
    }

    /* Tablet hero doesn't need to be as aggressive */
    body.tn-ai-lab-page .tn-page-hero__heading {
        font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
    }

    /* Provider rows */
    body.tn-ai-lab-page .tn-lab-provider-row {
        min-height: 44px !important;
    }

    /* Header brand and CTA on AI Lab page */
    body.tn-ai-lab-page .tn-header__brand {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    body.tn-ai-lab-page .tn-header__cta {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Nav links on AI Lab page */
    body.tn-ai-lab-page .main-navigation a {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }
}

/* --- 097-J: Provider row & remaining touch targets (all touch devices) --- */
@media (max-width: 1024px) {
    body.tn-ai-lab-page .tn-lab-provider-row {
        min-height: 44px !important;
        display: flex !important;
        align-items: center !important;
    }

    /* Header brand on AI Lab page */
    body.tn-ai-lab-page .tn-header__brand {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Section head kickers (Pulse, Flow, Tools, Insights) */
    body.tn-ai-lab-page .tn-lab-section-head__kicker {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Compact Shell toggle + any outline CTA variant */
    body.tn-ai-lab-page .tn-page-hero__cta--outline {
        min-height: 44px !important;
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Generate Operating Plan and other tn-ai-btn */
    body.tn-ai-lab-page .tn-ai-btn {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* Theme navigation links on AI Lab page */
    body.tn-ai-lab-page #site-navigation a,
    body.tn-ai-lab-page .primary-menu a,
    body.tn-ai-lab-page .main-navigation a {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   PLAN 098: Expert Review Remediation
   Show hero text, show footer, fix hero overflow, heading hierarchy help.
   ══════════════════════════════════════════════════════════════════════════ */

/* --- 098-A: Show hero description text in guided desktop SCADA mode ---
   The review correctly identifies that first-time visitors need supporting
   copy below the H1 before they see CTAs. Compact to 2 lines max so it
   doesn't break the SCADA containment contract. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-page-hero__text {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-size: 0.82rem !important;
    line-height: 1.35 !important;
    margin-top: 0.2rem !important;
    margin-bottom: 0 !important;
    color: #b8d0e8 !important;
    max-width: 72ch !important;
}

/* --- 098-B: Show utility footer in guided desktop mode ---
   Page must not end abruptly. Show footer after the shell content.
   On desktop SCADA the shell scrolls internally, so the footer sits
   at the bottom of the shell scroll area. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-utility-footer {
    display: block !important;
}

/* On non-SCADA (mobile, generic guided), also ensure footer shows */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-utility-footer {
    display: block !important;
}

/* --- 098-C: Hero horizontal overflow containment ---
   CTA pseudo-elements and hero inner content cause ~122px overflow.
   Constrain the hero inner and CTA areas. */
body.tn-ai-lab-page .tn-lab-hero__inner {
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

body.tn-ai-lab-page .tn-page-hero__ctas {
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Constrain CTA pseudo-element glow/gradient from overflowing */
body.tn-ai-lab-page .tn-page-hero__cta--primary::after {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* --- 098-D: Resume button hidden state when no prior session --- */
body.tn-ai-lab-page [data-continuity-resume][disabled] {
    display: none !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   PLAN 099: AI Lab Scroll Architecture & UX Overhaul
   Fix broken scroll architecture, section nav, hero simplification,
   visual order, and accessibility improvements.
   ══════════════════════════════════════════════════════════════════════════ */

/* 099-4: Section rail visible in guided desktop (overrides display:none) */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-section-rail {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    left: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 100 !important;
    width: auto !important;
    height: auto !important;
    max-height: 80vh !important;
    overflow-y: auto !important;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* 099-4b: Rail visible state (toggled by JS IntersectionObserver) */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-section-rail.is-099-visible {
    opacity: 1 !important;
    pointer-events: auto !important;
}

body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided [data-lab-rail] {
    display: block !important;
}

/* 099-4c: Content offset when rail visible — JS toggles padding dynamically */

/* 099-4d: Hide horizontal pill nav when rail is active (avoid dual nav) */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-guided-nav.is-099-hidden {
    display: none !important;
}

/* 099-5: Visual order — Align before Intake */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell__main {
    display: flex !important;
    flex-direction: column !important;
}

/* Order matches nav: ...05 Bridge, 06 KB (id=lab-faq), 07 Intake, 08 Align */
body.tn-ai-lab-page.tn-lab-view-guided #lab-bridge {
    order: 50 !important;
}
body.tn-ai-lab-page.tn-lab-view-guided #lab-faq {
    order: 60 !important;
}
body.tn-ai-lab-page.tn-lab-view-guided #lab-intake {
    order: 70 !important;
}
body.tn-ai-lab-page.tn-lab-view-guided #lab-alignment {
    order: 80 !important;
}

/* 099-10: Hero simplification — hide breadcrumb on AI Lab */
body.tn-ai-lab-page .breadcrumb,
body.tn-ai-lab-page .breadcrumbs,
body.tn-ai-lab-page .trail-items,
body.tn-ai-lab-page [class*="breadcrumb"] {
    display: none !important;
}

/* 099-11: Pro Console microcopy subtitle */
.tn-099-pro-subtitle {
    display: block;
    font-size: 0.7rem;
    opacity: 0.7;
    font-weight: normal;
    margin-top: 2px;
}

/* 099-13: Signal to Ship callout in Bridge */
.tn-099-signal-ship {
    margin: 1rem 0;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(79, 121, 167, 0.4);
    border-radius: 8px;
    background: rgba(9, 21, 35, 0.6);
    color: #8ab4d8;
    font-size: 0.88rem;
    line-height: 1.5;
}

/* 099-FAB: Prevent chatbot FAB from overlapping footer links */
body.tn-ai-lab-page .site-footer .footer-b,
body.tn-ai-lab-page .site-footer .footer-bottom {
    padding-right: 80px !important;
}

/* =============================================================
   099-CARDS: Modern orchestration pipeline cards
   Replaces flat green bordered cards with glassmorphic design
   ============================================================= */

/* --- Node cards: base --- */
body.tn-ai-lab-page .tn-lab-viz__node {
    position: relative;
    border: 1px solid rgba(100, 140, 185, 0.28) !important;
    border-radius: 14px !important;
    background:
        linear-gradient(
            168deg,
            rgba(25, 45, 72, 0.72) 0%,
            rgba(14, 28, 48, 0.88) 50%,
            rgba(10, 22, 38, 0.94) 100%
        ) !important;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    box-shadow:
        0 1px 0 0 rgba(140, 180, 220, 0.08) inset,
        0 4px 16px -4px rgba(0, 0, 0, 0.4),
        0 1px 3px rgba(0, 0, 0, 0.2);
    padding: 1rem 0.72rem 0.7rem !important;
    min-height: 100px !important;
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease,
        background 0.3s ease !important;
}

body.tn-ai-lab-page .tn-lab-viz__node:hover {
    border-color: rgba(130, 170, 215, 0.42) !important;
    box-shadow:
        0 1px 0 0 rgba(140, 180, 220, 0.12) inset,
        0 8px 24px -4px rgba(0, 0, 0, 0.45),
        0 2px 6px rgba(0, 0, 0, 0.25);
    transform: translateY(-2px);
}

/* --- Status dot: modern glow ring --- */
body.tn-ai-lab-page .tn-lab-viz__node::before {
    content: "" !important;
    position: absolute !important;
    top: 0.62rem !important;
    left: 0.62rem !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 999px !important;
    border: none !important;
    background: rgba(130, 165, 200, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(130, 165, 200, 0.12) !important;
    transition: background 0.3s ease, box-shadow 0.3s ease !important;
}

/* --- Labels: upgrade typography --- */
body.tn-ai-lab-page .tn-lab-viz__node-label {
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    color: #d5e4f4 !important;
    text-transform: uppercase;
    margin-top: 0.32rem !important;
}

/* --- Time badges: modern pill --- */
body.tn-ai-lab-page .tn-lab-viz__node-time {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 4rem !important;
    padding: 0.22rem 0.6rem !important;
    border: 1px solid rgba(100, 140, 185, 0.3) !important;
    border-radius: 999px !important;
    background: rgba(6, 14, 26, 0.7) !important;
    color: #b8d0ea !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.03em;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

/* --- Connector lines between cards --- */
body.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node:not(:last-child)::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    right: calc(-0.52rem - 2px) !important;
    width: calc(0.52rem + 2px) !important;
    height: 2px !important;
    background: linear-gradient(90deg, rgba(100, 140, 185, 0.2), rgba(100, 140, 185, 0.5)) !important;
    border-radius: 999px !important;
    transform: translateY(-50%) !important;
    box-shadow: none !important;
    animation: none !important;
}

/* --- IDLE state --- */
body.tn-ai-lab-page .tn-lab-viz__node.is-idle {
    border-color: rgba(80, 115, 155, 0.22) !important;
    background:
        linear-gradient(
            168deg,
            rgba(22, 38, 60, 0.65) 0%,
            rgba(12, 24, 42, 0.82) 100%
        ) !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-idle .tn-lab-viz__node-label {
    color: #8ea8c4 !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-idle .tn-lab-viz__node-time {
    color: #7a96b4 !important;
    border-color: rgba(80, 115, 155, 0.25) !important;
}

/* --- ACTIVE state: teal accent --- */
body.tn-ai-lab-page .tn-lab-viz__node.is-active {
    border-color: rgba(57, 208, 195, 0.45) !important;
    background:
        linear-gradient(
            168deg,
            rgba(16, 62, 68, 0.75) 0%,
            rgba(10, 42, 52, 0.9) 50%,
            rgba(8, 32, 42, 0.95) 100%
        ) !important;
    box-shadow:
        0 1px 0 0 rgba(57, 208, 195, 0.1) inset,
        0 0 20px -4px rgba(57, 208, 195, 0.15),
        0 4px 16px -4px rgba(0, 0, 0, 0.4) !important;
    animation: none !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-active::before {
    background: rgba(57, 208, 195, 0.9) !important;
    box-shadow:
        0 0 0 3px rgba(57, 208, 195, 0.2),
        0 0 8px rgba(57, 208, 195, 0.4) !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-active .tn-lab-viz__node-label {
    color: #d4fff8 !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-active .tn-lab-viz__node-time {
    border-color: rgba(57, 208, 195, 0.4) !important;
    background: rgba(8, 42, 48, 0.85) !important;
    color: #c8fff6 !important;
}

/* Active connector: animated glow */
body.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node.is-active:not(:last-child)::after {
    background: linear-gradient(90deg, rgba(57, 208, 195, 0.3), rgba(57, 208, 195, 0.9)) !important;
    box-shadow: 0 0 6px rgba(57, 208, 195, 0.35) !important;
    animation: tn-lab-link-flow 0.95s linear infinite !important;
}

/* --- COMPLETE state: green accent --- */
body.tn-ai-lab-page .tn-lab-viz__node.is-complete {
    border-color: rgba(105, 213, 159, 0.35) !important;
    background:
        linear-gradient(
            168deg,
            rgba(18, 55, 45, 0.72) 0%,
            rgba(12, 40, 34, 0.88) 50%,
            rgba(8, 30, 26, 0.94) 100%
        ) !important;
    box-shadow:
        0 1px 0 0 rgba(105, 213, 159, 0.08) inset,
        0 4px 16px -4px rgba(0, 0, 0, 0.4),
        0 1px 3px rgba(0, 0, 0, 0.2) !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-complete::before {
    background: rgba(105, 213, 159, 0.9) !important;
    box-shadow:
        0 0 0 3px rgba(105, 213, 159, 0.18),
        0 0 6px rgba(105, 213, 159, 0.3) !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-complete .tn-lab-viz__node-label {
    color: #d8ffe9 !important;
}

body.tn-ai-lab-page .tn-lab-viz__node.is-complete .tn-lab-viz__node-time {
    border-color: rgba(105, 213, 159, 0.35) !important;
    background: rgba(14, 48, 38, 0.85) !important;
    color: #c8ffde !important;
}

/* Complete connector */
body.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row .tn-lab-viz__node.is-complete:not(:last-child)::after {
    background: linear-gradient(90deg, rgba(105, 213, 159, 0.35), rgba(105, 213, 159, 0.85)) !important;
    box-shadow: 0 0 6px rgba(105, 213, 159, 0.25) !important;
}

/* Replay connector */
body.tn-ai-lab-page .tn-lab-viz__nodes.is-single-row.is-replaying .tn-lab-viz__node:not(:last-child)::after {
    background: linear-gradient(
        90deg,
        rgba(121, 162, 208, 0.24) 0%,
        rgba(121, 162, 208, 0.85) 52%,
        rgba(121, 162, 208, 0.24) 100%
    ) !important;
    background-size: 190% 100% !important;
    box-shadow: 0 0 6px rgba(121, 162, 208, 0.25) !important;
    animation: tn-lab-link-replay 1.05s linear infinite !important;
    animation-delay: calc(var(--tn-node-index, 0) * 90ms) !important;
}

/* --- History bar: match card style --- */
body.tn-ai-lab-page .tn-lab-viz__history {
    border: 1px solid rgba(100, 140, 185, 0.22) !important;
    border-radius: 12px !important;
    background: rgba(10, 20, 34, 0.6) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

body.tn-ai-lab-page .tn-lab-viz__history-btn {
    border: 1px solid rgba(100, 140, 185, 0.3) !important;
    border-radius: 999px !important;
    background: rgba(14, 28, 48, 0.6) !important;
    font-size: 0.66rem !important;
    font-weight: 700 !important;
    padding: 0.28rem 0.68rem !important;
    transition: all 0.2s ease !important;
}

body.tn-ai-lab-page .tn-lab-viz__history-btn:hover:not(:disabled) {
    border-color: rgba(57, 208, 195, 0.6) !important;
    background: rgba(57, 208, 195, 0.14) !important;
    color: #d4fff8 !important;
}

/* --- Grid gap for connectors --- */
body.tn-ai-lab-page .tn-lab-viz__nodes {
    gap: 0.72rem !important;
}

/* =============================================================
   099-STICKY: Sticky pill nav (replaces section rail)
   ============================================================= */

/* Remove rail entirely */
body.tn-ai-lab-page .tn-lab-section-rail {
    display: none !important;
}

/* Remove rail padding from main content */
body.tn-ai-lab-page .tn-lab-shell__main {
    padding-left: 0 !important;
}

/* Pill nav: sticky behavior when scrolled past hero */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.is-sticky {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10010;
    margin: 0 !important;
    max-width: none !important;
    padding: 0.52rem 1.5rem !important;
    background: rgba(8, 16, 28, 0.88) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    backdrop-filter: blur(16px) saturate(1.4);
    border-bottom: 1px solid rgba(100, 140, 185, 0.18);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
    justify-content: center !important;
    animation: tn-pill-sticky-in 0.25s ease both;
}

/* Push content below the fixed nav */
body.tn-ai-lab-page .tn-lab-guided-nav.is-sticky + * {
    scroll-margin-top: 52px;
}

/* Account for admin bar */
.admin-bar.tn-ai-lab-page .tn-lab-guided-nav.is-sticky {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar.tn-ai-lab-page .tn-lab-guided-nav.is-sticky {
        top: 46px;
    }
}

/* Slide-in animation */
@keyframes tn-pill-sticky-in {
    from {
        opacity: 0;
        transform: translateY(-100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Active pill styling */
body.tn-ai-lab-page .tn-lab-grid-nav a.is-active {
    border-color: rgba(57, 208, 195, 0.72) !important;
    background: rgba(57, 208, 195, 0.18) !important;
    color: #c8fff6 !important;
    box-shadow: 0 0 8px rgba(57, 208, 195, 0.15);
}

/* Pill hover when already active */
body.tn-ai-lab-page .tn-lab-grid-nav a.is-active:hover {
    background: rgba(57, 208, 195, 0.28) !important;
}

/* Never hide pill nav anymore (remove old is-099-hidden rule) */
body.tn-ai-lab-page .tn-lab-guided-nav.is-099-hidden {
    display: flex !important;
}

/* On smaller screens where pills were hidden, keep them visible when sticky */
@media (max-width: 1100px) {
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.tn-lab-grid-nav.is-sticky {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.tn-lab-grid-nav.is-sticky::-webkit-scrollbar {
        display: none;
    }
    body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-guided-nav.tn-lab-grid-nav.is-sticky a {
        white-space: nowrap;
        flex-shrink: 0;
    }
}

/* =============================================================
   099-METRICS: Balanced pulse card metric layouts
   ============================================================= */

/* 2-column grid: forces exactly 2 columns */
.tn-ai-lab-page .tn-lab-metrics--2col {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Full-width: single metric spanning full card width */
.tn-ai-lab-page .tn-lab-metrics--full {
    grid-template-columns: 1fr !important;
}

.tn-ai-lab-page .tn-lab-metrics--full .tn-lab-metric {
    text-align: center;
}

.tn-ai-lab-page .tn-lab-metrics--full .tn-lab-metric__value {
    font-size: 1.1rem;
}

/* Spacing between metric groups within a card */
.tn-ai-lab-page .tn-lab-metrics + .tn-lab-metrics {
    margin-top: 0.36rem;
}

/* Fix text overflow in metric labels */
.tn-ai-lab-page .tn-lab-metric__label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tn-ai-lab-page .tn-lab-metric__value {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Provider list followed by metrics needs spacing */
.tn-ai-lab-page .tn-lab-provider-list + .tn-lab-metrics {
    margin-top: 0.5rem;
}

/* Trend grid after metrics needs spacing */
.tn-ai-lab-page .tn-lab-metrics + .tn-lab-trend-grid {
    margin-top: 0.36rem;
}

/* Sentiment bar after trend grid or metrics */
.tn-ai-lab-page .tn-lab-metrics + .tn-lab-sentiment,
.tn-ai-lab-page .tn-lab-trend-grid + .tn-lab-sentiment {
    margin-top: 0.36rem;
}

/* Sentiment bar followed by metrics */
.tn-ai-lab-page .tn-lab-sentiment + .tn-lab-metrics {
    margin-top: 0.36rem;
}

/* =========================================================================
   ALIGNMENT STANDARDISATION — Plan 099
   JS applies inline text-align via style.setProperty() to bypass UCSS.
   This CSS rule handles the ::after pseudo-element (not reachable from JS).
   ========================================================================= */

/* Heading underline: left-align when JS adds .tn-align-left class */
.tn-ai-lab-page .tn-services__section-heading.tn-align-left::after {
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* =========================================================================
   UI POLISH — Plan 099 Review Pass
   Addresses critique: eyebrow weight, card sentence case, button payoff,
   secondary CTA visual hierarchy.
   ========================================================================= */

/* 1. Eyebrow label — strip the outlined pill, whisper the context */
.tn-ai-lab-page .tn-page-hero__badge {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    color: rgba(144, 186, 181, 0.58) !important;
    text-transform: uppercase !important;
    display: block !important;
    margin-bottom: 1rem !important;
}

/* 2. Scenario cards — sentence case on title and description */
body.tn-ai-lab-page .tn-lab-scenario-card__title,
body.tn-ai-lab-page .tn-lab-scenario-card__desc {
    text-transform: none !important;
}

/* 3. Generate Operating Plan — this is the payoff, not a footnote */
body.tn-ai-lab-page .tn-lab-unified__form .tn-ai-btn[type="submit"] {
    width: 100% !important;
    padding: 0.9rem 1.5rem !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.06em !important;
    margin-top: 0.85rem !important;
    border-radius: 10px !important;
    justify-content: center !important;
    box-shadow: 0 4px 18px rgba(94, 7, 122, 0.28) !important;
}
body.tn-ai-lab-page .tn-lab-unified__form .tn-ai-btn[type="submit"]:hover {
    box-shadow: 0 8px 28px rgba(94, 7, 122, 0.4) !important;
}

/* 4a. Form hint — hidden via CSS (LiteSpeed JS bundle caching bypass) */
body.tn-ai-lab-page .tn-lab-unified__input-hint {
    display: none !important;
}

/* 4b. Pro Console subtitle span — hidden via CSS */
body.tn-ai-lab-page .tn-099-pro-subtitle {
    display: none !important;
}

/* 4. Open Pro Console — visually subordinate, not equal weight to primary */
.tn-ai-lab-page .tn-page-hero__cta--outline {
    border-color: rgba(144, 186, 181, 0.28) !important;
    background: transparent !important;
    color: rgba(144, 186, 181, 0.65) !important;
    font-weight: 500 !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.04em !important;
    box-shadow: none !important;
}
.tn-ai-lab-page .tn-page-hero__cta--outline:hover {
    border-color: rgba(144, 186, 181, 0.55) !important;
    color: rgba(144, 186, 181, 0.9) !important;
    background: rgba(144, 186, 181, 0.06) !important;
    transform: none !important;
}

/* =========================================================================
   UI POLISH — Pass 2
   Hero vertical stack, form double-border, card resting affordance
   ========================================================================= */

/* P2-1. Hero CTAs — vertical stack, primary dominates, secondary text-link */
body.tn-ai-lab-page .tn-page-hero__ctas {
    flex-direction: column !important;
    align-items: center !important;
    gap: 0.55rem !important;
}
body.tn-ai-lab-page .tn-page-hero__cta--primary {
    min-width: min(260px, 90%) !important;
    justify-content: center !important;
}
/* Demote outline to bare text-link */
body.tn-ai-lab-page .tn-page-hero__cta--outline {
    border: none !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.1rem !important;
    min-height: unset !important;
    font-size: 0.77rem !important;
}
body.tn-ai-lab-page .tn-page-hero__cta--outline::after {
    content: ' \2192'; /* → */
    display: inline;
}
body.tn-ai-lab-page .tn-page-hero__cta--outline:hover {
    border: none !important;
    background: transparent !important;
    transform: none !important;
    box-shadow: none !important;
}

/* P2-2. Form container — strip outer border, let textarea anchor the section */
body.tn-ai-lab-page .tn-lab-unified {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* P2-3. Scenario cards — resting arrow + stronger hover */
body.tn-ai-lab-page .tn-lab-scenario-card {
    position: relative !important;
    padding-bottom: 2.4rem !important;
}
body.tn-ai-lab-page .tn-lab-scenario-card::after {
    content: '\2192';
    position: absolute;
    bottom: 0.72rem;
    right: 0.82rem;
    font-size: 0.82rem;
    color: rgba(57, 208, 195, 0.3);
    transition: color 0.2s ease, transform 0.2s ease;
    pointer-events: none;
    line-height: 1;
}
body.tn-ai-lab-page .tn-lab-scenario-card:hover,
body.tn-ai-lab-page .tn-lab-scenario-card:focus-visible {
    border-color: rgba(57, 208, 195, 0.78) !important;
    box-shadow: 0 0 0 1px rgba(57, 208, 195, 0.16), 0 6px 22px rgba(57, 208, 195, 0.14) !important;
    background: rgba(12, 28, 48, 0.96) !important;
}
body.tn-ai-lab-page .tn-lab-scenario-card:hover::after,
body.tn-ai-lab-page .tn-lab-scenario-card:focus-visible::after {
    color: rgba(57, 208, 195, 0.9);
    transform: translateX(4px);
}

/* =========================================================================
   Hero centered column — eyebrow → headline → subtext → CTAs, all centered.
   Overrides the left-start alignment baked into the grid template areas.
   ========================================================================= */
body.tn-ai-lab-page .tn-lab-hero__content {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-items: center !important;
    gap: 0 !important;
}
body.tn-ai-lab-page .tn-page-hero__text {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.tn-ai-lab-page .tn-page-hero__ctas {
    justify-content: center !important;
    align-items: center !important;
    align-self: center !important;
}

/* Collapse guided-view hero grid to single centered column.
   Must match the 3-class specificity of the rule at line ~21500
   which places "ctas" in its own right column. */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__content {
    grid-template-columns: 1fr !important;
    grid-template-areas:
        "badge"
        "heading"
        "text"
        "ctas"
        "kb" !important;
    justify-items: center !important;
    align-items: center !important;
    column-gap: 0 !important;
}
body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero__ctas {
    justify-content: center !important;
    align-items: center !important;
    grid-area: ctas;
}

/* =========================================================================
   PASS 3 — Border Audit + Margin Normalization
   Rule: only interactive leaf elements keep borders.
   Container/wrapper elements use background + shadow to define space.
   ========================================================================= */

/* 1. Section wrapper inners — remove border, background + shadow define the section */
body.tn-ai-lab-page .tn-services-tech__inner {
    border: none !important;
}

/* 2. Pulse board wrapper — the 5 pulse cards already group the content */
body.tn-ai-lab-page .tn-lab-pulse-board {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* 3. Tools teaser wrapper — the 4 cards define the grid on their own */
body.tn-ai-lab-page .tn-lab-tools-teaser {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin-top: 0.9rem;
}

/* 4. KB FAQ inner container — already nested inside __inner, double-border */
body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* 5. KB items — full box borders → clean bottom dividers */
body.tn-ai-lab-page .tn-lab-kb .tn-faq__item,
body.tn-ai-lab-page .tn-lab-kb .tn-faq__item:first-child {
    border: none !important;
    border-bottom: 1px solid rgba(78, 112, 149, 0.22) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.tn-ai-lab-page .tn-lab-kb .tn-faq__item:first-child {
    border-top: 1px solid rgba(78, 112, 149, 0.22) !important;
}
/* Open state: subtle teal tint instead of full box glow */
body.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] {
    border-bottom-color: rgba(57, 208, 195, 0.38) !important;
    box-shadow: none !important;
}
/* Keep the left accent on answer text — it earns its place */
body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer {
    border-left: 2px solid rgba(57, 208, 195, 0.52) !important;
}

/* --- Margin Normalization ---
   Unified max-width + auto centering on all section inner containers.
   Kills the left-edge drift (0 → 46px) by locking every section
   to the same horizontal rhythm. */
body.tn-ai-lab-page .tn-services-tech__inner,
body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
    max-width: min(1160px, calc(100% - 2.5rem)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* faq__inner is the KB section's equivalent of __inner — match the 16px horizontal inset */
body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
    padding: 0 16px !important;
}

/* =========================================================================
   PASS 3 CONT — Centering, Tools grid, Intake alignment, Mobile
   ========================================================================= */

/* 1. Shell + section centering — defeat the margin: 0 !important from scada-desktop rules.
      Use both physical and logical margin properties to ensure cross-browser coverage. */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-view-guided .tn-faq {
    margin-left: auto !important;
    margin-right: auto !important;
}
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-shell,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq {
    margin-left: auto !important;
    margin-right: auto !important;
    margin-inline: auto !important;
}

/* 2. Intake "responds within" trust line — JS injects with margin-left:0, fix it */
body.tn-ai-lab-page .tn-lab-098-trust {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    display: block !important;
}

/* 3. Tools section — let teaser grid fill full width; constrain only the text elements */
body.tn-ai-lab-page .tn-lab-tools .tn-lab-section-head {
    max-width: none !important;
}
body.tn-ai-lab-page .tn-lab-tools .tn-services__section-heading,
body.tn-ai-lab-page .tn-lab-tools .tn-lab-section-head__kicker,
body.tn-ai-lab-page .tn-lab-tools .tn-services-tech__narrative {
    max-width: 760px;
}
/* Expand teaser grid to use full available width */
body.tn-ai-lab-page .tn-lab-tools-teaser__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
@media (max-width: 900px) {
    body.tn-ai-lab-page .tn-lab-tools-teaser__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* 4. Mobile — ensure scenario cards stack single column below 640px */
@media (max-width: 640px) {
    body.tn-ai-lab-page .tn-lab-scenario-presets {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================================
   PASS 4 — Vertical Spacing (scada-desktop only)
   Root cause fix: overly-broad 3-class rules ballooned mobile to 11,238px.
   All spacing increases are now scoped to tn-lab-scada-desktop to avoid
   impacting scada-mobile and mobile layouts.
   ========================================================================= */

/* 1. Inter-section bottom padding: 12px → 40px
      Scoped to scada-desktop+guided only — original 4-class rule. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq {
    padding: 0 0 40px !important;
}

/* 2. Inner container vertical padding: ~14px → 28px.
      Scoped to scada-desktop+guided only to prevent mobile balloon. */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-tech__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-services-cta__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge__inner,
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-faq__inner {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
}

/* 3. Hero internal spacing — restore row gap for non-scada mobile views
      where all hero rows (heading, subtext, CTAs, kb) are visible. */
body.tn-ai-lab-page.tn-lab-view-guided .tn-lab-hero__content {
    row-gap: 0.55rem !important;
}
/* Scada-desktop+guided has subtext/kb hidden — keep it compact */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-hero__content {
    row-gap: 0.22rem !important;
}

/* 4. Bridge inline padding matching services-cta/services-tech (scada-desktop only). */
body.tn-ai-lab-page.tn-lab-scada-desktop.tn-lab-view-guided .tn-lab-bridge {
    padding-inline: clamp(12px, 2vw, 24px) !important;
}

/* ============================================================
   === PLAN 101: PIPELINE VIZ ===
   ============================================================ */

/* --- Container + SVG overlay --- */
.tn-pipe-wrap {
    width: 100%;
    position: relative;
}
.tn-pipe-track {
    position: relative;
}
.tn-pipe-svg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
    z-index: 0;
}

/* --- Node grid --- */
.tn-pipe-nodes {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    padding: 2rem 0;
    position: relative;
    z-index: 1;
}
.tn-pipe-node-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
}

/* --- Node circle --- */
.tn-pipe-node {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(42, 58, 80, 0.9);
    box-shadow: 0 0 0 1.5px rgba(57, 208, 195, 0), inset 0 1px 0 rgba(255,255,255,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.28s ease, box-shadow 0.28s ease;
}

/* --- Glow pseudo-element --- */
.tn-pipe-node::before {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(57, 208, 195, 0.5) 0%, transparent 70%);
    filter: blur(14px);
    opacity: 0;
    transform: translateZ(0);
    will-change: opacity;
    z-index: -1;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- State: idle --- */
.tn-pipe-node.is-idle {
    background: rgba(30, 42, 58, 0.7);
    box-shadow: 0 0 0 1px rgba(200, 220, 240, 0.08), inset 0 1px 0 rgba(255,255,255,0.04);
}
.tn-pipe-node.is-idle .tn-pipe-icon {
    stroke: rgba(200, 220, 240, 0.25);
}

/* --- State: active --- */
.tn-pipe-node.is-active {
    background: rgba(57, 208, 195, 0.15);
    box-shadow: 0 0 0 1.5px #39d0c3, inset 0 1px 0 rgba(255,255,255,0.10);
}
.tn-pipe-node.is-active::before {
    opacity: 1;
}
.tn-pipe-node.is-active .tn-pipe-icon {
    stroke: #39d0c3;
}

/* --- State: complete --- */
.tn-pipe-node.is-complete {
    background: rgba(16, 185, 129, 0.12);
    box-shadow: 0 0 0 1.5px #10b981, inset 0 1px 0 rgba(255,255,255,0.08);
}
.tn-pipe-node.is-complete::before {
    background: radial-gradient(circle, rgba(16, 185, 129, 0.45) 0%, transparent 70%);
    opacity: 0.7;
}
.tn-pipe-node.is-complete .tn-pipe-icon {
    stroke: #10b981;
}

/* --- Icon --- */
.tn-pipe-icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.28s ease;
}

/* --- Label + timing --- */
.tn-pipe-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.065em;
    color: rgba(200, 220, 240, 0.55);
    text-align: center;
    line-height: 1.2;
}
.tn-pipe-time {
    font-size: 0.6rem;
    font-family: monospace;
    color: #39d0c3;
    min-height: 0.85rem;
    text-align: center;
}

/* --- Meta row --- */
.tn-pipe-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0 0.75rem;
}
.tn-pipe-status {
    font-size: 0.72rem;
    color: rgba(200, 220, 240, 0.5);
    margin: 0;
}
.tn-pipe-replay {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    border: 1px solid rgba(57, 208, 195, 0.4);
    color: #39d0c3;
    font-size: 0.68rem;
    padding: 0.28rem 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
.tn-pipe-replay:hover:not(:disabled) {
    background: rgba(57, 208, 195, 0.08);
    border-color: #39d0c3;
}
.tn-pipe-replay:disabled {
    opacity: 0.35;
    cursor: default;
}

/* --- Trace panel --- */
.tn-pipe-trace {
    border-top: 1px solid rgba(255,255,255,0.08);
}
.tn-pipe-trace__toggle {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0;
    cursor: pointer;
    color: rgba(200, 220, 240, 0.5);
    font-size: 0.68rem;
}
.tn-pipe-trace__toggle:hover {
    color: rgba(200, 220, 240, 0.8);
}
.tn-pipe-trace__chevron {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    margin-bottom: 2px;
    flex-shrink: 0;
}
.tn-pipe-trace__toggle[aria-expanded="true"] .tn-pipe-trace__chevron {
    transform: rotate(-135deg);
    margin-bottom: -2px;
}
.tn-pipe-trace__body {
    padding-bottom: 0.75rem;
    overflow: hidden;
    transition: max-height 280ms cubic-bezier(0.4, 0, 0.2, 1);
}
.tn-pipe-trace__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.25rem 0 0.6rem;
}
.tn-pipe-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 4px;
    padding: 0.22rem 0.5rem;
    font-size: 0.64rem;
}
.tn-pipe-stat__k {
    color: rgba(200, 220, 240, 0.4);
}
.tn-pipe-stat__v {
    color: rgba(200, 220, 240, 0.85);
    font-family: monospace;
}
.tn-pipe-trace__log {
    max-height: 200px;
    overflow-y: auto;
    font-size: 0.68rem;
    font-family: monospace;
    line-height: 1.55;
    color: rgba(200, 220, 240, 0.6);
}
.tn-pipe-trace__empty {
    color: rgba(200, 220, 240, 0.3);
    font-size: 0.68rem;
    margin: 0.25rem 0;
}

/* --- Log entry type colors --- */
.tn-trace-route  { color: #39d0c3; }
.tn-trace-memory { color: #a78bfa; }
.tn-trace-qual   { color: #10b981; }
.tn-trace-err    { color: #f87171; }

/* --- Responsive: tablet 640–1023px (4+3 layout) --- */
@media (min-width: 640px) and (max-width: 1023px) {
    .tn-pipe-nodes {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* --- Responsive: mobile <640px (vertical stack) --- */
@media (max-width: 639px) {
    .tn-pipe-nodes {
        grid-template-columns: 1fr;
        max-width: 220px;
        margin: 0 auto;
        padding: 1rem 0;
    }
    .tn-pipe-node-cell {
        flex-direction: row;
        align-items: center;
        gap: 0.75rem;
    }
    .tn-pipe-node {
        width: 36px;
        height: 36px;
        flex-shrink: 0;
    }
    .tn-pipe-node::before {
        inset: -8px;
    }
    .tn-pipe-icon {
        width: 14px;
        height: 14px;
    }
    .tn-pipe-label {
        text-align: left;
    }
    .tn-pipe-time {
        text-align: left;
    }
}

/* ============================================================
   === PLAN 101: MOBILE POLISH FIXES ===
   ============================================================ */

/* --- 4a: Align section top padding --- */
@media (max-width: 640px) {
    .tn-ai-lab-page .tn-lab-cta-band {
        padding-top: 24px !important;
    }
}

/* --- 4b: Intake section padding — tight on mobile --- */
@media (max-width: 640px) {
    .tn-ai-lab-page .tn-ai-lab-intake {
        padding-top: 24px !important;
        padding-bottom: 12px !important;
    }
}

/* --- 4c: Knowledge Base full width --- */
@media (max-width: 640px) {
    .tn-ai-lab-page .tn-lab-kb .tn-faq__inner,
    .tn-ai-lab-page .tn-lab-kb__list {
        max-width: 100% !important;
        width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* --- 4d: Pulse drill button anchored to card bottom --- */
@media (max-width: 640px) {
    .tn-lab-pulse-card__drill {
        top: auto !important;
        bottom: 0.5rem !important;
        right: 0.56rem !important;
        min-height: 32px !important;
        padding: 0.28rem 0.62rem !important;
        font-size: 0.6rem !important;
    }
    .tn-lab-pulse-card {
        min-height: 100px !important;
        padding-bottom: 2.5rem !important;
    }
}

/* --- 4e: Scenario cards — pillar badge colors (all viewports) --- */
.tn-lab-scenario-card[data-scenario="ai-strategy"] .tn-lab-scenario-card__pillar {
    background: rgba(57, 208, 195, 0.16);
    color: #39d0c3;
}
.tn-lab-scenario-card[data-scenario="product-strategy"] .tn-lab-scenario-card__pillar {
    background: rgba(124, 58, 237, 0.16);
    color: #a78bfa;
}
.tn-lab-scenario-card[data-scenario="governance"] .tn-lab-scenario-card__pillar {
    background: rgba(251, 146, 60, 0.14);
    color: #fb923c;
}
.tn-lab-scenario-card[data-scenario="operational-readiness"] .tn-lab-scenario-card__pillar {
    background: rgba(16, 185, 129, 0.14);
    color: #10b981;
}

/* --- 4e: Scenario cards — mobile layout --- */
@media (max-width: 640px) {
    .tn-lab-scenario-presets {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.75rem !important;
        width: 100% !important;
    }
    .tn-lab-scenario-card {
        width: 100% !important;
        min-height: 56px !important;
        text-align: left !important;
        padding: 1rem 1.1rem !important;
    }
    .tn-lab-scenario-card__pillar {
        display: inline-block;
        padding: 0.18rem 0.55rem;
        border-radius: 999px;
        font-size: 0.62rem;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        margin-bottom: 0.35rem;
    }
}

/* =========================================================================
   PLAN 102 — AI Lab Mobile Layout & Footer Recovery (2026-03-15)
   Diagnostic: Chrome DevTools MCP at 375px iPhone SE.
   Root causes: 18px guided-gutter wastes 36px at mobile, KB grid columns
   hardcode badge+chevron leaving 42px for question text, tools grid forced
   to 2-col by !important cascade, footer suppressed in PHP.
   ========================================================================= */

/* --- 102-1: Reduce guided gutter on mobile — reclaim screen width --- */
@media (max-width: 640px) {
    body.tn-ai-lab-page.tn-lab-view-guided {
        --tn-lab-guided-gutter: 8px !important;
    }

    /* Hero: match shell width — override guided-max to use new gutter */
    body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero {
        max-width: calc(100vw - 16px) !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    /* Normalize KB section padding — was 24px, now matches others at 12px */
    body.tn-ai-lab-page #lab-faq {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    /* KB inner card — tighter padding to maximize text space */
    body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
        padding: 0.8rem 0.6rem !important;
    }

    /* Sections inside shell: ensure consistent 10px padding */
    body.tn-ai-lab-page .tn-lab-shell__main > section,
    body.tn-ai-lab-page .tn-lab-shell__main > div {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

/* --- 102-2a: KB section — hide redundant kicker pill (says same as h2) --- */
body.tn-ai-lab-page #lab-faq .tn-lab-section-head__kicker {
    display: none !important;
}

/* --- 102-2b: KB accordion — editorial minimal mobile refactor --- */
/* Design: "Editorial Minimal" — inspired by Linear, Vercel, Stripe FAQ patterns.
   Question text is the ONLY focal point. Badge is a subtle prefix.
   Indicator is a single clean chevron that rotates. Items separated by
   hairline borders, not heavy card boxes. Open state uses teal accent bar.
   Strips all nested padding layers that ate 34% of viewport width. */
@media (max-width: 640px) {

    /* --- Container: strip decorative inner card on mobile --- */
    body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner {
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        background: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        max-width: 100% !important;
        overflow: visible !important;
    }
    body.tn-ai-lab-page .tn-ai-lab-faq .tn-faq__inner::before {
        display: none !important;
    }

    /* --- List: full width, no nested padding --- */
    body.tn-ai-lab-page .tn-lab-kb__list {
        width: 100% !important;
        padding: 0 !important;
        gap: 0 !important;
    }

    /* --- Items: hairline-separated rows, not bordered cards --- */
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item,
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item:first-child {
        border: none !important;
        border-bottom: 1px solid rgba(78, 112, 149, 0.25) !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item:last-child {
        border-bottom: none !important;
    }
    /* Open item: subtle teal left accent */
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] {
        border-left: 2px solid rgba(57, 208, 195, 0.6) !important;
        border-bottom-color: rgba(57, 208, 195, 0.2) !important;
        background: rgba(57, 208, 195, 0.03) !important;
    }

    /* --- Summary row: question-dominant flexbox --- */
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__question {
        display: flex !important;
        align-items: flex-start !important;
        gap: 0 !important;
        padding: 14px 12px 14px 14px !important;
        min-height: 0 !important;
        cursor: pointer !important;
    }

    /* --- Badge: tiny muted prefix, not a visual object --- */
    body.tn-ai-lab-page .tn-lab-kb__record {
        display: none !important;
    }

    /* --- Question text: THE primary element --- */
    body.tn-ai-lab-page .tn-lab-kb__prompt {
        flex: 1 !important;
        min-width: 0 !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        font-size: 0.9rem !important;
        font-weight: 600 !important;
        line-height: 1.4 !important;
        color: #d9e9fb !important;
        padding-right: 8px !important;
    }

    /* --- Chevron: single clean rotating indicator --- */
    /* Hide the literal ">" text character from HTML */
    body.tn-ai-lab-page .tn-lab-kb__chevron {
        width: 20px !important;
        height: 20px !important;
        flex-shrink: 0 !important;
        margin-top: 2px !important;
        border: none !important;
        border-radius: 0 !important;
        background: none !important;
        font-size: 0 !important;
        color: transparent !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        transition: transform 0.25s ease !important;
    }
    /* Single clean chevron via ::after — small, teal, points right */
    body.tn-ai-lab-page .tn-lab-kb__chevron::after {
        content: '' !important;
        display: block !important;
        width: 7px !important;
        height: 7px !important;
        border-right: 2px solid rgba(57, 208, 195, 0.6) !important;
        border-bottom: 2px solid rgba(57, 208, 195, 0.6) !important;
        border-left: none !important;
        border-top: none !important;
        transform: rotate(-45deg) !important;
        margin-left: -2px !important;
        transition: border-color 0.25s ease !important;
    }
    /* Open state: rotate chevron to point down */
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] .tn-lab-kb__chevron {
        transform: rotate(90deg) !important;
        background: none !important;
        border: none !important;
    }
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__item[open] .tn-lab-kb__chevron::after {
        border-color: rgba(57, 208, 195, 1) !important;
    }

    /* --- Answer: clean block with breathing room --- */
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer {
        margin: 0 14px 14px !important;
        padding: 0 0 0 0 !important;
        border-left: none !important;
        font-size: 0.84rem !important;
        line-height: 1.6 !important;
        color: #a5bbd4 !important;
    }
    body.tn-ai-lab-page .tn-lab-kb .tn-faq__answer p:first-child {
        margin-top: 0 !important;
    }
}

/* --- 102-3: Tools teaser grid — single column on mobile --- */
/* The @media (max-width:900px) rule at ~line 24903 forces repeat(2,1fr)!important
   which overrides the earlier max-width:767px rule. Add mobile-specific override. */
@media (max-width: 640px) {
    body.tn-ai-lab-page .tn-lab-tools-teaser__grid {
        grid-template-columns: 1fr !important;
    }
}

/* --- 102-5: Chatbot FAB — prevent overlap with interactive elements --- */
@media (max-width: 640px) {
    /* Add clearance above FAB for pulse card DETAILS buttons */
    body.tn-ai-lab-page .tn-lab-pulse-card {
        padding-bottom: 3rem !important;
    }

    /* Intake inner — tight bottom padding */
    body.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__inner {
        padding-bottom: 8px !important;
    }

    /* Alt links — redundant on mobile (form is right above, nav has all links) */
    body.tn-ai-lab-page .tn-services-cta__alt {
        display: none !important;
    }

    /* Tighten gap between intake and align sections */
    body.tn-ai-lab-page #lab-alignment {
        margin-top: 8px !important;
        padding-top: 16px !important;
    }
}

/* =========================================================================
   PLAN 103 — AI Lab Mobile Critical Path Redesign (2026-03-15)
   Design philosophy: content to the edges, zero dead vertical space.
   Guided mode: hero → scenarios → KB → intake (5 scrolls, not 13).
   Pro mode: layout fixes (nav, padding).
   All rules scoped to correct body class combinations.
   ========================================================================= */

/* ---------------------------------------------------------------------------
   103-1: GUIDED MOBILE — hide non-critical sections
   These sections remain visible on desktop and in Pro mobile mode.
   --------------------------------------------------------------------------- */
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided #lab-pulse,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided #lab-orchestration,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided #lab-tools,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided #lab-bridge,
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided #lab-alignment {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   103-2: GUIDED MOBILE NAV — show only visible sections
   --------------------------------------------------------------------------- */
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-guided-nav a[href="#lab-pulse"],
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-guided-nav a[href="#lab-orchestration"],
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-guided-nav a[href="#lab-tools"],
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-guided-nav a[href="#lab-bridge"],
body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-guided-nav a[href="#lab-alignment"] {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   103-3: ALL SECTIONS — hide redundant kicker pills (all viewports)
   The kicker says the same as the h2 below it. Already done for KB, now global.
   --------------------------------------------------------------------------- */
body.tn-ai-lab-page .tn-lab-section-head__kicker {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   103-4: PROOF BLOCK — hide on mobile. System pulse already provides
   social proof ("System live, 4/4 providers"). The prose paragraph is
   redundant and wastes 150px.
   --------------------------------------------------------------------------- */
@media (max-width: 640px) {
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-proof-block {
        display: none !important;
    }
}

/* ---------------------------------------------------------------------------
   103-5/6/7 UNIFIED: Width alignment, pulse fix, vertical compression
   TARGET: every content element aligned to 4px left / 371px right (367px wide).
   Zero tolerance for misaligned containers.
   --------------------------------------------------------------------------- */
@media (max-width: 640px) {

    /* === GLOBAL WIDTH RESET === */
    /* Guided gutter: 4px — gives 367px content width */
    body.tn-ai-lab-page.tn-lab-view-guided {
        --tn-lab-guided-gutter: 4px !important;
        --tn-lab-guided-panel-gap: 2px !important;
    }

    /* Hero: match 4px gutter */
    body.tn-ai-lab-page.tn-lab-view-guided .tn-page-hero.tn-lab-hero {
        max-width: calc(100vw - 8px) !important;
        padding: 8px 6px 4px !important;
        margin-bottom: 2px !important;
    }

    /* System pulse: match section widths, no clipping */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse {
        overflow: visible !important;
        padding: 4px 6px !important;
        margin: 0 4px 2px !important;
        width: auto !important;
        max-width: none !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse summary {
        padding: 6px 6px !important;
    }
    /* Hide verbose meta line on mobile — status label is enough */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse__summary-meta {
        display: none !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse details,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse details[open] {
        overflow: visible !important;
    }
    /* Hide overlapping compact/shell toggle button in expanded pulse */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse [data-pulse-compact],
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse [data-pulse-shell],
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse [class*="footprint"],
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse .tn-lab-footprint-toggle,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse button[class*="footprin"] {
        display: none !important;
    }
    /* Dot has 6px box-shadow ring + scale(1.14) animation at peak.
       Total visual radius: ~14px from center. Needs 14px clear from container edge. */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse .tn-lab-live-dot,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse [data-pulse-summary-dot] {
        margin-left: 12px !important;
        margin-right: 6px !important;
        flex-shrink: 0 !important;
    }
    /* Summary: no clipping */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse summary {
        overflow: visible !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse__summary-live {
        overflow: visible !important;
        white-space: nowrap !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse [data-pulse-summary-label] {
        overflow: visible !important;
        white-space: nowrap !important;
    }

    /* Replace "Show/Hide details" text with a rotating chevron */
    /* Pulse chevron — exact copy of KB chevron rules */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse__summary-hint {
        font-size: 0 !important;
        color: rgba(0,0,0,0) !important;
        width: 20px !important;
        height: 20px !important;
        min-width: 20px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
        padding: 0 !important;
        margin: 2px 0 0 !important;
        border: none !important;
        border-radius: 0 !important;
        background: none !important;
        box-sizing: content-box !important;
        overflow: visible !important;
        transition: transform 0.25s ease !important;
        transform: rotate(0deg) !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
        line-height: 1 !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse__summary-hint::before {
        display: none !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse__summary-hint::after {
        content: '' !important;
        display: block !important;
        width: 7px !important;
        height: 7px !important;
        min-width: 7px !important;
        min-height: 7px !important;
        box-sizing: content-box !important;
        border-right: 2px solid rgba(57, 208, 195, 0.6) !important;
        border-bottom: 2px solid rgba(57, 208, 195, 0.6) !important;
        border-left: none !important;
        border-top: none !important;
        transform: rotate(-45deg) !important;
        margin: 0 0 0 -2px !important;
        padding: 0 !important;
        transition: border-color 0.25s ease !important;
    }
    /* Open state: rotate container 90deg (chevron points down) — same as KB */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse details[open] .tn-lab-system-pulse__summary-hint {
        transform: rotate(90deg) !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-system-pulse details[open] .tn-lab-system-pulse__summary-hint::after {
        border-color: rgba(57, 208, 195, 1) !important;
    }

    /* Hide "Open Pro Console" — desktop feature */
    body.tn-ai-lab-page [data-lab-open-pro] {
        display: none !important;
    }

    /* Hide power-user controls below Generate button — mobile is for
       first-touch executives, not return-visit session management.
       Route buttons, session continuity, and status text are desktop features. */
    body.tn-ai-lab-page.tn-lab-scada-mobile [data-route-open],
    body.tn-ai-lab-page.tn-lab-scada-mobile [data-route-retry],
    body.tn-ai-lab-page.tn-lab-scada-mobile [data-continuity-resume],
    body.tn-ai-lab-page.tn-lab-scada-mobile [data-continuity-clear],
    body.tn-ai-lab-page.tn-lab-scada-mobile [data-continuity-status] {
        display: none !important;
    }

    /* === STRIP ALL INNER WRAPPERS — the #1 width killer === */
    /* Must use 3+ body classes to beat the guided view rule at line ~22056
       which sets padding: 0.9rem 1rem !important with 2 body classes */
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-services-tech__inner,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-services-cta__inner,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-lab-bridge__inner,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-guided .tn-faq__inner,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-pro .tn-services-tech__inner,
    body.tn-ai-lab-page.tn-lab-scada-mobile.tn-lab-view-pro .tn-services-cta__inner,
    /* Override ID-qualified max-width: calc(100%-8px) at line ~20287 */
    body.tn-ai-lab-page.tn-lab-scada-mobile:not(.tn-lab-view-pro) #lab-unified .tn-services-tech__inner {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 0 !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* Section padding: uniform 4px vertical, 4px horizontal */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__main > section,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-shell__main > div {
        padding: 4px 4px !important;
    }

    /* Hero inner: also strip max-width constraint */
    body.tn-ai-lab-page.tn-lab-scada-mobile:not(.tn-lab-view-pro) .tn-lab-hero__inner {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* All sections inside shell: uniform padding */
    body.tn-ai-lab-page .tn-lab-shell__main > section,
    body.tn-ai-lab-page .tn-lab-shell__main > div {
        padding: 4px 6px !important;
    }

    /* Section headings: tight margins */
    body.tn-ai-lab-page .tn-lab-section-head {
        margin-bottom: 6px !important;
        max-width: 100% !important;
    }
    body.tn-ai-lab-page .tn-lab-section-head .tn-services__section-heading {
        margin-bottom: 2px !important;
    }
    body.tn-ai-lab-page .tn-lab-section-head .tn-services-tech__narrative {
        margin-bottom: 4px !important;
        max-width: 100% !important;
    }

    /* Scenario cards: full width, tight gaps */
    body.tn-ai-lab-page .tn-lab-scenario-presets {
        gap: 6px !important;
        width: 100% !important;
    }
    body.tn-ai-lab-page .tn-lab-scenario-card {
        width: 100% !important;
    }

    /* Scenario input: tight */
    body.tn-ai-lab-page .tn-lab-scenario-input {
        margin-top: 6px !important;
        padding: 6px 0 0 !important;
        max-width: 100% !important;
    }
    body.tn-ai-lab-page .tn-lab-scenario-input textarea {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Scenario form max-width override */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-scenario-form,
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-lab-scenario-input {
        max-width: 100% !important;
        width: 100% !important;
    }

    /* === KB: already refactored, ensure width === */
    body.tn-ai-lab-page #lab-faq {
        padding: 6px 6px !important;
    }

    /* === INTAKE: dramatically compress === */
    body.tn-ai-lab-page .tn-ai-lab-intake {
        padding: 8px 6px 6px !important;
    }
    /* Intake heading: tight */
    body.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__heading {
        font-size: 1.1rem !important;
        margin-bottom: 4px !important;
    }
    /* Hide the trust/description paragraphs — the form speaks for itself */
    body.tn-ai-lab-page .tn-ai-lab-intake .tn-lab-098-trust,
    body.tn-ai-lab-page .tn-ai-lab-intake .tn-services-cta__text {
        display: none !important;
    }
    /* Intake kicker pill */
    body.tn-ai-lab-page .tn-ai-lab-intake .tn-lab-cta-kicker {
        display: none !important;
    }
    /* Form: full width, tight spacing */
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-ai-lab-intake .tn-services-cta__form {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    body.tn-ai-lab-page.tn-lab-scada-mobile .tn-ai-lab-intake .tn-services-cta__form .wpcf7-form {
        max-width: 100% !important;
    }
    body.tn-ai-lab-page .tn-ai-lab-intake .wpcf7-form p {
        margin-bottom: 6px !important;
    }
    body.tn-ai-lab-page .tn-ai-lab-intake .wpcf7-form textarea {
        min-height: 60px !important;
        height: 60px !important;
    }
}

/* ---------------------------------------------------------------------------
   103-8: PRO MOBILE NAV — fix tab clipping
   --------------------------------------------------------------------------- */
@media (max-width: 640px) {
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__nav {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        flex-wrap: nowrap !important;
        gap: 2px !important;
        scrollbar-width: none !important;
    }
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__nav::-webkit-scrollbar {
        display: none !important;
    }
    body.tn-ai-lab-page.tn-lab-view-pro .tn-lab-pro-header__nav a {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
        font-size: 0.72rem !important;
        padding: 6px 10px !important;
    }
}

/* ===========================================================================
   PLAN 105: AI LAB MOBILE FINISHING PASS
   =========================================================================== */
@media (max-width: 640px) {
    /* 105-1: KB section padding — align with other sections at 4px */
    body.tn-ai-lab-page #lab-faq {
        padding: 4px !important;
    }
}

/* ===========================================================================
   PLAN 106: SITE-WIDE MOBILE POLISH
   Applied at 480px to match existing breakpoints.
   =========================================================================== */
@media (max-width: 480px) {

    /* --- 106-1: SITE-WIDE FOOTER COMPACT ---
       Hide link columns on mobile (all links in nav already).
       Keep brand + CTA only. Target: ~150px footer. */
    .tn-footer__main {
        padding: 20px 12px 12px !important;
    }
    .tn-footer__grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    /* Hide Navigate and Resources columns — redundant with nav */
    .tn-footer__col:not(.tn-footer__col--brand):not(.tn-footer__col--cta) {
        display: none !important;
    }
    .tn-footer__col--brand {
        grid-column: auto !important;
    }
    .tn-footer__col--cta {
        grid-column: auto !important;
        margin-top: 0 !important;
    }
    .tn-footer__desc {
        font-size: 0.82rem !important;
        margin-bottom: 8px !important;
    }
    .tn-footer__tagline {
        margin: 4px 0 8px !important;
    }
    /* Bottom bar */
    .tn-footer__bottom-inner {
        padding: 8px 12px !important;
        flex-direction: column !important;
        gap: 4px !important;
        text-align: center !important;
    }
    .tn-footer__copyright,
    .tn-footer__bottom-links a {
        font-size: 0.72rem !important;
    }

    /* --- 106-2: HOMEPAGE WIDTH STANDARDIZATION ---
       Normalize all homepage sections to consistent 8px side padding. */
    .tn-page-hero {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .tn-page-hero__inner {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* Target the PARENT sections that constrain inner widths */
    .tn-how-i-help,
    .tn-approach,
    .tn-positioning,
    .tn-insights-header {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .tn-how-i-help__inner,
    .tn-approach__inner,
    .tn-positioning__inner,
    .tn-insights-header__inner {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    /* Blog cards on homepage */
    .tn-blog-grid {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .tn-blog-card {
        width: 100% !important;
        max-width: none !important;
    }
}
