/* ===== SECTIONS GENERIC ===== */
.section { display:none; }
.section.active { display:block; }

#main-nav {
    background:var(--bg-dark);
    border-bottom:2px solid var(--accent-red);
    position:sticky;
    top:0;
    z-index:1000;
}
.nav-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 0;
    gap:12px;
    flex-wrap:wrap;
}
.nav-logo {
    font-family:var(--font-hero);
    font-weight:400;
    font-size:var(--text-display);
    color:var(--nav-logo-word1, var(--text-white));
    letter-spacing:var(--font-hero-tracking);
    -webkit-text-stroke:var(--font-hero-stroke-brand) currentColor;
    paint-order:stroke fill;
    white-space:nowrap;
    text-decoration:none;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:2px;
}
.nav-logo:hover { color:var(--nav-logo-word1, var(--text-white)); text-decoration:none; }
.nav-logo .logo-word1 { color:var(--nav-logo-word1, var(--text-white)); }
.nav-logo .red { color:var(--nav-logo-word2, var(--accent-red)); }
.nav-logo .logo-gt {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--accent-red);
    color:var(--text-on-accent, var(--text-white));
    padding:2px 8px;
    font-size:var(--text-small);
    font-family:var(--font-ui);
    font-weight:700;
    -webkit-text-stroke:0;
    margin-right:4px;
}
.nav-logo .logo-dotcom {
    color:var(--nav-logo-word2, var(--accent-red));
    font-size:0.55em;
    font-family:var(--font-hero);
    font-weight:400;
    letter-spacing:0.04em;
    -webkit-text-stroke:0.03em currentColor;
    paint-order:stroke fill;
    align-self:baseline;
    margin-left:2px;
    opacity:1;
}

