/* ── Layout-switcher tweaks panel ─────────────────────────────────── */
.tweaks-fab-area {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 200;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.tweaks-fab-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--navy-900);
    color: #fff;
    border: 0;
    font-size: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-lg);
    cursor: pointer;
    transition: background 0.15s;
}

.tweaks-fab-btn:hover {
    background: var(--navy-700);
}

.tweaks-popover {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: 16px;
    min-width: 170px;
    animation: pop-in 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.tweaks-popover-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 10px;
}

.tweaks-radio-label {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border-radius: var(--radius-sm);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    color: var(--ink-2);
    transition: background 0.12s, color 0.12s;
}

.tweaks-radio-label:hover {
    background: var(--navy-100);
    color: var(--navy-700);
}

.tweaks-radio-label.active {
    background: var(--navy-100);
    color: var(--navy-700);
    font-weight: 600;
}

.tweaks-radio-label input[type="radio"] {
    accent-color: var(--navy-700);
    cursor: pointer;
}

.tweaks-hint {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: 12px;
    color: var(--muted);
    line-height: 1.6;
}

/* ── Brand panel & shell stacking fix ───────────────────────────── */

/*
 * .pattern-bg uses z-index:-1 so it lands in CSS painting step 2
 * (negative-z children), which is definitively below all content (steps 3-7).
 *
 * z-index:-1 only works as intended when the nearest stacking-context ancestor
 * is the panel or shell itself — otherwise the element goes behind the page
 * body background and disappears.  isolation:isolate creates that context
 * without needing an explicit z-index on the container.
 *
 * .app-shell needs it for the centered layout's full-viewport pattern.
 * .panel-brand needs it for the split/banner/centered panel patterns.
 */
.app-shell {
    isolation: isolate;
}

.panel-brand {
    isolation: isolate;
}

.brand-inner {
    position: relative;
    z-index: 1;
}

/* ── Blazor-specific overrides ───────────────────────────────────── */

/* Ensure the app shell fills the full viewport height */
body {
    min-height: 100dvh;
}

/* blazor.web.js adds a <blazor-ssr> wrapper — make it transparent */
blazor-ssr {
    display: contents;
}