.nav-links {
    display:flex;
    gap:4px;
    flex-wrap:wrap;
}
.nav-links a {
    display:inline-block;
    padding:6px 14px;
    font-family:var(--font-ui);
    font-size:var(--text-title);
    font-weight:600;
    color:var(--text-muted);
    text-transform:uppercase;
    letter-spacing:.5px;
    border:2px solid transparent;
    transition:all .15s;
    text-decoration:none;
}
.nav-links a:hover {
    color:var(--text-white);
    border-color:var(--border);
    text-decoration:none;
}
.nav-links a.active {
    color:var(--role-brand-text, var(--accent-red));
    border-color:var(--accent-red);
}
.nav-links a[data-pdm-official-external] {
    position:relative;
}
.nav-links a[data-pdm-official-external]::before {
    content:"";
    position:absolute;
    top:-2px;
    left:50%;
    width:11px;
    height:11px;
    margin-left:-5.5px;
    border-radius:50%;
    background:#2ecc71;
    box-shadow:0 0 0 2px color-mix(in srgb, var(--bg-dark, #1a1a1a) 70%, transparent);
    pointer-events:none;
}

.nav-right {
    display:flex;
    align-items:center;
    gap:10px;
}
.nav-prompt-row {
    display:flex;
    justify-content:flex-start;
    align-items:center;
    gap:12px;
    padding:4px 0 6px;
}
.nav-prompt {
    color:var(--role-brand-text, var(--accent-red));
    font-family:var(--font-ui);
    font-weight:700;
    font-size:var(--text-body);

}
.nav-prompt .cursor { animation:blink 1s infinite; }

.nav-links-info {
    display:none;
    padding:12px 0 4px;
    border-top:2px solid var(--border);
    margin-top:8px;
    gap:12px;
    align-items:center;
}
.nav-theme-btn {
    background:none;
    border:2px solid var(--border);
    color:var(--text-muted);
    font-family:var(--font-body);
    font-size:var(--text-small);
    cursor:pointer;
    padding:6px 14px;
    transition:all .2s;
}
.nav-theme-btn:hover { border-color:var(--accent-red); color:var(--text-white); }
@keyframes blink { 0%,50%{opacity:1} 51%,100%{opacity:0} }

.select-mini {
    background:var(--surface);
    border:2px solid var(--border);
    color:var(--text-white);
    padding:6px 10px;
    font-family:var(--font-body);
    font-size:var(--text-title);
    cursor:pointer;
    max-width:180px;
}
.select-mini:focus { border-color:var(--accent-red); outline:none; }

#main-footer {
    background:var(--bg-dark);
    border-top:2px solid var(--border);
    padding:44px 0 52px;
    margin-top:48px;
    overflow-x:hidden;
}
.footer-row {
    display:grid;
    grid-template-columns:minmax(0, 5fr) minmax(0, 3fr);
    gap:32px 40px;
    align-items:start;
}
.footer-main {
    display:flex;
    flex-direction:column;
    gap:0;
    min-width:0;
    align-self:start;
    width:100%;
}
.footer-menus {
    display:flex;
    flex-direction:column;
    gap:0;
    margin:0;
    min-width:0;
}
.footer-menus-primary {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:20px 36px;
}
@media (max-width:900px) {
    .footer-menus-primary {
        grid-template-columns:1fr;
        gap:0;
    }
}
.footer-brand-panel .footer-menus {
    align-self:stretch;
}
.footer-nav {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    margin-bottom:0;
}
.footer-nav-heading {
    font-family:var(--font-ui);
    font-size:var(--text-small);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--text-muted);
    opacity:.68;
    margin-bottom:10px;
}
.footer-nav a {
    display:inline-block;
    padding:5px 0;
    font-family:var(--font-ui);
    font-size:var(--text-body);
    font-weight:500;
    color:var(--text-muted);
    letter-spacing:.02em;
    text-transform:none;
    border:none;
    transition:color .15s;
    text-decoration:none;
    opacity:.9;
}
.footer-nav a:hover {
    color:var(--text-white);
    opacity:1;
    text-decoration:none;
}
.footer-nav a.active {
    color:var(--role-brand-text, var(--accent-red));
    opacity:1;
}
.footer-nav a[data-pdm-official-external] {
    position:relative;
    padding-inline-end:14px;
}
.footer-nav a[data-pdm-official-external]::before {
    content:"";
    position:absolute;
    top:50%;
    inset-inline-end:0;
    left:auto;
    margin-left:0;
    width:7px;
    height:7px;
    transform:translateY(-50%);
    border-radius:50%;
    background:#2ecc71;
    box-shadow:0 0 0 2px color-mix(in srgb, var(--bg-panel, var(--bg-dark, #1a1a1a)) 55%, transparent);
    pointer-events:none;
}
.footer-meta {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:12px 18px;
    margin-top:0;
    padding:20px 32px 22px;
    border:1px solid color-mix(in srgb, var(--border) 80%, var(--accent-red) 20%);
    border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);
    border-radius:0 0 12px 12px;
    background:
        radial-gradient(ellipse 120% 80% at 0% 100%, color-mix(in srgb, var(--accent-red) 8%, transparent) 0%, transparent 55%),
        linear-gradient(145deg, color-mix(in srgb, var(--bg-black) 35%, var(--bg-dark)) 0%, var(--bg-dark) 100%);
}
.footer-meta-copy {
    min-width:0;
    flex:1 1 12rem;
}
.footer-copyright { color:var(--text-muted); font-size:var(--text-body); text-align:left; margin:0; opacity:.82; line-height:var(--leading-relaxed); }
.footer-bottom { color:var(--text-muted); font-size:var(--text-body); text-align:left; margin:10px 0 0; opacity:.68; }
.footer-env-badge {
    display:inline-block;
    margin-left:8px;
    padding:3px 10px;
    font-size:var(--text-small);
    font-weight:700;
    letter-spacing:.5px;
    text-transform:uppercase;
    vertical-align:middle;
    border:1px solid transparent;
    border-radius:3px;
}
.footer-env-badge--preprod {
    background:var(--role-env-preprod-bg);
    color:var(--role-env-preprod-text);
    border-color:var(--role-env-preprod-bg);
}
.footer-env-badge--prod {
    background:var(--role-env-prod-bg);
    color:var(--role-env-prod-text);
    border-color:var(--role-env-prod-bg);
}
.footer-env-badge--selfhosted {
    color:var(--role-env-selfhosted-text);
    background:var(--role-env-selfhosted-bg);
    border-color:color-mix(in srgb, var(--role-env-selfhosted-text) 35%, var(--border));
}

.ws-bar {
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:12px 0;
    align-items:flex-start;
}
.ws-bar-label {
    font-family:var(--font-ui);
    font-size:var(--text-body);
    font-weight:700;
    color:var(--text-muted);
    text-transform:uppercase;
    letter-spacing:1px;
}
.ws-bar-fields {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    align-items:center;
}
.ws-model-name {
    font-family:var(--font-body);
    font-size:var(--text-ui);
    color:var(--text-white);
    background:var(--surface);
    border:2px solid var(--border);
    padding:6px 12px;
}
.ws-settings-link { font-size:var(--text-small); }

