/* Legacy compatibility layer. Retained first to preserve the pre-consolidation cascade. */

html,
body,
#app {
    min-height: 100%;
}

.seo-only { display: none !important; }
.lingon-spa-failed .seo-only { display: block !important; }
.lingon-spa-booting #app::before {
    content: "Loading MyTurnYet…";
    display: grid;
    min-height: 100vh;
    place-items: center;
    color: #9ca3af;
    font: 600 14px/1.4 Inter, "Segoe UI", Arial, sans-serif;
    opacity: 0;
    animation: lingon-delayed-loading 120ms ease 700ms forwards;
}
@keyframes lingon-delayed-loading { to { opacity: 1; } }
.lingon-spa-mounted #app::before { display: none; }
/* My Turn Yet Web Client - Professional Edition */

:root {
    --ink-900: #152129;
    --ink-700: #2f434f;
    --ink-500: #5f7887;
    --paper-100: #f4f7f9;
    --paper-000: #ffffff;
    --brand-700: #1f5d78;
    --brand-500: #2e89ac;
    --gold-500: #c8983c;
    --mint-500: #2d8f72;
    --danger-500: #b34248;
    --edge: #d4dee4;
    --shadow: 0 14px 36px rgba(22, 39, 54, 0.14);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    color: var(--ink-900);
    background:
        radial-gradient(circle at 8% 12%, #f8fbfc 0%, #eef5f8 42%, #dfebf1 100%);
    font-family: "Avenir Next", "Trebuchet MS", "Segoe UI", sans-serif;
    line-height: 1.45;
}

h1,
h2,
h3,
h4 {
    font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
    line-height: 1.2;
}

.site-shell {
    width: min(1320px, 94vw);
    margin: 28px auto 42px;
}

.hero-band {
    border: 1px solid var(--edge);
    border-radius: 18px;
    padding: 34px 30px;
    background:
        linear-gradient(120deg, rgba(31, 93, 120, 0.95), rgba(46, 137, 172, 0.9)),
        linear-gradient(45deg, rgba(255, 255, 255, 0.2), transparent);
    box-shadow: var(--shadow);
    color: #f9feff;
}

.hero-copy h1 {
    margin: 8px 0 10px;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
}

.hero-copy p {
    max-width: 74ch;
    color: #ddf3ff;
}

.hero-kicker {
    letter-spacing: 0.1em;
    font-weight: 700;
    text-transform: uppercase;
    color: #bde9ff;
}

.content-grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.panel {
    background: var(--paper-000);
    border: 1px solid var(--edge);
    border-radius: 16px;
    padding: 18px 18px 20px;
    box-shadow: 0 6px 16px rgba(19, 34, 45, 0.08);
}

.panel-wide {
    padding: 22px;
}

.panel-subtitle {
    margin-top: 4px;
    color: var(--ink-700);
    font-size: 0.95rem;
}

.panel-header-row {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    align-items: center;
}

.mini-title {
    margin: 14px 0 8px;
    color: var(--ink-700);
}

.game-cards {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.game-card {
    border: 1px solid var(--edge);
    border-radius: 12px;
    padding: 12px;
    background: linear-gradient(180deg, #ffffff, #f9fcfe);
}

.game-card h3 {
    margin-bottom: 8px;
}

.game-card p {
    font-size: 0.92rem;
    color: var(--ink-700);
    margin-bottom: 4px;
}

.btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: 0;
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 0.92rem;
    font-weight: 700;
    background: linear-gradient(120deg, var(--brand-700), var(--brand-500));
    color: #f5fcff;
    cursor: pointer;
    transition: transform 0.12s ease, filter 0.15s ease;
}

.btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
}

.btn:active {
    transform: translateY(0);
}

.btn-ghost {
    background: transparent;
    color: var(--brand-700);
    border: 1px solid var(--brand-500);
}

.btn-small {
    padding: 8px 12px;
    font-size: 0.84rem;
}

.button-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.form-group {
    margin-bottom: 10px;
}

.form-group label {
    display: block;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--ink-700);
    margin-bottom: 5px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    border: 1px solid #c8d6df;
    border-radius: 10px;
    padding: 10px 11px;
    background: #fbfdff;
    color: var(--ink-900);
    font-size: 0.96rem;
    font-family: inherit;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--brand-500);
    box-shadow: 0 0 0 3px rgba(46, 137, 172, 0.14);
}

.status-card {
    margin-top: 12px;
    border-radius: 12px;
    border: 1px solid var(--edge);
    background: var(--paper-100);
    padding: 10px 12px;
    color: var(--ink-700);
    font-size: 0.92rem;
}

.ops-grid {
    margin-top: 14px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.ops-column {
    border: 1px solid var(--edge);
    border-radius: 13px;
    padding: 12px;
    background: #fcfeff;
}

.ops-column h3 {
    margin-bottom: 8px;
}

.create-table-block,
.create-thread-block,
.thread-detail {
    margin-top: 12px;
    border-top: 1px dashed #d5e3eb;
    padding-top: 10px;
}

.table-list,
.thread-list,
.thread-posts {
    margin-top: 10px;
    display: grid;
    gap: 8px;
    max-height: 280px;
    overflow: auto;
    padding-right: 2px;
}

.table-item,
.thread-item,
.post-item {
    border: 1px solid #d9e4eb;
    border-radius: 10px;
    background: #ffffff;
    padding: 10px;
}

.table-item h4,
.thread-item h4 {
    margin-bottom: 4px;
}

.table-item p,
.thread-item p,
.post-item p {
    color: var(--ink-700);
    font-size: 0.9rem;
    margin-bottom: 4px;
}

.post-meta {
    color: var(--ink-500);
    font-size: 0.8rem;
    font-weight: 700;
}

.board-display {
    margin-top: 8px;
    border-radius: 12px;
    border: 1px solid #cbdae4;
    background: #1f2e37;
    color: #d7f9ff;
    padding: 12px;
    font-family: "Consolas", "Liberation Mono", monospace;
    font-size: 0.78rem;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 240px;
    overflow: auto;
}

.token-preview {
    margin-top: 8px;
    color: var(--ink-500);
    font-size: 0.8rem;
    word-break: break-all;
}

@media (max-width: 1040px) {
    .ops-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .site-shell {
        width: 96vw;
        margin-top: 14px;
    }

    .hero-band {
        padding: 22px 16px;
    }

    .panel,
    .panel-wide {
        padding: 14px;
    }

    .panel-header-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ── Responsive overrides for the Leptos game detail and match views ─── */

@media (max-width: 900px) {
    /* Game detail page hero: stack columns vertically */
    [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }

    /* Game detail overview: collapse two-column sidebar layout */
    [style*="grid-template-columns: 1fr 360px"],
    [style*="grid-template-columns: 1fr 300px"] {
        grid-template-columns: 1fr !important;
    }

    /* Game info stat row: wrap on small screens */
    [style*="grid-template-columns: repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 600px) {
    /* Stat row: single column on mobile */
    [style*="grid-template-columns: repeat(4, 1fr)"],
    [style*="grid-template-columns: repeat(2, 1fr)"] {
        grid-template-columns: 1fr 1fr !important;
    }

    /* Prevent horizontal scroll from large hero text */
    h1[style*="font-size: 56px"] {
        font-size: clamp(1.8rem, 8vw, 3.5rem) !important;
    }

    /* Make the section padding less aggressive */
    [style*="padding: 60px 32px"],
    [style*="padding: 40px 32px"] {
        padding: 24px 16px !important;
    }

    /* Wrap button rows */
    [style*="display: flex"][style*="gap: 12px"] {
        flex-wrap: wrap;
    }
}

/* ── SVG game animation classes ─────────────────────────────────────── */

/* Piece or token appears on the board */
@keyframes piece-drop {
    from {
        opacity: 0;
        transform: scale(0.4) translateY(-8px);
    }
    60% {
        transform: scale(1.12) translateY(0);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Route segment lights up */
@keyframes route-flash {
    0%   { opacity: 0.2; stroke-width: 2; }
    50%  { opacity: 1;   stroke-width: 5; }
    100% { opacity: 1;   stroke-width: 3; }
}

/* Generic fade-in for newly-rendered SVG groups */
@keyframes svg-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Pulse highlight for the active player indicator */
@keyframes active-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(46, 137, 172, 0.45); }
    50%       { box-shadow: 0 0 0 6px rgba(46, 137, 172, 0); }
}

/* Apply animations to SVG elements that carry these classes.
   The Rust/Leptos render functions can add class="piece-new" etc. */
.piece-new {
    animation: piece-drop 0.32s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.route-new {
    animation: route-flash 0.45s ease-out both;
}

.svg-group-in {
    animation: svg-fade-in 0.25s ease both;
}

.active-player-badge {
    animation: active-pulse 1.8s ease-in-out infinite;
}

/* Smooth transitions on all SVG rect, circle, and path elements
   so state changes animate between renders */
svg rect, svg circle, svg ellipse {
    transition: fill 0.18s ease, opacity 0.18s ease;
}

svg line, svg path, svg polyline {
    transition: stroke 0.18s ease, stroke-width 0.18s ease, opacity 0.18s ease;
}

/* ── Game Maker (editor + sandbox) ───────────────────────────────────── */

.preview-studio-page,
.preview-studio-page * {
    box-sizing: border-box;
}

.preview-studio-page {
    max-width: 1480px;
    margin: 0 auto;
    padding: 24px 24px 34px;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

.preview-kicker {
    color: #f0b74d;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 12px;
}

.preview-header-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--lbn-text-muted);
    font-size: 13px;
    flex-wrap: wrap;
    min-width: 0;
}

.preview-header-actions select {
    background: var(--lbn-bg-panel);
    border: 1px solid var(--lbn-border-soft);
    border-radius: 10px;
    color: var(--lbn-text-main);
    padding: 6px 10px;
    max-width: 100%;
}

.preview-studio-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.78fr);
    gap: 14px;
    min-width: 0;
}

.preview-studio-grid-expanded {
    grid-template-columns: minmax(0, min(900px, 100%));
    justify-content: center;
}

.preview-studio-grid-editor-expanded {
    grid-template-columns: minmax(0, min(1120px, 100%));
    justify-content: center;
}

.preview-studio-grid-expanded .preview-board-panel {
    min-height: 640px;
}

.preview-studio-grid-editor-expanded .preview-editor-panel {
    min-height: 700px;
}

.preview-studio-grid-editor-expanded .preview-editor-panel .CodeMirror,
.preview-studio-grid-editor-expanded .preview-editor {
    min-height: 700px;
}

.preview-panel {
    border: 1px solid var(--lbn-border-soft);
    border-radius: 16px;
    background:
        linear-gradient(170deg, rgba(255, 255, 255, 0.03), transparent),
        var(--lbn-bg-panel);
    padding: 14px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
    min-height: 160px;
    min-width: 0;
    overflow: hidden;
}

.preview-panel-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    min-width: 0;
    flex-wrap: wrap;
}

.preview-panel-title-row h2 {
    color: var(--lbn-text-main);
    font-size: 15px;
    margin: 0;
}

.preview-pill {
    border: 1px solid var(--lbn-border-soft);
    border-radius: 999px;
    padding: 2px 9px;
    font-size: 11px;
    color: var(--lbn-text-muted);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.preview-pill-accent {
    color: #8bd3ff;
    border-color: rgba(139, 211, 255, 0.5);
}

.preview-editor {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 560px;
    resize: vertical;
    border-radius: 12px;
    border: 1px solid var(--lbn-border-soft);
    background: var(--lbn-bg-panel-alt);
    color: var(--lbn-text-main);
    padding: 12px;
    font-family: "Consolas", "IBM Plex Mono", monospace;
    font-size: 12px;
    line-height: 1.45;
}

.preview-editor-actions,
.preview-board-actions {
    margin-top: 10px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.preview-inline-note {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(139, 211, 255, 0.45);
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 11px;
    color: #a9deff;
    background: rgba(25, 84, 116, 0.28);
}

.preview-btn {
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 8px 14px;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.02em;
    cursor: pointer;
    color: #f6fbff;
    background: linear-gradient(135deg, #1f5d78, #2e89ac);
}

.preview-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.preview-btn-secondary {
    background: transparent;
    color: var(--lbn-text-muted);
    border-color: var(--lbn-border-soft);
}

.preview-state-strip {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    color: var(--lbn-text-muted);
    font-size: 12px;
}

.preview-board-grid {
    display: grid;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
}

.preview-cell {
    border: 1px solid var(--lbn-border-soft);
    border-radius: 12px;
    background: #141d2b;
    min-height: 92px;
    color: #cfdeef;
    cursor: pointer;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 3px;
    transition: transform 0.12s ease, border-color 0.14s ease, box-shadow 0.14s ease;
}

.preview-cell:hover {
    transform: translateY(-1px);
}

.preview-cell-playable {
    border-color: #2da7b7;
    box-shadow: inset 0 0 0 1px rgba(45, 167, 183, 0.55);
}

.preview-cell-id {
    color: #85a6bd;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.preview-cell-mark {
    font-size: 28px;
    line-height: 1;
    font-weight: 700;
}

.preview-empty-state {
    border: 1px dashed var(--lbn-border-soft);
    border-radius: 12px;
    padding: 20px;
    color: var(--lbn-text-muted);
    text-align: center;
    min-height: 240px;
    display: grid;
    place-items: center;
}

.preview-status-card {
    border: 1px solid var(--lbn-border-soft);
    border-radius: 12px;
    padding: 10px;
    margin-top: 8px;
    background: var(--lbn-bg-panel-alt);
}

.preview-status-card h3 {
    margin: 0 0 6px;
    color: var(--lbn-text-main);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.preview-status-card p {
    margin: 0;
    color: var(--lbn-text-muted);
    font-size: 13px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.preview-list {
    margin: 0;
    padding-left: 16px;
    color: var(--lbn-text-main);
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.preview-list-tight {
    max-height: 220px;
    overflow: auto;
    padding-right: 4px;
}

.preview-editor-panel .CodeMirror {
    min-height: 560px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    border-radius: 12px;
    border: 1px solid var(--lbn-border-soft);
    font-family: "Consolas", "IBM Plex Mono", monospace;
    font-size: 12px;
    background: var(--lbn-bg-panel-alt);
    color: var(--lbn-text-main);
}

.preview-editor-panel .CodeMirror-scroll {
    max-width: 100%;
    overflow: auto !important;
}

.preview-editor-panel .cm-s-material-darker.CodeMirror,
.preview-editor-panel .cm-s-material-darker .CodeMirror-gutters {
    background: var(--lbn-bg-panel-alt);
    color: var(--lbn-text-main);
}

.preview-editor-panel .cm-s-material-darker .CodeMirror-gutters {
    border-right: 1px solid var(--lbn-border-soft);
}

.preview-editor-panel .cm-s-material-darker .CodeMirror-linenumber {
    color: var(--lbn-text-muted);
}

.preview-editor-panel .cm-s-material-darker .CodeMirror-cursor {
    border-left: 1px solid var(--lbn-text-main);
}

.preview-editor-panel .cm-s-material-darker .CodeMirror-selected,
.preview-editor-panel .cm-s-material-darker.CodeMirror-focused .CodeMirror-selected {
    background: color-mix(in srgb, var(--lbn-accent-blue) 22%, transparent);
}

.preview-editor-panel .CodeMirror-foldgutter {
    width: 16px;
}

.preview-editor-panel .CodeMirror-foldgutter-open,
.preview-editor-panel .CodeMirror-foldgutter-folded {
    color: #7fb3d6;
}

.preview-editor-panel .preview-cm-diagnostic-gutter {
    width: 16px;
}

.preview-cm-line-error {
    background: rgba(179, 66, 72, 0.2);
}

.preview-cm-line-warning {
    background: rgba(199, 142, 39, 0.22);
}

.preview-cm-line-info {
    background: rgba(53, 132, 204, 0.18);
}

.preview-cm-diagnostic {
    margin: 3px 0 6px;
    padding: 4px 7px;
    border-radius: 6px;
    border: 1px solid rgba(179, 66, 72, 0.5);
    background: rgba(179, 66, 72, 0.16);
    color: #ffced3;
    font-size: 11px;
    line-height: 1.35;
}

.preview-cm-diagnostic-warning {
    border-color: rgba(199, 142, 39, 0.6);
    background: rgba(199, 142, 39, 0.16);
    color: #ffe3b3;
}

.preview-cm-diagnostic-info {
    border-color: rgba(53, 132, 204, 0.6);
    background: rgba(53, 132, 204, 0.16);
    color: #cae5ff;
}

.preview-cm-gutter-error,
.preview-cm-gutter-warning,
.preview-cm-gutter-info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
}

.preview-cm-gutter-error {
    color: #ffd6d9;
    background: #9e2f34;
}

.preview-cm-gutter-warning {
    color: #fff3dd;
    background: #97650f;
}

.preview-cm-gutter-info {
    color: #e5f3ff;
    background: #1d5c92;
}

@media (max-width: 1320px) {
    .preview-studio-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .preview-inspector-panel {
        grid-column: 1 / -1;
    }
}

@media (max-width: 920px) {
    .preview-studio-page {
        padding: 16px;
    }

    .preview-header-actions {
        width: 100%;
        align-items: stretch;
    }

    .preview-header-actions label {
        width: 100%;
    }

    .preview-header-actions select {
        width: 100%;
    }

    .preview-studio-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .preview-studio-grid-expanded,
    .preview-studio-grid-editor-expanded {
        grid-template-columns: minmax(0, 1fr);
    }

    .preview-editor {
        min-height: 380px;
    }

    .preview-editor-panel .CodeMirror {
        min-height: 380px;
    }
}

@media (max-width: 560px) {
    .preview-studio-page {
        padding: 12px;
    }

    .preview-panel {
        padding: 12px;
        border-radius: 10px;
    }

    .preview-panel-title-row > div {
        width: 100%;
        flex-wrap: wrap;
    }

    .preview-btn,
    .preview-editor-actions .preview-inline-note {
        width: 100%;
        justify-content: center;
    }

    .preview-cell {
        min-height: 68px;
        min-width: 58px;
    }

    .preview-cell-mark {
        font-size: 22px;
    }
}

/* ── Forums responsive lists ─────────────────────────────────────────── */

.forums-page-layout,
.forums-page-layout * {
    box-sizing: border-box;
}

.forums-page-layout {
    min-width: 0;
    max-width: 100%;
}

.forums-page-layout a,
.forums-page-layout p,
.forums-page-layout div,
.forums-page-layout span,
.forums-post-card {
    overflow-wrap: anywhere;
}

.forums-list-card {
    max-width: 100%;
    min-width: 0;
}

.forums-list-row {
    min-width: 0;
}

.forums-list-row > * {
    min-width: 0;
}

@media (max-width: 920px) {
    .forums-page-layout {
        flex-direction: column;
    }

    .forums-page-layout > *,
    .forums-admin-sidebar {
        width: 100% !important;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .forums-list-head {
        display: none !important;
    }

    .forums-list-row {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px;
        padding: 14px !important;
    }

    .forums-category-row > div:nth-child(2)::before {
        content: "Topics: ";
        color: var(--lbn-text-muted);
        font-size: 12px;
        font-weight: 600;
    }

    .forums-thread-row > div:nth-child(2)::before {
        content: "Replies: ";
        color: var(--lbn-text-muted);
        font-size: 12px;
        font-weight: 600;
    }

    .forums-category-row > div:nth-child(3)::before,
    .forums-thread-row > div:nth-child(3)::before {
        content: "Last post: ";
        color: var(--lbn-text-muted);
        font-size: 12px;
        font-weight: 600;
    }

    .forums-category-row > div:nth-child(2),
    .forums-category-row > div:nth-child(3),
    .forums-thread-row > div:nth-child(2),
    .forums-thread-row > div:nth-child(3) {
        text-align: left !important;
    }

    .forums-post-card {
        grid-template-columns: minmax(0, 1fr) !important;
        padding: 14px !important;
    }

    .forums-post-card > div:first-child {
        display: flex;
        align-items: center;
        gap: 10px;
        text-align: left !important;
    }
}



/* Theme values formerly injected by Rust. */
html[data-theme="dark"] {
  --lbn-bg-main: #0d1117;
  --lbn-bg-panel: #161b22;
  --lbn-bg-panel-alt: #1c2128;
  --lbn-bg-dark: #010409;
  --lbn-bg-sidebar: #161b22;
  --lbn-border-soft: #30363d;
  --lbn-border-dark: #21262d;
  --lbn-accent-red: #f85149;
  --lbn-accent-red-dark: #da3633;
  --lbn-accent-green: #3fb950;
  --lbn-accent-blue: #1f6feb;
  --lbn-accent-gold: #e3b341;
  --lbn-accent-warm: #e3b341;
  --lbn-accent-warm-muted: rgba(227, 179, 65, 0.13);
  --lbn-attention: #f0c14b;
  --lbn-on-warm: #1f1705;
  --lbn-text-main: #e6edf3;
  --lbn-text-muted: #a4adb7;
  --lbn-text-inverse: #f0f6fc;
  --lbn-sidebar-text: #a4adb7;
  --lbn-sidebar-text-muted: #8b949e;
  --lbn-text-danger: #f85149;
  --lbn-workspace-bg: #0d1921;
  --lbn-workspace-surface: #101920;
  --lbn-workspace-surface-raised: #17242e;
  --lbn-workspace-toolbar: #172129;
  --lbn-workspace-border: #33414b;
  --lbn-workspace-border-strong: #465461;
  --lbn-workspace-text: #d9e0e5;
  --lbn-workspace-text-muted: #aeb9c1;
}

html[data-theme="light"] {
  --lbn-bg-main: #f7f1e7;
  --lbn-bg-panel: #fffaf2;
  --lbn-bg-panel-alt: #f1e8dc;
  --lbn-bg-dark: #101820;
  --lbn-bg-sidebar: #2e2b26;
  --lbn-border-soft: #ded2c1;
  --lbn-border-dark: #47403a;
  --lbn-accent-red: #a9152c;
  --lbn-accent-red-dark: #7e1021;
  --lbn-accent-green: #2d8a4b;
  --lbn-accent-blue: #2678b8;
  --lbn-accent-gold: #b78a2c;
  --lbn-accent-warm: #9a6c12;
  --lbn-accent-warm-muted: rgba(154, 108, 18, 0.11);
  --lbn-attention: #8a5d08;
  --lbn-on-warm: #fffaf2;
  --lbn-text-main: #1b1c1f;
  --lbn-text-muted: #56514b;
  --lbn-text-inverse: #f5ede3;
  --lbn-sidebar-text: #d0c9bf;
  --lbn-sidebar-text-muted: #aaa298;
  --lbn-text-danger: #a9152c;
  --lbn-workspace-bg: #d6d0c6;
  --lbn-workspace-surface: #e5ded3;
  --lbn-workspace-surface-raised: #f1e9dc;
  --lbn-workspace-toolbar: #ded6ca;
  --lbn-workspace-border: #9b9184;
  --lbn-workspace-border-strong: #6f665b;
  --lbn-workspace-text: #26231f;
  --lbn-workspace-text-muted: #5d574f;
}

/*
 * MyTurnYet design-system foundation.
 *
 * This layer is intentionally compatibility-safe: existing --lbn-* variables
 * remain authoritative while semantic aliases and opt-in primitives are
 * introduced. Feature code should use these tokens and classes instead of
 * adding new literal UI styles.
 */

:root {
    /* Typography */
    --lbn-font-ui: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --lbn-font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
    --lbn-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;

    --lbn-text-2xs: 0.6875rem;
    --lbn-text-xs: 0.75rem;
    --lbn-text-sm: 0.875rem;
    --lbn-text-md: 1rem;
    --lbn-text-lg: 1.125rem;
    --lbn-text-xl: 1.375rem;
    --lbn-text-2xl: 1.75rem;
    --lbn-text-3xl: clamp(2rem, 4vw, 2.75rem);

    --lbn-leading-tight: 1.2;
    --lbn-leading-heading: 1.3;
    --lbn-leading-body: 1.5;
    --lbn-leading-reading: 1.65;

    --lbn-weight-regular: 400;
    --lbn-weight-medium: 500;
    --lbn-weight-semibold: 600;
    --lbn-weight-bold: 700;

    /* Four-pixel spacing grid */
    --lbn-space-0: 0;
    --lbn-space-1: 0.25rem;
    --lbn-space-2: 0.5rem;
    --lbn-space-3: 0.75rem;
    --lbn-space-4: 1rem;
    --lbn-space-5: 1.25rem;
    --lbn-space-6: 1.5rem;
    --lbn-space-8: 2rem;
    --lbn-space-10: 2.5rem;
    --lbn-space-12: 3rem;

    /* Shape and elevation */
    --lbn-radius-sm: 0.375rem;
    --lbn-radius-md: 0.5rem;
    --lbn-radius-lg: 0.75rem;
    --lbn-radius-xl: 1rem;
    --lbn-radius-pill: 999px;
    --lbn-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.16);
    --lbn-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.22);
    --lbn-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.28);

    /* Motion */
    --lbn-duration-fast: 120ms;
    --lbn-duration-normal: 180ms;
    --lbn-duration-slow: 300ms;
    --lbn-ease-standard: cubic-bezier(0.2, 0, 0, 1);

    /* Geometry */
    --lbn-content-max: 90rem;
    --lbn-reading-max: 57.5rem;
    --lbn-match-max: 82.5rem;
    --lbn-control-sm: 2rem;
    --lbn-control-md: 2.5rem;
    --lbn-control-lg: 3rem;
    --lbn-touch-target: 2.75rem;

    /* Semantic aliases over the current theme contract. */
    --lbn-bg-canvas: var(--lbn-bg-main, #0d1117);
    --lbn-bg-surface: var(--lbn-bg-panel, #161b22);
    --lbn-bg-surface-raised: var(--lbn-bg-panel-alt, #1c2128);
    --lbn-bg-inset: var(--lbn-bg-dark, #010409);
    --lbn-border-subtle: var(--lbn-border-dark, #21262d);
    --lbn-border-default: var(--lbn-border-soft, #30363d);
    --lbn-border-strong: color-mix(in srgb, var(--lbn-text-muted, #8b949e) 64%, var(--lbn-border-soft, #30363d));
    --lbn-text-primary: var(--lbn-text-main, #e6edf3);
    --lbn-text-secondary: color-mix(in srgb, var(--lbn-text-main, #e6edf3) 70%, var(--lbn-text-muted, #8b949e));
    --lbn-text-tertiary: var(--lbn-text-muted, #8b949e);
    --lbn-text-on-dark: var(--lbn-text-inverse, #f0f6fc);
    --lbn-action: var(--lbn-accent-blue, #1f6feb);
    --lbn-attention-color: var(--lbn-accent-warm, #e3b341);
    --lbn-success: var(--lbn-accent-green, #3fb950);
    --lbn-warning: var(--lbn-accent-gold, #e3b341);
    --lbn-danger: var(--lbn-accent-red, #f85149);
    --lbn-info: var(--lbn-accent-blue, #1f6feb);
}

/* Canonical application typography. Game-material lettering remains opt-in. */
html,
body,
button,
input,
select,
textarea {
    font-family: var(--lbn-font-ui);
}

body {
    color: var(--lbn-text-primary);
    background: var(--lbn-bg-canvas);
    font-size: var(--lbn-text-md);
    line-height: var(--lbn-leading-body);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

h1,
h2 {
    font-family: var(--lbn-font-display);
    line-height: var(--lbn-leading-tight);
}

h3,
h4,
h5,
h6 {
    font-family: var(--lbn-font-ui);
    line-height: var(--lbn-leading-heading);
}

/* Typography primitives are opt-in until the global font migration is approved. */
.lbn-type-ui { font-family: var(--lbn-font-ui); }
.lbn-type-display { font-family: var(--lbn-font-display); }
.lbn-type-mono { font-family: var(--lbn-font-mono); font-variant-numeric: tabular-nums; }
.lbn-type-eyebrow {
    color: var(--lbn-text-tertiary);
    font: var(--lbn-weight-semibold) var(--lbn-text-xs)/var(--lbn-leading-heading) var(--lbn-font-ui);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.lbn-type-body { font-size: var(--lbn-text-md); line-height: var(--lbn-leading-body); }
.lbn-type-secondary { font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); color: var(--lbn-text-secondary); }
.lbn-type-meta { font-size: var(--lbn-text-xs); line-height: 1.4; color: var(--lbn-text-tertiary); }

/* Surfaces */
.lbn-card,
.lbn-panel,
.lbn-inset {
    box-sizing: border-box;
    color: var(--lbn-text-primary);
}
.lbn-card {
    padding: var(--lbn-space-4);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-lg);
    background: var(--lbn-bg-surface);
    box-shadow: var(--lbn-shadow-sm);
}
.lbn-panel {
    padding: var(--lbn-space-5);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-lg);
    background: var(--lbn-bg-surface);
}
.lbn-inset {
    padding: var(--lbn-space-3);
    border: 1px solid var(--lbn-border-subtle);
    border-radius: var(--lbn-radius-md);
    background: var(--lbn-bg-inset);
}

/* Buttons */
.lbn-button {
    min-height: var(--lbn-control-md);
    padding: 0 var(--lbn-space-4);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--lbn-space-2);
    border: 1px solid transparent;
    border-radius: var(--lbn-radius-md);
    background: transparent;
    color: var(--lbn-text-primary);
    font: var(--lbn-weight-semibold) var(--lbn-text-sm)/1 var(--lbn-font-ui);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--lbn-duration-normal) var(--lbn-ease-standard),
        border-color var(--lbn-duration-normal) var(--lbn-ease-standard),
        color var(--lbn-duration-normal) var(--lbn-ease-standard);
}
.lbn-button--small { min-height: var(--lbn-control-sm); padding-inline: var(--lbn-space-3); font-size: var(--lbn-text-xs); }
.lbn-button--large { min-height: var(--lbn-control-lg); padding-inline: var(--lbn-space-5); font-size: var(--lbn-text-md); }
.lbn-button--primary { background: var(--lbn-action); border-color: var(--lbn-action); color: #fff; }
.lbn-button--secondary { background: var(--lbn-bg-surface-raised); border-color: var(--lbn-border-default); }
.lbn-button--quiet { color: var(--lbn-text-secondary); }
.lbn-button--danger { background: var(--lbn-danger); border-color: var(--lbn-danger); color: #fff; }
.lbn-button--danger-secondary { background: var(--lbn-bg-surface-raised); border-color: var(--lbn-danger); color: var(--lbn-danger); }
.lbn-button:hover:not(:disabled) { border-color: var(--lbn-attention-color); }
.lbn-button--primary:hover:not(:disabled) { filter: brightness(1.1); border-color: var(--lbn-action); }
.lbn-button:disabled { opacity: 0.5; cursor: not-allowed; }
.lbn-icon-button {
    width: var(--lbn-control-md);
    min-width: var(--lbn-control-md);
    padding: 0;
}

/* Compatibility bridge for the application's widely used legacy button API. */
.btn {
    min-height: var(--lbn-control-md);
    padding: 0 var(--lbn-space-4);
    border: 1px solid var(--lbn-action);
    border-radius: var(--lbn-radius-md);
    background: var(--lbn-action);
    color: #fff;
    font-family: var(--lbn-font-ui);
    font-size: var(--lbn-text-sm);
    font-weight: var(--lbn-weight-semibold);
    line-height: 1;
    box-shadow: none;
    transform: none;
}
.btn:hover:not(:disabled) { border-color: var(--lbn-action); filter: brightness(1.1); transform: none; }
.btn:active:not(:disabled) { filter: brightness(0.96); transform: none; }
.btn:focus-visible { outline: 2px solid var(--lbn-attention-color); outline-offset: 2px; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-secondary,
.btn-ghost {
    border-color: var(--lbn-border-default);
    background: var(--lbn-bg-surface-raised);
    color: var(--lbn-text-primary);
}
.btn-danger { border-color: var(--lbn-danger); background: var(--lbn-danger); color: #fff; }
.btn-small { min-height: var(--lbn-control-sm); padding-inline: var(--lbn-space-3); font-size: var(--lbn-text-xs); }

/* Baseline behavior for legacy controls while their markup is migrated. Inline
   game-specific dimensions continue to win, but typography, focus, and disabled
   behavior no longer vary from page to page. */
.lbn-page-frame button:not(.lbn-button):not(.btn),
.lbn-panel button:not(.lbn-button):not(.btn) {
    font-family: var(--lbn-font-ui);
}
.lbn-page-frame button:not(.lbn-button):not(.btn):focus-visible,
.lbn-panel button:not(.lbn-button):not(.btn):focus-visible {
    outline: 2px solid var(--lbn-attention-color);
    outline-offset: 2px;
}
.lbn-page-frame button:not(.lbn-button):not(.btn):disabled,
.lbn-panel button:not(.lbn-button):not(.btn):disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.lbn-auth-modal-card :where(button, input, select, textarea) {
    font-family: var(--lbn-font-ui);
}
.lbn-auth-modal-card :where(button, input, select, textarea):focus-visible {
    outline: 2px solid var(--lbn-attention-color);
    outline-offset: 2px;
}
.lbn-auth-modal-card button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Discussion editors keep their write/preview geometry but share form metrics. */
.forum-editor :where(input:not([type="checkbox"]):not([type="radio"]), select) {
    min-height: var(--lbn-control-lg);
    padding-inline: var(--lbn-space-3) !important;
    border-radius: var(--lbn-radius-md) !important;
    font-family: var(--lbn-font-ui);
}
.forum-editor textarea {
    min-height: 7rem;
    padding: var(--lbn-space-3) !important;
    font-family: var(--lbn-font-ui);
    line-height: var(--lbn-leading-body);
}
.forum-editor button {
    min-height: var(--lbn-control-sm);
    font-family: var(--lbn-font-ui);
}

/* Dense administration tools share metrics without flattening their tables. */
.admin-tab-content :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select) {
    box-sizing: border-box;
    min-height: var(--lbn-control-md);
    border-radius: var(--lbn-radius-md) !important;
    font-family: var(--lbn-font-ui);
}
.admin-tab-content textarea {
    box-sizing: border-box;
    min-height: 6rem;
    border-radius: var(--lbn-radius-md) !important;
    font-family: var(--lbn-font-ui);
    line-height: var(--lbn-leading-body);
}
.admin-tab-content button {
    min-height: var(--lbn-control-sm);
    font-family: var(--lbn-font-ui);
}
.admin-tab-content :where(input, select, textarea, button):focus-visible {
    outline: 2px solid var(--lbn-attention-color);
    outline-offset: 2px;
}
.admin-tab-content :where(input, select, textarea, button):disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
@media (max-width: 40rem) {
    .forum-editor-heading-fields { flex-direction: column; }
    .forum-editor-heading-fields > div { width: 100%; }
    .forum-editor > div:last-child > button { width: 100%; }
}

/* Forms */
.lbn-field { display: grid; gap: var(--lbn-space-2); min-width: 0; }
.lbn-field__label { color: var(--lbn-text-secondary); font: var(--lbn-weight-semibold) var(--lbn-text-sm)/1.4 var(--lbn-font-ui); }
.lbn-input,
.lbn-select,
.lbn-textarea {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: var(--lbn-control-md);
    padding: 0 var(--lbn-space-3);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-md);
    background: var(--lbn-bg-inset);
    color: var(--lbn-text-primary);
    font: var(--lbn-weight-regular) var(--lbn-text-md)/var(--lbn-leading-body) var(--lbn-font-ui);
}
.lbn-textarea { min-height: 6rem; padding-block: var(--lbn-space-3); resize: vertical; }
.lbn-field__help { color: var(--lbn-text-tertiary); font: var(--lbn-weight-regular) var(--lbn-text-xs)/1.4 var(--lbn-font-ui); }
.lbn-field__error { color: var(--lbn-danger); font: var(--lbn-weight-medium) var(--lbn-text-sm)/1.4 var(--lbn-font-ui); }

/* Shared form bridge; explicit game-material controls can override by class. */
.lbn-page-frame :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea),
.lbn-panel :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
    font-family: var(--lbn-font-ui);
}

.lbn-page-frame :where(label),
.lbn-panel :where(label) {
    line-height: var(--lbn-leading-body);
}

/* Status */
.lbn-status-banner {
    --lbn-status-tone: var(--lbn-info);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--lbn-space-3);
    padding: var(--lbn-space-3) var(--lbn-space-4);
    border: 1px solid color-mix(in srgb, var(--lbn-status-tone) 55%, var(--lbn-border-default));
    border-radius: var(--lbn-radius-md);
    background: color-mix(in srgb, var(--lbn-status-tone) 10%, var(--lbn-bg-surface));
    color: var(--lbn-text-primary);
    font: var(--lbn-weight-regular) var(--lbn-text-sm)/var(--lbn-leading-body) var(--lbn-font-ui);
}
.lbn-status-banner--success { --lbn-status-tone: var(--lbn-success); }
.lbn-status-banner--warning { --lbn-status-tone: var(--lbn-warning); }
.lbn-status-banner--danger { --lbn-status-tone: var(--lbn-danger); }
.lbn-status-banner--neutral { --lbn-status-tone: var(--lbn-text-tertiary); }
.lbn-status-banner__icon { width: 1.25rem; height: 1.25rem; margin-top: .0625rem; color: var(--lbn-status-tone); fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.lbn-status-banner__body { min-width: 0; }
.lbn-status-banner__title { display: block; margin-bottom: var(--lbn-space-1); font-weight: var(--lbn-weight-bold); }
.lbn-status-banner__message { margin: 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); overflow-wrap: anywhere; }
.lbn-status-banner__action { margin-top: var(--lbn-space-3); }
.lbn-status-chip {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
    padding: 0 var(--lbn-space-2);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-pill);
    background: var(--lbn-bg-surface-raised);
    color: var(--lbn-text-secondary);
    font: var(--lbn-weight-semibold) var(--lbn-text-xs)/1 var(--lbn-font-ui);
}

/* Identity and structured facts */
.lbn-identity { display: flex; align-items: center; gap: var(--lbn-space-3); min-width: 0; }
.lbn-identity__avatar { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.lbn-identity__body { min-width: 0; }
.lbn-identity__name { color: var(--lbn-text-primary); font: var(--lbn-weight-semibold) var(--lbn-text-sm)/1.35 var(--lbn-font-ui); overflow-wrap: anywhere; }
.lbn-identity__meta { color: var(--lbn-text-tertiary); font: var(--lbn-weight-regular) var(--lbn-text-xs)/1.4 var(--lbn-font-ui); }
.lbn-fact-list { display: grid; gap: var(--lbn-space-2); margin: 0; }
.lbn-fact-list__row { display: grid; grid-template-columns: minmax(6rem, 0.4fr) minmax(0, 1fr); gap: var(--lbn-space-3); }
.lbn-fact-list dt { color: var(--lbn-text-tertiary); font: var(--lbn-weight-semibold) var(--lbn-text-xs)/1.4 var(--lbn-font-ui); text-transform: uppercase; letter-spacing: 0.04em; }
.lbn-fact-list dd { margin: 0; color: var(--lbn-text-primary); font: var(--lbn-weight-regular) var(--lbn-text-sm)/1.4 var(--lbn-font-ui); overflow-wrap: anywhere; }

/* Shared layout */
.lbn-match-page { box-sizing: border-box; width: 100%; max-width: 900px; margin: 0 auto; padding: var(--lbn-space-8); }
.lbn-stack { display: flex; flex-direction: column; gap: var(--lbn-space-4); }
.lbn-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lbn-space-2); }
.lbn-button-group { display: inline-flex; align-items: center; gap: var(--lbn-space-1); }
.lbn-board-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lbn-space-2);
    margin-top: var(--lbn-space-2);
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
.lbn-board-toolbar__group {
    display: inline-flex;
    align-items: center;
    gap: var(--lbn-space-1);
}
.lbn-board-toolbar__group--end { margin-left: auto; }
.lbn-board-toolbar .lbn-icon-button { flex: 0 0 auto; }
.dip-section-map + .lbn-board-toolbar { grid-column: 1 / -1; margin-top: calc(var(--lbn-space-2) * -0.25); }
.dip-overlay-controls { display:flex; align-items:center; gap:var(--lbn-space-2); flex-wrap:wrap; padding:var(--lbn-space-2) var(--lbn-space-3); border-bottom:1px solid rgba(255,255,255,.14); background:#0b1421; color:#dce6f2; font:var(--lbn-weight-semibold) var(--lbn-text-xs)/1.35 var(--lbn-font-ui); }
.dip-overlay-controls > span { margin-right:auto; text-transform:uppercase; letter-spacing:.05em; color:#aebdce; }
.dip-overlay-controls button { min-height:1.875rem; padding:0 var(--lbn-space-3); border:1px solid rgba(190,205,224,.34); border-radius:var(--lbn-radius-pill); background:#152337; color:#dce6f2; font:inherit; cursor:pointer; }
.dip-overlay-controls button.is-active { border-color:#e0b75c; background:#49391d; color:#fff1c7; }
.dip-overlay-controls button:focus-visible { outline:var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset:var(--lbn-focus-offset); }
.dip-draft-orders :is(path,line,circle,polygon) { filter:drop-shadow(0 0 1.4px #07101d) drop-shadow(0 0 1.4px #07101d); }
.lbn-turn-deadline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lbn-space-2);
    margin-bottom: 0;
    padding: var(--lbn-space-2) var(--lbn-space-3);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-md);
    background: var(--lbn-bg-surface);
}
.lbn-match-timing-panel {
  display: grid;
  gap: var(--lbn-space-1);
  margin-bottom: var(--lbn-space-3);
}
.lbn-match-timing-panel .chess-live-clocks { margin-top: 0; }
.lbn-turn-deadline--critical {
    border-color: var(--lbn-danger);
    background: color-mix(in srgb, var(--lbn-danger) 10%, var(--lbn-bg-surface));
}
.lbn-turn-deadline__info {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    text-align: left;
}
.lbn-two-player-status {
    display: flex;
    flex-direction: column;
    gap: 0;
    font-size: var(--lbn-text-sm);
    line-height: var(--lbn-leading-snug);
    color: var(--lbn-text-secondary);
}
.lbn-two-player-status__row {
    display: flex;
    align-items: baseline;
    gap: 0.2rem;
    min-height: 1.25rem;
}
.lbn-two-player-status__label {
    color: var(--lbn-text-tertiary);
    font-size: var(--lbn-text-xs);
    font-weight: var(--lbn-weight-medium);
}
.lbn-two-player-status__name {
    color: var(--lbn-text-primary);
    font-weight: var(--lbn-weight-bold);
}
.lbn-two-player-status__name--active {
    color: var(--lbn-accent-gold);
}
.lbn-two-player-status__active-marker {
    display: inline-block;
    margin-left: var(--lbn-space-1);
    color: currentColor;
    font-size: var(--lbn-text-xs);
    line-height: 1;
}
.lbn-multi-player-status { display:grid; gap:var(--lbn-space-2); min-width:0; }
.lbn-multi-player-status__summary { display:grid; gap:2px; }
.lbn-multi-player-status__phase { color:var(--lbn-text-tertiary); font-size:var(--lbn-text-xs); font-weight:var(--lbn-weight-semibold); text-transform:capitalize; }
.lbn-multi-player-status__action { color:var(--lbn-text-primary); font-size:var(--lbn-text-sm); line-height:var(--lbn-leading-snug); }
.lbn-multi-player-status__players { display:flex; flex-wrap:wrap; gap:var(--lbn-space-1); }
.lbn-multi-player-status__player { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:2px 7px; border:1px solid var(--lbn-border-default); border-radius:var(--lbn-radius-pill); color:var(--lbn-text-tertiary); font-size:var(--lbn-text-xs); white-space:nowrap; }
.lbn-multi-player-status__player.is-active { border-color:var(--lbn-accent-gold); color:var(--lbn-text-primary); }
.lbn-multi-player-status__player.is-you { font-weight:var(--lbn-weight-bold); }
.lbn-multi-player-status__abbreviation { color:var(--lbn-accent-gold); font-size:var(--lbn-text-xs); }
.lbn-multi-player-status__dot { width:6px; height:6px; flex:0 0 auto; border-radius:50%; background:var(--lbn-text-tertiary); }
.lbn-multi-player-status__player.is-active .lbn-multi-player-status__dot { background:var(--lbn-accent-gold); }
.lbn-turn-deadline__timing {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
    text-align: right;
    margin-left: auto;
}
.lbn-turn-deadline__title {
    font-size: var(--lbn-text-xs);
    color: var(--lbn-text-tertiary);
    font-weight: var(--lbn-weight-medium);
}
.lbn-turn-deadline__value {
    font-size: var(--lbn-text-sm);
    font-weight: var(--lbn-weight-bold);
    font-family: var(--lbn-font-mono);
    font-variant-numeric: tabular-nums;
}
.lbn-turn-deadline__at { color:var(--lbn-text-tertiary); font-size:var(--lbn-text-xs); }
@media (max-width:620px) { .lbn-turn-deadline:has(.lbn-multi-player-status) { align-items:stretch; flex-direction:column; } .lbn-turn-deadline:has(.lbn-multi-player-status) .lbn-turn-deadline__timing { align-items:flex-start; margin-left:0; text-align:left; } }
.lbn-turn-deadline__status {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--lbn-space-1);
    color: var(--lbn-text-tertiary);
    font-size: var(--lbn-text-sm);
}
.lbn-turn-deadline__urgency { font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-turn-deadline__timer {
    flex: 0 0 auto;
    font-family: var(--lbn-font-mono);
    font-weight: var(--lbn-weight-bold);
    font-variant-numeric: tabular-nums;
}
.lbn-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 4100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--lbn-space-5);
    background: rgba(3, 7, 14, 0.72);
}
.lbn-modal {
    box-sizing: border-box;
    width: min(31.25rem, 100%);
    max-height: calc(100dvh - 2.5rem);
    overflow-y: auto;
    padding: var(--lbn-space-5);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-lg);
    background: var(--lbn-bg-surface);
    color: var(--lbn-text-primary);
    box-shadow: var(--lbn-shadow-lg);
}
.lbn-modal--compact { width: min(27.5rem, 100%); }
.lbn-modal__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-4); }
.lbn-modal__title { margin: 0; font-size: var(--lbn-text-xl); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.lbn-modal__description { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-modal__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-3); }
.lbn-modal__actions { display: flex; justify-content: flex-end; gap: var(--lbn-space-2); margin-top: var(--lbn-space-4); }
.lbn-modal__fact { display: grid; gap: var(--lbn-space-1); margin-bottom: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); font-size: var(--lbn-text-xs); }
.lbn-modal__fact span { color: var(--lbn-text-tertiary); overflow-wrap: anywhere; }
.lbn-setting-row { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); min-height: var(--lbn-control-lg); padding: var(--lbn-space-2) 0; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.lbn-setting-row--select { display: grid; grid-template-columns: minmax(0, 1fr) minmax(8rem, 10.625rem); }
.lbn-setting-row input[type="checkbox"] { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; }
.lbn-toast {
    position: fixed;
    right: var(--lbn-space-6);
    bottom: var(--lbn-space-6);
    z-index: 9999;
    box-sizing: border-box;
    width: min(22.5rem, calc(100vw - 2rem));
    display: flex;
    align-items: center;
    gap: var(--lbn-space-3);
    padding: var(--lbn-space-4) 1.125rem;
    border: 1px solid var(--lbn-border-soft);
    border-radius: .875rem;
    background: var(--lbn-bg-panel);
    color: var(--lbn-text-primary);
    box-shadow: 0 1.125rem 3rem rgba(16,24,32,.24);
}
.lbn-toast__icon { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; border-radius: 50%; background: var(--lbn-success); color: white; font-weight: var(--lbn-weight-bold); }
.lbn-toast__message { flex: 1; min-width: 0; font-size: var(--lbn-text-sm); overflow-wrap: anywhere; }
.lbn-completion-kicker { margin-bottom: var(--lbn-space-2); color: var(--lbn-attention-color); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: 0.08em; text-transform: uppercase; overflow-wrap: anywhere; }
.lbn-modal__kicker { margin: 0 0 var(--lbn-space-1); color: var(--lbn-attention-color); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: 0.08em; text-transform: uppercase; overflow-wrap: anywhere; }
.lbn-modal__error { margin: var(--lbn-space-2) 0 0; color: var(--lbn-danger); font-size: var(--lbn-text-sm); overflow-wrap: anywhere; }
.lbn-completion-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); }
.lbn-completion-stat { padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.lbn-completion-stat strong { display: block; font-size: var(--lbn-text-lg); overflow-wrap: anywhere; }
.lbn-completion-stat span { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-completion-rating { padding-top: var(--lbn-space-3); border-top: 1px solid var(--lbn-border-default); font-size: var(--lbn-text-sm); }
.lbn-completion-rating a { color: var(--lbn-action); font-weight: var(--lbn-weight-bold); text-decoration: none; }
.lbn-match-error { margin-bottom: var(--lbn-space-4); }
.lbn-fair-play-notice { margin: var(--lbn-space-2) 0; }
.lbn-fair-play-notice__body { min-width: 0; }
.lbn-fair-play-notice__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-1); }
.lbn-fair-play-notice__messages { display: grid; gap: var(--lbn-space-1); overflow-wrap: anywhere; }
.lbn-timing-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lbn-space-3);
    margin: var(--lbn-space-3) 0;
    padding: var(--lbn-space-3);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-md);
    background: var(--lbn-bg-surface);
}
.lbn-timing-panel__copy { min-width: 0; margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-timing-panel__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-timing-panel--compact { margin-top: var(--lbn-space-3); padding-top: var(--lbn-space-3); border-top: 1px solid var(--lbn-border-subtle); }
.lbn-timing-panel--compact .lbn-timing-panel__copy:empty { display: none; }
.lbn-timing-panel--compact .lbn-timing-panel__actions { justify-content: flex-end; }
.lbn-match-chat-scroll {
  max-height: 220px;
  overflow: auto;
  padding: var(--lbn-space-3);
  display: flex;
  flex-direction: column;
  gap: var(--lbn-space-2);
  scroll-behavior: smooth;
}
.lbn-match-chat-unread-divider {
  align-self: stretch;
  display: flex;
  align-items: center;
  gap: var(--lbn-space-2);
  color: var(--lbn-attention-color);
  font-size: var(--lbn-text-xs);
  font-weight: var(--lbn-weight-semibold);
  white-space: nowrap;
}
.lbn-match-chat-unread-divider::before,
.lbn-match-chat-unread-divider::after {
  content: "";
  height: 1px;
  flex: 1 1 auto;
  background: var(--lbn-attention-color);
  opacity: 0.55;
}
.lbn-live-controls { display: flex; justify-content: flex-end; gap: var(--lbn-space-2); align-items: center; flex-wrap: wrap; margin: calc(var(--lbn-space-2) * -1) 0 var(--lbn-space-3); }
.lbn-live-controls label { display: inline-flex; align-items: center; gap: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-live-controls input { width: 1.125rem; height: 1.125rem; }
.sysadmin-act-as-overlay {
    position: absolute;
    top: var(--lbn-space-2);
    right: var(--lbn-space-2);
    z-index: 60;
    display: inline-flex;
    align-items: center;
    gap: var(--lbn-space-1);
    box-sizing: border-box;
    max-width: calc(100% - var(--lbn-space-4));
    padding: var(--lbn-space-1) var(--lbn-space-2);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--lbn-radius-md);
    background: rgba(7, 12, 22, 0.82);
    box-shadow: var(--lbn-shadow-md);
    backdrop-filter: blur(4px);
    pointer-events: auto;
}
.sysadmin-act-as-overlay__label { color: #f6e7c8; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.sysadmin-act-as-overlay select { min-width: 0; max-width: 9.375rem; min-height: var(--lbn-control-sm); padding: 0 var(--lbn-space-2); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--lbn-radius-sm); background: #101a28; color: #f3ece0; font: var(--lbn-weight-semibold) var(--lbn-text-xs)/1 var(--lbn-font-ui); }
.sysadmin-act-as-overlay select:focus-visible { outline: 2px solid var(--lbn-attention-color); outline-offset: 2px; }
.lbn-admin-studio-toolbar {
    position: sticky;
    top: 0;
    z-index: 4;
    margin-bottom: var(--lbn-space-4);
    padding: var(--lbn-space-3);
    border: 1px solid var(--lbn-border-default);
    border-radius: var(--lbn-radius-lg);
    background: var(--lbn-bg-surface);
    box-shadow: var(--lbn-shadow-md);
}
.lbn-admin-studio-toolbar__row { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-admin-studio-toolbar__identity { min-width: min(100%, 16.25rem); }
.lbn-admin-studio-toolbar__eyebrow { margin-bottom: var(--lbn-space-1); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-admin-studio-toolbar__title { color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.lbn-admin-studio-toolbar__facts,.lbn-admin-studio-toolbar__actions { display: flex; align-items: center; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-studio-toolbar__actions { justify-content: flex-end; }
.lbn-admin-studio-toolbar__preview { margin-top: var(--lbn-space-2); padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-admin-feedback { margin-bottom: var(--lbn-space-4); }
.lbn-admin-studio-stack { display: grid; gap: var(--lbn-space-4); }
.lbn-admin-studio-panel { display: grid; gap: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-admin-studio-panel--roomy { padding: var(--lbn-space-4); }
.lbn-admin-studio-panel__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-2); }
.lbn-admin-studio-panel__title { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-admin-studio-panel__hint,.lbn-admin-studio-empty { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-admin-studio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.25rem), 1fr)); gap: var(--lbn-space-3); }
.lbn-admin-studio-workflow { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); flex-wrap: wrap; }
.lbn-admin-studio-workflow__actions { display: flex; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-block-library { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-2); }
.lbn-admin-inspector-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-admin-inspector-facts span { overflow-wrap: anywhere; }
.lbn-admin-diagnostic-tile { padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.lbn-admin-diagnostic-tile__label { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-admin-diagnostic-tile__value { color: var(--lbn-text-primary); font-size: var(--lbn-text-lg); font-weight: var(--lbn-weight-bold); overflow-wrap: anywhere; }
.lbn-admin-preview-controls { display: flex; align-items: center; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-preview-controls .lbn-select { width: auto; min-width: 7rem; }
.lbn-admin-preview-controls .lbn-input { width: 5.5rem; }
.lbn-admin-preview-controls a { color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-decoration: none; }
.lbn-admin-metric-row { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, auto); gap: var(--lbn-space-3); align-items: center; padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-default); font-size: var(--lbn-text-xs); }
.lbn-admin-metric-row strong { overflow-wrap: anywhere; }
.lbn-admin-metric-row span { color: var(--lbn-text-tertiary); }
.lbn-admin-stat-card { padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-admin-stat-card--highlight { border-color: var(--lbn-danger); background: color-mix(in srgb, var(--lbn-danger) 24%, var(--lbn-bg-surface)); color: var(--lbn-text-on-dark); }
.lbn-admin-stat-card__value { color: var(--lbn-text-primary); font-size: var(--lbn-text-2xl); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.lbn-admin-stat-card--highlight .lbn-admin-stat-card__value,.lbn-admin-stat-card--highlight .lbn-admin-stat-card__label { color: inherit; }
.lbn-admin-stat-card__label { margin-top: var(--lbn-space-1); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-admin-fact-row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-4); padding: var(--lbn-space-2) 0; border-top: 1px solid var(--lbn-border-default); }
.lbn-admin-fact-row__label { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-heading); }
.lbn-admin-fact-row__value { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); text-align: right; overflow-wrap: anywhere; }
.lbn-admin-section { display: grid; gap: var(--lbn-space-4); }
.lbn-admin-section__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-4); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); flex-wrap: wrap; }
.lbn-admin-user-sandbox-filter { align-items: center; color: var(--lbn-text-secondary); display: flex; font-size: var(--lbn-text-sm); gap: var(--lbn-space-2); min-height: var(--lbn-control-md); }
.lbn-admin-user-sandbox-filter input { accent-color: var(--lbn-accent-blue); height: 1.125rem; margin: 0; width: 1.125rem; }
.lbn-match-report-menu { position: relative; }
.lbn-match-report-menu > summary { cursor: pointer; list-style: none; min-width: 2.75rem; width: auto; }
.lbn-match-report-menu > summary::-webkit-details-marker { display: none; }
.lbn-match-report-menu__popover { background: var(--lbn-bg-surface); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); box-shadow: var(--lbn-shadow-lg); display: grid; min-width: 14rem; padding: var(--lbn-space-2); position: absolute; right: 0; top: calc(100% + var(--lbn-space-2)); z-index: 30; }
.lbn-match-report-menu__popover--above { bottom: calc(100% + var(--lbn-space-2)); top: auto; }
.lbn-match-report-menu__popover :where(a, button) { background: transparent; border: 0; border-radius: var(--lbn-radius-sm); color: var(--lbn-text-primary); cursor: pointer; font: inherit; padding: var(--lbn-space-2) var(--lbn-space-3); text-align: left; text-decoration: none; }
.lbn-match-report-menu__popover :where(a, button):hover, .lbn-match-report-menu__popover :where(a, button):focus-visible { background: var(--lbn-bg-panel-alt); color: var(--lbn-accent-blue); }
.lbn-admin-section__heading { min-width: min(100%, 18rem); flex: 1 1 32rem; }
.lbn-admin-section__title { margin: 0 0 var(--lbn-space-1); color: var(--lbn-text-primary); font-size: var(--lbn-text-lg); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); }
.lbn-admin-section__description { max-width: var(--lbn-reading-max); margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-admin-section__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-section__filter { width: min(100%, 26.25rem); }
.lbn-admin-section__filter--compact { width: min(100%, 17.5rem); }
.lbn-admin-tool-panel { padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-admin-tool-actions { display: flex; align-items: center; gap: var(--lbn-space-3); margin-top: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-admin-tool-hint { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-admin-code-input { width: 100%; min-height: 6.5rem; box-sizing: border-box; resize: vertical; font-family: var(--lbn-font-mono); }
.lbn-admin-log-filters { display: grid; grid-template-columns: minmax(7.5rem, .65fr) minmax(8.75rem, .85fr) minmax(10rem, 1.25fr) auto; gap: var(--lbn-space-2); flex: 1 1 42rem; }
.lbn-admin-log-actions { display: flex; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-data-frame { overflow: hidden; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-admin-data-frame--scroll { overflow-x: auto; }
.lbn-admin-form-panel { padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-admin-state { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-admin-state--danger { color: var(--lbn-danger); }
.lbn-admin-empty { margin: 0; padding: var(--lbn-space-4); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-admin-toolbar { display: flex; align-items: center; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-admin-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); gap: var(--lbn-space-3); }
.lbn-admin-inline-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--lbn-space-3); align-items: end; }
.lbn-admin-inline-form--wide { grid-template-columns: minmax(11.25rem, 1fr) minmax(13.75rem, 2fr) auto; align-items: center; }
.lbn-admin-panel-title { margin: 0; color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); }
.lbn-admin-panel-hint { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-forum-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-4); min-height: 6.625rem; margin-bottom: var(--lbn-space-4); flex-wrap: wrap; }
.lbn-forum-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--lbn-space-2); padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); flex-wrap: wrap; }
.lbn-forum-note { margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-3) var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-forum-editor { display: grid; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-5); padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-forum-editor--accent { border-color: var(--lbn-action); }
.lbn-forum-editor__title { margin: 0; color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); }
.lbn-forum-editor__fields { display: grid; grid-template-columns: minmax(9rem, 1fr) minmax(0, 2fr); gap: var(--lbn-space-3); }
.lbn-forum-editor__actions { display: flex; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-forum-editor__error { margin: 0; color: var(--lbn-danger); font-size: var(--lbn-text-xs); }
.lbn-forum-preview { min-height: 5rem; padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: 0 var(--lbn-radius-md) var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.forums-page-layout { display: block; }
.lbn-forum-editor__tabs { display: flex; gap: 0; margin-bottom: calc(var(--lbn-space-3) * -1); }
.lbn-forum-editor__tab { padding: 0.3125rem var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-bottom: 0; background: var(--lbn-bg-surface-raised); color: var(--lbn-text-primary); font: inherit; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); cursor: pointer; }
.lbn-forum-editor__tab:first-child { border-radius: var(--lbn-radius-md) 0 0; }
.lbn-forum-editor__tab:last-child { border-left: 0; border-radius: 0 var(--lbn-radius-md) 0 0; }
.lbn-forum-editor__tab.is-active { background: var(--lbn-bg-surface); }
.lbn-forum-grid { display: grid; align-items: center; border-bottom: 1px solid var(--lbn-border-default); }
.lbn-forum-grid--categories { grid-template-columns: minmax(0, 1fr) 5.625rem 12.5rem; }
.lbn-forum-grid--threads { grid-template-columns: minmax(0, 1fr) 5rem 10rem; }
.forums-list-head { padding: var(--lbn-space-2) var(--lbn-space-5); background: var(--lbn-bg-surface-raised); }
.forums-category-row { padding: var(--lbn-space-3) var(--lbn-space-5); }
.forums-thread-row { padding: var(--lbn-space-3) var(--lbn-space-5); }
.lbn-forum-list-heading { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); letter-spacing: 0.08em; text-transform: uppercase; }
.lbn-forum-list-heading.is-centered { text-align: center; }
.lbn-forum-list-state { padding: var(--lbn-space-5); }
.lbn-forum-list-state--danger { color: var(--lbn-danger); }
.lbn-forum-list-state--empty { color: var(--lbn-text-tertiary); text-align: center; }
.lbn-forum-list-state--roomy { padding: var(--lbn-space-6); }
.lbn-forum-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-4); margin-bottom: var(--lbn-space-6); }
.lbn-forum-category, .lbn-forum-thread-summary { display: flex; align-items: center; min-width: 0; }
.lbn-forum-category { gap: var(--lbn-space-3); }
.lbn-forum-thread-summary { gap: var(--lbn-space-3); }
.lbn-forum-category__icon { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface-raised); font-size: var(--lbn-text-lg); }
.lbn-forum-item-title { display: block; margin-bottom: 0.1875rem; color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); text-decoration: none; }
.lbn-forum-item-title--thread { font-weight: var(--lbn-weight-medium); }
.lbn-forum-item-title:hover, .lbn-forum-context-link:hover, .lbn-forum-author-link:hover { text-decoration: underline; }
.lbn-forum-item-description, .lbn-forum-last-post { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-forum-item-count { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-medium); text-align: center; }
.lbn-forum-last-post__author { margin-bottom: 0.125rem; color: var(--lbn-text-primary); font-weight: var(--lbn-weight-medium); }
.lbn-forum-muted { color: var(--lbn-text-tertiary); }
.lbn-forum-author-link { color: inherit; font-weight: var(--lbn-weight-bold); text-decoration: none; }
.lbn-forum-context-link { color: var(--lbn-action); text-decoration: none; }
.lbn-forum-tags { color: var(--lbn-action); }
.lbn-forum-thread-header { margin-bottom: var(--lbn-space-6); }
.lbn-forum-thread-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-forum-thread-badge { padding: 0.125rem var(--lbn-space-2); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-surface-raised); color: var(--lbn-text-primary); font-weight: var(--lbn-weight-medium); }
.lbn-forum-thread-badge--muted { color: var(--lbn-text-tertiary); font-weight: var(--lbn-weight-semibold); }
.lbn-forum-post-list { display: flex; flex-direction: column; gap: var(--lbn-space-4); margin-bottom: var(--lbn-space-8); }
.lbn-forum-post { display: grid; grid-template-columns: 5.625rem minmax(0, 1fr); gap: var(--lbn-space-4); padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-forum-post__author { text-align: center; }
.lbn-forum-post__avatar { width: 4rem; height: 4rem; margin: 0 auto var(--lbn-space-2); }
.lbn-forum-post__author-link { display: block; color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); overflow-wrap: anywhere; text-decoration: none; }
.lbn-forum-post__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-3); }
.lbn-forum-post__number { padding: 0.1875rem var(--lbn-space-2); border-radius: var(--lbn-radius-sm); background: var(--lbn-action); color: white; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-forum-post__timestamp { display: flex; align-items: center; gap: var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-forum-post__edited { color: var(--lbn-text-tertiary); font-style: italic; }
.lbn-forum-inline-editor { display: block; box-sizing: border-box; width: 100%; min-height: 5rem; padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: 0 var(--lbn-radius-sm) var(--lbn-radius-sm); background: var(--lbn-bg-surface-raised); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); resize: vertical; }
.lbn-forum-inline-editor__actions { display: flex; gap: var(--lbn-space-2); margin-top: var(--lbn-space-2); }
.lbn-button--compact { min-height: 2rem; padding: 0.375rem var(--lbn-space-3); font-size: var(--lbn-text-xs); }
.lbn-forum-post__actions { display: flex; gap: var(--lbn-space-3); margin-top: var(--lbn-space-3); padding-top: var(--lbn-space-3); border-top: 1px solid var(--lbn-border-default); }
.lbn-forum-post__action { padding: 0; border: 0; background: transparent; color: var(--lbn-action); font: inherit; font-size: var(--lbn-text-xs); cursor: pointer; }
.lbn-forum-post__action--danger { color: var(--lbn-danger); }
.lbn-forum-auth-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--lbn-space-2); }
.lbn-forum-visibility { display: inline-flex; align-items: center; margin-left: var(--lbn-space-2); padding: 0.125rem 0.4375rem; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-surface-raised); color: var(--lbn-success); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: 0.04em; text-transform: uppercase; vertical-align: 0.0625rem; }
.lbn-forum-visibility--members { color: var(--lbn-warning); }
.lbn-forum-list-footer { padding: var(--lbn-space-3) var(--lbn-space-5); border-top: 1px solid var(--lbn-border-default); text-align: center; }
.lbn-forum-refresh { border: 0; background: transparent; color: var(--lbn-action); font: inherit; font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-medium); cursor: pointer; }
.lbn-forum-poll, .lbn-forum-editorial-grid { margin-top: var(--lbn-space-5); }
.lbn-forum-editorial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--lbn-space-3); min-height: 8.25rem; }
.lbn-forum-editorial-card { padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-forum-editorial-card__title { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); }
.lbn-forum-editorial-card__body { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); white-space: pre-line; }
.lbn-forum-editorial-card__link { font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.lbn-forum-skeleton-row--category { min-height: 4.3125rem; }
.lbn-forum-skeleton-row--thread { min-height: 3.6875rem; }
.lbn-forum-skeleton-main { display: flex; align-items: center; min-width: 0; }
.lbn-forum-skeleton-main--category { gap: var(--lbn-space-3); }
.lbn-forum-skeleton-main--thread { gap: var(--lbn-space-3); }
.lbn-forum-skeleton-copy { display: grid; width: 100%; min-width: 0; gap: 0.4375rem; }
.lbn-forum-skeleton-copy--last-post { gap: 0.375rem; }
.lbn-forum-skeleton { border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-surface-raised); }
.lbn-forum-skeleton--category-icon { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border-radius: var(--lbn-radius-lg); }
.lbn-forum-skeleton--category-title { width: min(13.75rem, 70%); height: 0.8125rem; }
.lbn-forum-skeleton--category-description { width: min(26.25rem, 92%); height: 0.6875rem; }
.lbn-forum-skeleton--count { width: 1.875rem; height: 0.875rem; justify-self: center; }
.lbn-forum-skeleton--last-author { width: 6rem; height: 0.75rem; }
.lbn-forum-skeleton--last-time { width: 4.375rem; height: 0.625rem; }
.lbn-forum-skeleton--avatar { width: 2.125rem; height: 2.125rem; flex: 0 0 auto; }
.lbn-forum-skeleton--thread-title { width: min(20rem, 78%); height: 0.75rem; }
.lbn-forum-skeleton--thread-meta { width: min(15rem, 58%); height: 0.625rem; }
.lbn-forum-skeleton--reply-count { width: 1.75rem; height: 0.8125rem; justify-self: center; }
.lbn-forum-skeleton--thread-time { width: 4.5rem; height: 0.75rem; }
.lbn-news-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-5); flex-wrap: wrap; }
.lbn-news-list { display: grid; gap: var(--lbn-space-3); }
.lbn-news-card { padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-news-card__meta { margin-bottom: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-news-card__title { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-primary); font-size: var(--lbn-text-xl); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.lbn-news-card__body { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-reading); overflow-wrap: anywhere; }
.lbn-news-admin-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--lbn-space-4); align-items: start; }
.lbn-news-admin-panel { display: grid; gap: var(--lbn-space-3); padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-news-admin-panel__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-news-admin-panel__title { margin: 0; color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); }
.lbn-news-form { display: grid; gap: var(--lbn-space-3); }
.lbn-news-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-3); }
.lbn-news-form__label { display: block; margin-bottom: 0.3125rem; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-news-form__checkbox { display: flex; align-items: center; gap: var(--lbn-space-2); color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-news-form__actions { display: flex; align-items: center; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-unsaved-indicator { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-inline-link { color: var(--lbn-action); }
.lbn-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.lbn-news-upload { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbn-space-3); margin-top: var(--lbn-space-2); }
.lbn-news-upload__button { display: inline-flex; align-items: center; padding: var(--lbn-space-2) var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-surface-raised); color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); cursor: pointer; }
.lbn-news-upload__help { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-news-preview { padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.lbn-news-preview__label { margin-bottom: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-news-manage-list { display: grid; gap: var(--lbn-space-3); }
.lbn-news-manage-card { padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface-raised); }
.lbn-news-manage-card__header,.lbn-news-manage-card__footer { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-news-manage-card__footer { align-items: center; margin-top: var(--lbn-space-2); }
.lbn-news-manage-card__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--lbn-space-2); flex-wrap: wrap; }
.lbn-news-manage-card__type { margin-bottom: var(--lbn-space-1); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-news-manage-card__title { margin: 0 0 var(--lbn-space-1); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); overflow-wrap: anywhere; }
.lbn-news-manage-card__summary { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lbn-news-tabs { display: flex; gap: 0; margin-bottom: var(--lbn-space-3); overflow-x: auto; border-bottom: 1px solid var(--lbn-border-default); }
.lbn-news-tab { padding: var(--lbn-space-2) var(--lbn-space-3); border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--lbn-text-tertiary); font: inherit; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); white-space: nowrap; cursor: pointer; }
.lbn-news-tab.is-active { border-bottom-color: var(--lbn-action); color: var(--lbn-text-primary); }
.lbn-news-manage-card__copy { min-width: 0; }
.lbn-news-manage-card__status,.lbn-news-manage-card__updated { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-news-manage-card__status { font-weight: var(--lbn-weight-bold); white-space: nowrap; }
.lbn-news-manage-card__status.is-active { color: var(--lbn-success); }
.lbn-news-audit { margin-top: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface-raised); }
.lbn-news-audit__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); }
.lbn-news-audit__close { border: 0; background: transparent; color: inherit; font: inherit; font-size: var(--lbn-text-lg); cursor: pointer; }
.lbn-news-audit__events { display: grid; gap: 0.375rem; margin-top: var(--lbn-space-3); }
.lbn-news-audit__event { padding-top: 0.375rem; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-news-audit__event strong { color: var(--lbn-text-primary); }
.lbn-create-panel { padding: var(--lbn-space-4); }
.lbn-create-primary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-4); }
.lbn-create-field-label { display: block; margin-bottom: var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-medium); }
.lbn-create-fixed-value { width: 100%; box-sizing: border-box; padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-main); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); }
.lbn-create-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-2); }
.lbn-create-choice__title { font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.lbn-create-choice__description { margin-top: var(--lbn-space-1); font-size: var(--lbn-text-xs); opacity: .8; }
.lbn-create-help-link { display: inline-block; margin-top: var(--lbn-space-2); color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-decoration: none; }
.lbn-create-rules-panel { display: grid; gap: var(--lbn-space-3); margin-top: var(--lbn-space-3); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-main); }
.lbn-create-rules-panel__title { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-create-rules-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-3); }
.lbn-create-rules-grid--adaptive { grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); }
.lbn-create-rules-hint { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-create-notice { margin-top: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-main); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-create-actions { display: flex; gap: var(--lbn-space-3); margin-top: var(--lbn-space-6); flex-wrap: wrap; }
.lbn-create-advanced-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lbn-space-3); margin-top: var(--lbn-space-4); padding-top: var(--lbn-space-4); border-top: 1px solid var(--lbn-border-default); }
.lbn-forming-table { position: fixed; right: var(--lbn-space-3); bottom: var(--lbn-space-3); z-index: 80; width: min(24.375rem, calc(100vw - 1.5rem)); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-xl); background: var(--lbn-bg-surface); color: var(--lbn-text-primary); box-shadow: var(--lbn-shadow-lg); }
.lbn-forming-table--ready { border-color: var(--lbn-action); }
.lbn-forming-table__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-3); }
.lbn-forming-table__eyebrow { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-forming-table__title { margin-top: var(--lbn-space-1); color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); overflow-wrap: anywhere; }
.lbn-forming-table__summary,.lbn-forming-table__status { margin-top: var(--lbn-space-1); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-forming-table__count { color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); white-space: nowrap; }
.lbn-forming-table__progress { height: .375rem; margin: var(--lbn-space-3) 0; overflow: hidden; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-main); }
.lbn-forming-table__progress-fill { height: 100%; background: var(--lbn-action); }
.lbn-forming-table__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); }
.lbn-forming-table__fact { padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-main); }
.lbn-forming-table__fact-label { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-forming-table__fact-value { margin-top: var(--lbn-space-1); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.lbn-forming-table__players { display: flex; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-forming-table__player { display: inline-flex; align-items: center; gap: var(--lbn-space-1); padding: var(--lbn-space-1) var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-main); color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-forming-table__invite { display: grid; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); padding-top: var(--lbn-space-3); border-top: 1px solid var(--lbn-border-default); }
.lbn-forming-table__invite-fields { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--lbn-space-2); align-items: end; }
.lbn-forming-table > .lbn-button,.lbn-forming-table__invite > .lbn-button { width: 100%; }
.lbn-tab-button {
    min-height: var(--lbn-control-md);
    padding: 0;
    font: var(--lbn-weight-medium) var(--lbn-text-sm)/1 var(--lbn-font-ui);
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.lbn-tab-button:focus-visible {
    outline: 2px solid var(--lbn-attention-color);
    outline-offset: 2px;
}
.lbn-reading-width { width: min(100%, var(--lbn-reading-max)); }
.lbn-match-width { width: min(100%, var(--lbn-match-max)); margin-inline: auto; }

/* Game information and discovery detail */
.game-detail-layout { display: block; min-height: 100vh; }
.game-detail-main { min-width: 0; }
.game-detail-hero { position: relative; display: flex; height: 23.75rem; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: var(--lbn-space-6); background: linear-gradient(135deg, #0d1f3c 0%, #1a2f52 30%, #2d1f3c 60%, #1a0a0a 100%); }
.game-detail-hero__image { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.game-detail-hero__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,.3) 55%, rgba(0,0,0,.1)); }
.game-detail-hero__content { position: relative; z-index: 2; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
.game-detail-hero__eyebrow { display: inline-block; margin-bottom: var(--lbn-space-3); padding: .1875rem var(--lbn-space-2); border: 1px solid var(--lbn-action); border-radius: var(--lbn-radius-sm); color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .075rem; text-transform: uppercase; }
.game-detail-hero__title { margin: 0 0 var(--lbn-space-3); color: white; font-size: 3.25rem; font-weight: var(--lbn-weight-bold); letter-spacing: -.03125rem; line-height: 1.05; overflow-wrap: anywhere; }
.game-detail-hero__description { max-width: 35rem; margin: 0 0 var(--lbn-space-6); color: rgba(230,237,243,.75); font-size: var(--lbn-text-md); line-height: 1.6; }
.game-detail-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbn-space-3); }
.game-detail-hero-tags { display: flex; flex-wrap: wrap; gap: .4375rem; margin: -.625rem 0 1.125rem; }
.game-detail-hero-tag { padding: var(--lbn-space-1) var(--lbn-space-2); border: 1px solid rgba(197,214,231,.26); border-radius: var(--lbn-radius-pill); background: rgba(8,18,31,.58); color: #e4edf6; backdrop-filter: blur(.3125rem); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .021875rem; text-transform: uppercase; }
.game-detail-favorite { min-height: var(--lbn-control-md); padding: 0 var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: rgba(15,23,42,.52); color: var(--lbn-text-primary); font: inherit; font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); cursor: pointer; }
.game-detail-favorite.is-active { color: var(--lbn-warning); }
.game-detail-live-label { display: flex; align-items: center; gap: var(--lbn-space-2); margin-left: var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); }
.game-detail-live-label__dot { display: inline-block; width: .5rem; height: .5rem; flex: 0 0 auto; border-radius: 50%; background: var(--lbn-success); }
.game-detail-content { max-width: 73.75rem; margin: 0 auto; padding: 1.75rem var(--lbn-space-6); }
.game-page-section { margin-bottom: 1.375rem; }
.game-section-card { padding: 1.125rem; border: 1px solid var(--lbn-border-default); border-radius: .625rem; background: var(--lbn-bg-surface); }
.game-section-title,.game-panel-title { margin: 0 0 var(--lbn-space-4); color: var(--lbn-text-primary); font-size: var(--lbn-text-lg); font-weight: var(--lbn-weight-bold); }
.game-section-heading,.game-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-4); }
.game-section-description { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.game-section-empty { padding: 1.125rem; border: 1px dashed var(--lbn-border-default); border-radius: var(--lbn-radius-md); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); text-align: center; }
.game-detail-list,.game-activity-list { display: flex; flex-direction: column; gap: var(--lbn-space-3); }
.game-facts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11.25rem, 1fr)); gap: var(--lbn-space-3); }
.game-fact-card { min-width: 0; padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface); }
.game-fact-card__label { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .04375rem; overflow-wrap: anywhere; text-transform: uppercase; }
.game-fact-card__value { margin-top: .375rem; color: var(--lbn-text-primary); font-size: var(--lbn-text-md); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.game-activity-row { display: flex; align-items: flex-start; gap: var(--lbn-space-3); }
.game-activity-row__avatar { display: flex; width: 1.75rem; height: 1.75rem; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; background: var(--lbn-action); color: white; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.game-activity-row__copy { min-width: 0; flex: 1; }
.game-activity-row__summary { color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); line-height: 1.4; }
.game-activity-row__summary span { font-weight: var(--lbn-weight-semibold); }
.game-activity-row__detail { overflow: hidden; color: var(--lbn-action); font-size: var(--lbn-text-xs); text-overflow: ellipsis; white-space: nowrap; }
.game-activity-row__time { flex: 0 0 auto; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); white-space: nowrap; }
.game-activity-link { display: block; text-decoration: none; }
.game-competitive-disclosure { padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); }
.game-competitive-disclosure + .game-competitive-disclosure { margin-top: var(--lbn-space-3); }
.game-competitive-disclosure > summary { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); cursor: pointer; }
.game-competitive-disclosure__body { margin-top: var(--lbn-space-3); }
.game-panel-empty { padding: var(--lbn-space-8); border: 1px solid var(--lbn-border-default); border-radius: .625rem; background: var(--lbn-bg-surface); color: var(--lbn-text-tertiary); text-align: center; }
.game-panel-intro { margin: -.75rem 0 var(--lbn-space-4); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.game-panel-intro__link,.game-panel-heading__action { font-weight: var(--lbn-weight-bold); text-decoration: none; }
.game-panel-title--flush { margin: 0; }
.game-panel-heading__action { font-size: var(--lbn-text-xs); }
.game-summary-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface); text-decoration: none; }
.game-summary-row__copy { min-width: 0; }
.game-summary-row__title { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.game-summary-row__meta { margin-top: var(--lbn-space-1); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); overflow-wrap: anywhere; }
.game-summary-row__aside { text-align: right; }
.game-summary-row__accent { color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.game-rankings { overflow: hidden; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface); }
.game-ranking-row { display: grid; grid-template-columns: 2.625rem minmax(0,1fr) 6.25rem 5.625rem; align-items: center; gap: var(--lbn-space-3); padding: .6875rem var(--lbn-space-4); border-bottom: 1px solid var(--lbn-border-strong); text-decoration: none; }
.game-ranking-row:last-child { border-bottom: 0; }
.game-ranking-row__rank,.game-ranking-row__games { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.game-ranking-row__name { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.game-ranking-row__rating { color: var(--lbn-success); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); text-align: right; }
.game-ranking-row__games { font-weight: var(--lbn-weight-regular); text-align: right; }
.lbn-joinable-table { padding: var(--lbn-space-2) var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-surface); }
.lbn-joinable-table-row { display: grid; grid-template-columns: minmax(11.25rem,1.8fr) 5.375rem 4.625rem 4.375rem 6rem auto; align-items: center; gap: var(--lbn-space-2); }
.lbn-joinable-table__copy { min-width: 0; }
.lbn-joinable-table__title { margin: 0; color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); overflow-wrap: anywhere; }
.lbn-joinable-table__summary,.lbn-joinable-table__meta { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-joinable-table__meta { text-align: center; }
.lbn-joinable-table__meta.is-rated { color: var(--lbn-action); font-weight: var(--lbn-weight-bold); }
.lbn-joinable-table .lbn-icon-button { width: 1.875rem; height: 1.875rem; min-height: 1.875rem; }
.lbn-joinable-table__details { display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); margin-top: var(--lbn-space-2); padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }

/* Daily challenge discovery */
.lbn-daily-state { color: var(--lbn-text-tertiary); }
.lbn-daily-state--danger { color: var(--lbn-danger); }
.lbn-daily-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,16.25rem),1fr)); gap: var(--lbn-space-4); max-width: 61.25rem; }
.lbn-daily-card { padding: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-daily-card__eyebrow { margin: 0 0 .3125rem; color: var(--lbn-warning); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .08em; text-transform: uppercase; }
.lbn-daily-card__title { margin: 0; color: var(--lbn-text-primary); font-size: 1.5625rem; }
.lbn-daily-card__description { margin: .5625rem 0 var(--lbn-space-4); color: var(--lbn-text-tertiary); line-height: 1.55; }
.lbn-daily-card__note { margin: -.375rem 0 var(--lbn-space-4); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }

/* About, build information, notices, and pricing */
.lbn-info-state { color: var(--lbn-text-tertiary); }
.lbn-info-stack { display: grid; gap: 1.125rem; }
.lbn-info-stack--reading { max-width: 61.25rem; }
.lbn-info-panel { padding: 1.125rem; border: 1px solid var(--lbn-border-default); border-radius: .625rem; background: var(--lbn-bg-surface); color: var(--lbn-text-primary); }
.lbn-info-panel__title { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-primary); font-size: var(--lbn-text-lg); }
.lbn-info-panel__subtitle { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-primary); font-size: var(--lbn-text-md); }
.lbn-info-panel__copy { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.lbn-info-panel__copy--reading { line-height: var(--lbn-leading-reading); }
.lbn-info-panel__copy--spaced { margin-bottom: var(--lbn-space-3); }
.lbn-info-panel__copy--danger { color: var(--lbn-danger); }
.lbn-info-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,13.75rem),1fr)); gap: var(--lbn-space-3); }
.lbn-info-grid--wide { grid-template-columns: repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
.lbn-info-table,.lbn-about-notice-list { display: grid; gap: var(--lbn-space-2); }
.lbn-info-table__row { display: grid; align-items: start; gap: var(--lbn-space-3); padding: .5625rem 0; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-info-table__row--component { grid-template-columns: minmax(8.75rem,1.2fr) minmax(6.25rem,.8fr) minmax(11.25rem,1.4fr); }
.lbn-info-table__row--service { grid-template-columns: minmax(7.5rem,.8fr) minmax(13.75rem,1.8fr) 6.25rem; }
.lbn-info-table__row--provider { grid-template-columns: minmax(7.5rem,.8fr) minmax(13.75rem,1.8fr) 11.875rem; }
.lbn-info-table__key { color: var(--lbn-text-primary); font-weight: var(--lbn-weight-bold); }
.lbn-info-status { color: var(--lbn-text-tertiary); font-weight: var(--lbn-weight-bold); }
.lbn-info-status.is-active { color: var(--lbn-success); }
.lbn-info-status.is-configured { color: var(--lbn-action); }
.lbn-about-notice-row { display: grid; gap: var(--lbn-space-2); padding: .5625rem 0; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: 1.45; }
.lbn-about-notice-row__title { color: var(--lbn-text-primary); font-weight: var(--lbn-weight-bold); }
.lbn-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,17.5rem),1fr)); gap: .875rem; }
.lbn-pricing-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); margin-top: 1.125rem; }

/* Content Studio layout and workflow */
.lbn-status-chip.is-danger,.lbn-admin-quality__issue.is-danger { color: var(--lbn-danger); }
.lbn-status-chip.is-warning { color: var(--lbn-warning); }
.lbn-status-chip.is-success { color: var(--lbn-success); }
.lbn-admin-studio-layout { display: flex; align-items: flex-start; flex-wrap: wrap; gap: .875rem; }
.lbn-admin-studio-layout__rail,.lbn-admin-studio-layout__canvas,.lbn-admin-studio-layout__inspector { display: grid; gap: .875rem; min-width: min(100%,14.375rem); }
.lbn-admin-studio-layout__rail { flex: 1 1 14.375rem; max-width: 18.75rem; }
.lbn-admin-studio-layout__canvas { flex: 3 1 35rem; min-width: min(100%,22.5rem); }
.lbn-admin-studio-layout__inspector { flex: 1.2 1 17.5rem; max-width: 23.75rem; min-width: min(100%,16.25rem); }
.lbn-admin-studio-fallback { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: .625rem; background: var(--lbn-bg-surface); }
.lbn-admin-studio-fallback__title,.lbn-admin-studio-workflow__eyebrow { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-admin-studio-fallback__copy,.lbn-admin-studio-workflow__summary { margin-top: .125rem; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-admin-studio-error { margin: var(--lbn-space-3) 0 0; color: var(--lbn-danger); font-size: var(--lbn-text-xs); }
.lbn-admin-outline-list,.lbn-admin-quality__issues { display: grid; gap: .375rem; }
.lbn-admin-drop-zone { padding: var(--lbn-space-2) .375rem; border: 1px dashed var(--lbn-border-default); border-radius: .4375rem; background: var(--lbn-bg-surface-raised); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-align: center; }
.lbn-admin-drop-zone--compact { padding: var(--lbn-space-1) .375rem; background: transparent; }
.lbn-admin-definition-list { display: grid; gap: .3125rem; }
.lbn-admin-definition-row { display: flex; justify-content: space-between; gap: var(--lbn-space-2); padding-top: .3125rem; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-admin-studio-workflow__state { margin-top: .125rem; color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.lbn-admin-quality { display: grid; gap: var(--lbn-space-3); }
.lbn-admin-quality__tiles { display: grid; grid-template-columns: repeat(auto-fit,minmax(5.125rem,1fr)); gap: var(--lbn-space-2); }
.lbn-admin-quality__issue { padding-top: .375rem; border-top: 1px solid var(--lbn-border-default); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-admin-inspector { display: grid; gap: var(--lbn-space-2); }
.lbn-admin-inspector__title { color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); line-height: 1.25; overflow-wrap: anywhere; }
.lbn-admin-inspector__meta { margin-top: .1875rem; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-admin-inspector__link { color: var(--lbn-action); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); text-decoration: none; }

/* Shared rating, achievement, shell, and footer surfaces */
.lbn-rating-summary,.lbn-badge-summary { display: grid; gap: var(--lbn-space-3); }
.lbn-rating-summary__header { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-rating-summary__link { font-weight: var(--lbn-weight-bold); text-decoration: none; }
.lbn-rating-reliability { padding: .625rem; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.lbn-rating-reliability__score,.lbn-rating-row__main { display: flex; justify-content: space-between; gap: var(--lbn-space-3); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.lbn-rating-reliability__status,.lbn-rating-reliability__details,.lbn-rating-row__meta { margin-top: .1875rem; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-rating-reliability__status { font-weight: var(--lbn-weight-bold); text-transform: uppercase; }
.lbn-rating-reliability__details { line-height: 1.35; }
.lbn-rating-empty { margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); }
.lbn-rating-list { display: grid; gap: var(--lbn-space-2); }
.lbn-rating-row { padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-default); }
.lbn-badge-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(8.125rem,1fr)); gap: var(--lbn-space-2); }
.lbn-badge-card { overflow: hidden; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.lbn-badge-card__image-frame { display: flex; width: 100%; aspect-ratio: 1; align-items: center; justify-content: center; overflow: hidden; }
.lbn-badge-card__image { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.lbn-badge-card__copy { padding: .4375rem var(--lbn-space-2) var(--lbn-space-2); text-align: center; }
.lbn-badge-card__title { color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.lbn-badge-card__date { margin-top: .125rem; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); line-height: 1.3; }
.lbn-shell-main { display: flex; min-width: 0; flex: 1; flex-direction: column; overflow-y: visible; background: var(--lbn-bg-canvas); }
.lbn-app-footer { flex: 0 0 auto; padding: .625rem var(--lbn-space-5); border-top: 1px solid var(--lbn-border-default); background: var(--lbn-bg-surface); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lbn-app-footer__inner { display: flex; max-width: 73.75rem; margin: 0 auto; align-items: center; justify-content: center; flex-wrap: wrap; gap: .625rem; text-align: center; }
.lbn-app-footer__identity,.lbn-app-footer__nav { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }
.lbn-app-footer__identity { gap: var(--lbn-space-2); }
.lbn-app-footer__identity strong { color: var(--lbn-text-primary); font-size: var(--lbn-text-xs); }
.lbn-app-footer__nav { gap: .875rem; }
.lbn-app-footer__nav a { color: var(--lbn-text-tertiary); text-decoration: none; }
.lbn-app-footer__nav a:hover { color: var(--lbn-text-primary); text-decoration: underline; }
.lbn-app-footer__social { display: inline-flex; align-items: center; gap: 0; }
.lbn-app-footer__social-link { display: inline-flex; width: 1rem; height: 1.125rem; align-items: center; justify-content: center; opacity: .78; }
.lbn-app-footer__social-link svg { display: block; width: .875rem; height: .875rem; }
.lbn-not-found { max-width: 57.5rem; margin: 0 auto; padding: 2.75rem var(--lbn-space-6) 3.5rem; }
.lbn-not-found__card { padding: var(--lbn-space-6); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface); }
.lbn-not-found__eyebrow { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .08em; text-transform: uppercase; }
.lbn-not-found__title { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-primary); font-size: var(--lbn-text-2xl); }
.lbn-not-found__copy { margin: 0 0 1.125rem; color: var(--lbn-text-tertiary); line-height: 1.6; }
.lbn-not-found__actions { display: flex; flex-wrap: wrap; gap: .625rem; }

@media (max-width: 40rem) {
    .lbn-match-page { padding: var(--lbn-space-3); }
    .lbn-info-table__row--component,.lbn-info-table__row--service,.lbn-info-table__row--provider { grid-template-columns: minmax(0,1fr); gap: var(--lbn-space-1); }
    .lbn-pricing-actions .lbn-button { width: 100%; }
}

@media (max-width: 56.25rem) {
    .game-detail-hero { height: 20rem; padding: var(--lbn-space-5); }
    .game-detail-hero__title { font-size: 2.375rem; }
    .game-detail-content { padding: 1.375rem var(--lbn-space-4); }
}

@media (max-width: 35rem) {
    .game-detail-hero { height: auto; min-height: 20.625rem; }
    .game-detail-hero__title { font-size: 2rem; }
    .game-detail-hero-actions :is(button,a) { width: 100%; justify-content: center; }
    .game-detail-live-label { width: 100%; justify-content: center; margin-left: 0; }
    .game-summary-row { grid-template-columns: minmax(0,1fr); }
    .game-summary-row__aside { text-align: left; }
    .game-ranking-row { grid-template-columns: 2rem minmax(0,1fr) auto; }
    .game-ranking-row__games { grid-column: 2 / -1; text-align: left; }
    .game-activity-row__time { white-space: normal; text-align: right; }
    .lbn-joinable-table-row { grid-template-columns: minmax(0,1fr) !important; }
    .lbn-joinable-table-row > button { width: 100%; }
}

:where(.lbn-button, .lbn-input, .lbn-select, .lbn-textarea, .lbn-icon-button):focus-visible {
    outline: 2px solid var(--lbn-attention-color);
    outline-offset: 2px;
}

@media (max-width: 40rem) {
    .lbn-panel { padding: var(--lbn-space-4); }
    .lbn-fact-list__row { grid-template-columns: 1fr; gap: var(--lbn-space-1); }
    .lbn-input, .lbn-select, .lbn-textarea { font-size: var(--lbn-text-md); }
    .lbn-board-toolbar { align-items: center; justify-content: space-between; gap: 2px; }
    .lbn-board-toolbar__group {
        flex: 0 1 auto;
        min-width: 0;
        gap: 1px;
        justify-content: flex-start;
    }
    .lbn-board-toolbar__group--end {
        flex: 0 0 auto;
        margin-left: 0;
    }
    .lbn-board-toolbar .lbn-icon-button {
        width: 28px;
        min-width: 28px;
    }
    .lbn-board-toolbar .lbn-button--small { min-height: 28px; padding-inline: 5px; }
    .lbn-board-toolbar .lbn-button--small:not(.lbn-icon-button) { min-width: 42px; padding-inline: 5px; }
    .lbn-turn-deadline { margin-bottom: 0; }
    .lbn-match-timing-panel { margin-bottom: var(--lbn-space-2); }
    .lbn-modal-backdrop { align-items: flex-end; padding: var(--lbn-space-2); }
    .lbn-modal { max-height: calc(100dvh - var(--lbn-space-4)); padding: var(--lbn-space-4); }
    .lbn-modal__fields { grid-template-columns: minmax(0, 1fr); }
    .lbn-modal__actions { flex-direction: column-reverse; }
    .lbn-modal__actions .lbn-button { width: 100%; }
    .lbn-setting-row--select { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .lbn-toast { right: var(--lbn-space-3); bottom: var(--lbn-space-3); width: calc(100vw - 1.5rem); }
    .lbn-timing-panel { align-items: stretch; flex-direction: column; }
    .lbn-timing-panel__actions { justify-content: stretch; }
    .lbn-timing-panel__actions .lbn-button { flex: 1 1 auto; }
    .lbn-live-controls { justify-content: space-between; }
    .sysadmin-act-as-overlay { top: auto; bottom: var(--lbn-space-2); }
    .sysadmin-act-as-overlay select { max-width: min(9.375rem, calc(100vw - 4.625rem)); }
    .lbn-admin-studio-toolbar__actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lbn-admin-studio-toolbar__actions .lbn-button { width: 100%; }
    .lbn-admin-studio-workflow { align-items: stretch; flex-direction: column; }
    .lbn-admin-studio-workflow__actions { display: grid; grid-template-columns: 1fr; }
    .lbn-admin-studio-workflow__actions .lbn-button { width: 100%; }
    .lbn-admin-inspector-facts { grid-template-columns: minmax(0, 1fr); }
    .lbn-admin-preview-controls { justify-content: stretch; }
    .lbn-admin-preview-controls :is(.lbn-input, .lbn-select) { width: 100%; }
    .lbn-admin-metric-row { grid-template-columns: minmax(0, 1fr) auto; }
    .lbn-admin-fact-row { flex-direction: column; gap: var(--lbn-space-1); }
    .lbn-admin-fact-row__value { text-align: left; }
    .lbn-admin-section__header { align-items: stretch; }
    .lbn-admin-section__actions { width: 100%; justify-content: stretch; }
    .lbn-admin-section__actions .lbn-button { flex: 1 1 auto; }
    .lbn-admin-section__filter,.lbn-admin-section__filter--compact { width: 100%; }
    .lbn-admin-tool-panel { padding: var(--lbn-space-4); }
    .lbn-admin-tool-actions { align-items: stretch; flex-direction: column; }
    .lbn-admin-tool-actions .lbn-button { width: 100%; }
    .lbn-admin-log-filters { grid-template-columns: minmax(0, 1fr); flex-basis: 100%; }
    .lbn-admin-log-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lbn-admin-log-actions .lbn-button { width: 100%; }
    .lbn-admin-toolbar { align-items: stretch; display: grid; grid-template-columns: minmax(0, 1fr); }
    .lbn-admin-toolbar :is(.lbn-input, .lbn-select, .lbn-button) { width: 100%; }
    .lbn-admin-inline-form,.lbn-admin-inline-form--wide { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .lbn-admin-inline-form .lbn-button,.lbn-admin-inline-form--wide .lbn-button { width: 100%; }
    .lbn-forum-header__actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lbn-forum-header__actions .lbn-button { width: 100%; }
    .lbn-forum-page-header { flex-direction: column; }
    .lbn-forum-page-header .lbn-button { width: 100%; }
    .lbn-forum-editor { padding: var(--lbn-space-4); }
    .lbn-forum-editor__fields { grid-template-columns: minmax(0, 1fr); }
    .lbn-forum-editor__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
    .lbn-forum-editor__actions .lbn-button { width: 100%; }
    .lbn-forum-grid--categories,.lbn-forum-grid--threads { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--lbn-space-3); }
    .lbn-forum-grid--categories > :last-child,.lbn-forum-grid--threads > :last-child { display: none; }
    .forums-list-head { padding: var(--lbn-space-2) var(--lbn-space-3); }
    .forums-category-row,.forums-thread-row { padding: var(--lbn-space-3); }
    .lbn-forum-category,.lbn-forum-thread-summary { min-width: 0; }
    .lbn-forum-category > div:last-child,.lbn-forum-thread-summary > div:last-child { min-width: 0; }
    .lbn-forum-item-title,.lbn-forum-item-description { overflow-wrap: anywhere; }
    .lbn-forum-visibility { margin-left: var(--lbn-space-1); }
    .lbn-forum-post { grid-template-columns: minmax(0, 1fr); padding: var(--lbn-space-4); }
    .lbn-forum-post__author { display: flex; align-items: center; gap: var(--lbn-space-2); text-align: left; }
    .lbn-forum-post__avatar { width: 2.5rem; height: 2.5rem; margin: 0; }
    .lbn-forum-post__header { align-items: flex-start; }
    .lbn-forum-post__timestamp { align-items: flex-end; flex-direction: column; gap: 0; text-align: right; }
    .lbn-news-admin-grid { grid-template-columns: minmax(0, 1fr); }
    .lbn-news-admin-panel { padding: var(--lbn-space-4); }
    .lbn-news-form__grid { grid-template-columns: minmax(0, 1fr); }
    .lbn-news-form__actions { align-items: stretch; flex-direction: column; }
    .lbn-news-form__actions .lbn-button { width: 100%; }
    .lbn-news-manage-card__actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lbn-news-manage-card__actions .lbn-button { width: 100%; }
    .lbn-create-primary-grid,.lbn-create-choice-grid,.lbn-create-rules-grid,.lbn-create-advanced-grid { grid-template-columns: minmax(0, 1fr); }
    .lbn-create-actions > * { flex: 1 1 12rem; }
    .lbn-forming-table { right: var(--lbn-space-2); bottom: var(--lbn-space-2); width: calc(100vw - var(--lbn-space-4)); }
    .lbn-forming-table__invite-fields { grid-template-columns: minmax(0, 1fr); }
}

/* Game catalog and lobby */
.lbn-catalog-header {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: var(--lbn-space-3);
    justify-content: space-between;
    margin-bottom: var(--lbn-space-4);
}
.lbn-catalog-header .lbn-page-header { flex: 1 1 32rem; margin-bottom: 0; }
.lbn-catalog-header .lbn-count-badge { margin-top: var(--lbn-space-1); }
.lbn-count-badge {
    background: var(--lbn-bg-panel);
    border: 1px solid var(--lbn-border-soft);
    border-radius: var(--lbn-radius-pill);
    color: var(--lbn-text-muted);
    font-size: var(--lbn-text-sm);
    padding: var(--lbn-space-1) var(--lbn-space-3);
    white-space: nowrap;
}
.lbn-notice {
    background: var(--lbn-bg-panel);
    border: 1px solid var(--lbn-border-soft);
    border-radius: var(--lbn-radius-md);
    color: var(--lbn-text-main);
    font-size: var(--lbn-text-sm);
    margin-bottom: var(--lbn-space-4);
    padding: var(--lbn-space-3);
}
.lbn-notice-muted { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-notice a { color: var(--lbn-accent-blue); font-weight: 700; text-decoration: none; }
.lbn-catalog-notice { margin-top: calc(-1 * var(--lbn-space-3)); }
.lbn-loading-copy { color: var(--lbn-text-muted); }
.lbn-feedback-panel {
    background: var(--lbn-bg-panel);
    border: 1px solid var(--lbn-border-soft);
    border-radius: var(--lbn-radius-md);
    color: var(--lbn-text-muted);
    padding: var(--lbn-space-4);
}
.lbn-feedback-panel p { margin: 0 0 var(--lbn-space-3); }
.lbn-button-block { width: 100%; }
.lbn-catalog-grid {
    display: grid;
    gap: var(--lbn-space-3);
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
}
.lbn-catalog-card { color: inherit; display: flex; flex-direction: column; height: 100%; min-width: 0; overflow: hidden; }
.browse-game-flip { aspect-ratio: 1; flex: 0 0 auto; perspective: 900px; position: relative; width: 100%; }
.browse-game-flip-inner { inset: 0; position: absolute; transform-style: preserve-3d; transition: transform var(--lbn-duration-slow) var(--lbn-ease-standard); }
.browse-game-flip.is-flipped .browse-game-flip-inner { transform: rotateY(180deg); }
.browse-game-face { backface-visibility: hidden; clip-path: inset(0); inset: 0; overflow: hidden; position: absolute; -webkit-backface-visibility: hidden; }
.browse-game-front { background: var(--lbn-bg-panel-alt); }
.browse-game-front--blue { background: linear-gradient(135deg, #1c3a5e, #2d5f8f); }
.browse-game-front--violet { background: linear-gradient(135deg, #3d1c5e, #6b2d9f); }
.browse-game-front--green { background: linear-gradient(135deg, #1c3d2d, #2d6b50); }
.browse-game-front--orange { background: linear-gradient(135deg, #5e2a1c, #9f4a2d); }
.browse-game-front--slate { background: linear-gradient(135deg, #1c3554, #3a5c8a); }
.browse-game-front--brown { background: linear-gradient(135deg, #3d2c1c, #7a5530); }
.browse-game-front--steel { background: linear-gradient(135deg, #1c2e3d, #2d5070); }
.browse-game-front--plum { background: linear-gradient(135deg, #3d1c3a, #7a2d70); }
.lbn-user-avatar { display: grid; flex: 0 0 auto; place-items: center; overflow: hidden; }
.lbn-user-avatar--28 { width: 28px; height: 28px; flex-basis: 28px; }
.lbn-user-avatar--30 { width: 30px; height: 30px; flex-basis: 30px; }
.lbn-user-avatar--34 { width: 34px; height: 34px; flex-basis: 34px; }
.lbn-user-avatar--36 { width: 36px; height: 36px; flex-basis: 36px; }
.lbn-user-avatar--38 { width: 38px; height: 38px; flex-basis: 38px; }
.lbn-user-avatar--64 { width: 64px; height: 64px; flex-basis: 64px; }
.lbn-user-avatar-fallback { border-radius: 50%; color: var(--lbn-text-inverse); font-weight: 700; }
.lbn-user-avatar-fallback.lbn-user-avatar--28 { font-size: var(--lbn-text-xs); }
.lbn-user-avatar-fallback.lbn-user-avatar--30 { font-size: var(--lbn-text-xs); }
.lbn-user-avatar-fallback.lbn-user-avatar--34 { font-size: 13px; }
.lbn-user-avatar-fallback.lbn-user-avatar--36 { font-size: 14px; }
.lbn-user-avatar-fallback.lbn-user-avatar--38 { font-size: 14px; }
.lbn-user-avatar-fallback.lbn-user-avatar--64 { font-size: 24px; }
.lbn-user-avatar-fallback--default { background: var(--lbn-accent-blue); }
.lbn-user-avatar-fallback--one { background: #4a6fa5; }
.lbn-user-avatar-fallback--two { background: #3a5c8a; }
.lbn-user-avatar-fallback--three { background: #2d4d73; }
.lbn-user-avatar-fallback--four { background: #5a7fb8; }
.lbn-user-avatar-fallback--five { background: #3f6499; }
.lbn-catalog-cover { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; transform: scale(1.01); width: 100%; }
.browse-game-back { background: linear-gradient(145deg,var(--lbn-bg-panel-alt),var(--lbn-bg-main)); box-sizing: border-box; color: var(--lbn-text-main); display: flex; flex-direction: column; gap: var(--lbn-space-2); overflow-y: auto; padding: var(--lbn-space-3); transform: rotateY(180deg); }
.browse-game-back dl { display: grid; gap: var(--lbn-space-1); margin: 0; }
.browse-game-back dl div { display: grid; gap: var(--lbn-space-1); grid-template-columns: 4.25rem minmax(0,1fr); }
.browse-game-back dt { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.browse-game-back dd { font-size: var(--lbn-text-xs); font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.browse-game-back p { color: var(--lbn-text-muted); display: -webkit-box; font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-heading); margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.lbn-catalog-card-tools { align-items: center; display: flex; flex: 0 0 auto; gap: var(--lbn-space-1); }
.lbn-catalog-tool-button { align-items: center; background: transparent; border: 1px solid transparent; border-radius: var(--lbn-radius-sm); color: var(--lbn-text-muted); cursor: pointer; display: inline-flex; height: var(--lbn-control-sm); justify-content: center; padding: 0; transition: background-color var(--lbn-duration-fast) var(--lbn-ease-standard),border-color var(--lbn-duration-fast) var(--lbn-ease-standard),color var(--lbn-duration-fast) var(--lbn-ease-standard); width: var(--lbn-control-sm); }
.lbn-catalog-tool-button:hover,.lbn-catalog-tool-button:focus-visible { background: var(--lbn-bg-panel-alt); border-color: var(--lbn-border-soft); color: var(--lbn-text-main); }
.browse-game-flip-button { border-radius: 50%; font-size: var(--lbn-text-md); font-weight: 700; }
.lbn-catalog-favorite { font-size: var(--lbn-text-lg); font-weight: 700; line-height: 1; }
.lbn-catalog-favorite.is-active { color: var(--lbn-accent-gold); }
.lbn-catalog-private-badge { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-pill); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; left: var(--lbn-space-2); padding: var(--lbn-space-1) var(--lbn-space-2); position: absolute; text-transform: uppercase; top: var(--lbn-space-2); }
.lbn-catalog-card-title { align-items: center; display: flex; gap: var(--lbn-space-2); justify-content: space-between; min-height: var(--lbn-control-md); padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-catalog-card-title a { color: var(--lbn-text-main); flex: 1 1 auto; font-size: var(--lbn-text-sm); font-weight: 700; line-height: var(--lbn-leading-heading); min-width: 0; overflow-wrap: anywhere; text-decoration: none; }
.lbn-catalog-card-actions { background: var(--lbn-bg-panel); border-top: 1px solid var(--lbn-border-soft); margin-top: auto; padding: var(--lbn-space-3); }
.lbn-catalog-card-actions .lbn-button { width: 100%; }
.lbn-lobby-section { margin-bottom: var(--lbn-space-6); }
.lbn-section-header { align-items: flex-end; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); justify-content: space-between; margin-bottom: var(--lbn-space-3); }
.lbn-section-header h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); margin: 0; }
.lbn-section-header p { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: var(--lbn-space-1) 0 0; }
.lbn-lobby-stack { display: grid; gap: var(--lbn-space-3); }
.lbn-empty-state { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-6); text-align: center; }
.lbn-empty-state p { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0; }
.lbn-event-list { display: grid; gap: var(--lbn-space-2); }
.lbn-compact-event-row { align-items: center; background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(11.25rem,1.5fr) minmax(5.625rem,.7fr) minmax(5.625rem,.7fr) minmax(6.875rem,.8fr) minmax(8.125rem,1fr) auto; padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-compact-event-row h3 { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); margin: 0; overflow-wrap: anywhere; }
.lbn-event-format { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-event-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-event-status { min-width: 0; }
.lbn-event-status span { color: var(--lbn-accent-green); display: block; font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-event-status small { color: var(--lbn-text-muted); display: block; font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-panel-title { color: var(--lbn-text-main); font-size: var(--lbn-text-lg); margin: 0 0 var(--lbn-space-3); }
.lbn-empty-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: 0; }
.lbn-tournament-admin-panel { margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-4); }
.lbn-tournament-admin-form { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(13.75rem,1fr)); }
.lbn-tournament-admin-form label { display: grid; gap: var(--lbn-space-2); min-width: 0; }
.lbn-tournament-admin-form label > span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-tournament-admin-form label > small { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-tournament-admin-form input:not([type=checkbox]),.lbn-tournament-admin-form select { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); box-sizing: border-box; color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-sm); min-height: var(--lbn-control-md); min-width: 0; padding: 0 var(--lbn-space-3); width: 100%; }
.lbn-tournament-admin-form input:focus-visible,.lbn-tournament-admin-form select:focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: var(--lbn-focus-offset); }
.lbn-tournament-checkbox { align-items: center; align-self: end; display: flex !important; min-height: var(--lbn-control-md); }
.lbn-tournament-checkbox input { height: 1.125rem; width: 1.125rem; }
.lbn-tournament-form-action { align-items: end; display: flex; }
.lbn-tournament-form-action button { width: 100%; }
.lbn-tournament-admin-list { padding: var(--lbn-space-4); }
.lbn-tournament-admin-rows { display: grid; gap: var(--lbn-space-2); }
.lbn-tournament-admin-row { align-items: center; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: flex; gap: var(--lbn-space-3); justify-content: space-between; padding: var(--lbn-space-2); }
.lbn-tournament-admin-row > div { min-width: 0; }
.lbn-tournament-admin-row-title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; overflow-wrap: anywhere; }
.lbn-tournament-admin-row-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-tournament-list { display: grid; gap: var(--lbn-space-2); }
.lbn-compact-tournament-row { align-items: center; background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(11.25rem,1.4fr) 7.5rem minmax(11.875rem,1fr) 7.5rem 5.625rem auto; padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-compact-tournament-row h3 { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); margin: 0; overflow-wrap: anywhere; }
.lbn-tournament-format,.lbn-tournament-start { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-tournament-status { color: var(--lbn-accent-green); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-tournament-round { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-tournament-page-header { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); justify-content: space-between; margin-bottom: var(--lbn-space-4); }
.lbn-tournament-summary,.lbn-tournament-section { margin-bottom: var(--lbn-space-3); padding: var(--lbn-space-4); }
.lbn-tournament-summary-header { align-items: flex-start; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); justify-content: space-between; }
.lbn-tournament-summary-header h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); margin: 0; overflow-wrap: anywhere; }
.lbn-tournament-manage-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.lbn-tournament-start-copy { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; margin: var(--lbn-space-1) 0 var(--lbn-space-3); }
.lbn-tournament-facts { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.lbn-tournament-facts span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-tournament-facts .is-primary { color: var(--lbn-text-main); font-weight: 700; }
.lbn-tournament-facts .is-success { color: var(--lbn-accent-green); font-weight: 700; }
.lbn-tournament-edit-form { display: grid; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-3); padding: var(--lbn-space-4); }
.lbn-tournament-edit-form > h3,.lbn-tournament-section > h3 { color: var(--lbn-text-main); font-size: var(--lbn-text-md); margin: 0; }
.lbn-tournament-edit-fields { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(11.25rem,1fr)); }
.lbn-tournament-edit-form label { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-1); }
.lbn-tournament-edit-form input:not([type=checkbox]),.lbn-tournament-edit-form select { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); box-sizing: border-box; color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-sm); min-height: var(--lbn-control-md); min-width: 0; padding: 0 var(--lbn-space-3); width: 100%; }
.lbn-tournament-edit-form input:focus-visible,.lbn-tournament-edit-form select:focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: var(--lbn-focus-offset); }
.lbn-tournament-edit-actions { display: flex; gap: var(--lbn-space-2); justify-content: flex-end; }
.lbn-standings-grid { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); margin-top: var(--lbn-space-3); overflow-x: auto; }
.lbn-standings-row { align-items: center; border-bottom: 1px solid var(--lbn-border-soft); color: var(--lbn-text-main); display: grid; font-size: var(--lbn-text-xs); gap: var(--lbn-space-2); grid-template-columns: 2.5rem minmax(8.75rem,1fr) 4.375rem repeat(5,3.375rem); min-width: 37.5rem; padding: var(--lbn-space-2); }
.lbn-standings-row:last-child { border-bottom: 0; }
.lbn-standings-header { color: var(--lbn-text-muted); font-weight: 700; }
.lbn-standings-row .is-muted { color: var(--lbn-text-muted); }
.lbn-standings-row .is-player { color: var(--lbn-text-main); font-weight: 700; text-decoration: none; }
.lbn-standings-row .is-points { color: var(--lbn-accent-green); font-weight: 700; }
.lbn-round-list { display: grid; gap: var(--lbn-space-3); margin-top: var(--lbn-space-3); }
.lbn-round-card { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-3); }
.lbn-round-card h4 { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); margin: 0 0 var(--lbn-space-2); }
.lbn-pairing-list { display: grid; gap: var(--lbn-space-2); }
.lbn-pairing-row { align-items: center; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); display: flex; gap: var(--lbn-space-2); justify-content: space-between; padding: var(--lbn-space-2); }
.lbn-pairing-players,.lbn-pairing-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.lbn-pairing-players,.lbn-pairing-actions,.lbn-pairing-players a { font-size: var(--lbn-text-xs); }
.lbn-pairing-players .is-player,.lbn-pairing-players a { color: var(--lbn-text-main); font-weight: 700; text-decoration: none; }
.lbn-pairing-players .is-muted,.lbn-pairing-actions > span { color: var(--lbn-text-muted); }
/* Player profiles, ratings, and personal statistics */
.lbn-content-link { color: var(--lbn-accent-blue); font-weight: 700; text-decoration: none; }
.lbn-state-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0; }
.lbn-state-copy.is-error { color: var(--lbn-danger); }
.lbn-profile-heading { align-items: center; display: flex; gap: var(--lbn-space-4); margin-bottom: var(--lbn-space-4); }
.lbn-profile-heading h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-lg); margin: 0; }
.lbn-profile-avatar { flex: 0 0 5.125rem; height: 5.125rem; width: 5.125rem; }
.lbn-profile-avatar svg { display: block; height: 100%; width: 100%; }
.lbn-user-avatar svg { display: block; height: 100%; width: 100%; }
.lbn-profile-facts { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(11.25rem,1fr)); }
.lbn-profile-friend-action { margin-top: var(--lbn-space-4); }
.lbn-profile-friend-action:disabled { background: var(--lbn-bg-panel-alt); border-color: var(--lbn-border-soft); color: var(--lbn-text-muted); cursor: not-allowed; }
.lbn-profile-section-title { color: var(--lbn-text-main); font-size: var(--lbn-text-md); margin: 0 0 var(--lbn-space-3); }
.lbn-profile-section-title.is-spaced { margin-top: var(--lbn-space-5); }
.lbn-profile-fact { padding: var(--lbn-space-3); }
.lbn-profile-fact-label { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-profile-fact-value { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; margin-top: var(--lbn-space-1); overflow-wrap: anywhere; }
.my-stats-layout { align-items: start; display: grid; gap: var(--lbn-space-6); grid-template-columns: minmax(0,1fr) 21.25rem; }
.my-stats-layout > * { min-width: 0; }
.my-stats-section { margin-bottom: var(--lbn-space-5); }
.my-stats-title { color: var(--lbn-text-main); font-size: var(--lbn-text-md); margin: 0 0 var(--lbn-space-4); }
.my-stats-title.is-large { font-size: var(--lbn-text-lg); }
.my-stats-grid { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(8.75rem,1fr)); }
.my-stats-tile { padding: var(--lbn-space-4); }
.my-stats-tile-value { color: var(--lbn-text-main); font-size: var(--lbn-text-2xl); font-weight: 700; line-height: var(--lbn-leading-tight); overflow-wrap: anywhere; }
.my-stats-tile-label { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-top: var(--lbn-space-1); }
.my-stats-history { display: flex; flex-direction: column; gap: var(--lbn-space-3); }
.my-stats-history-row { align-items: center; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) auto; min-width: 0; padding: var(--lbn-space-3); }
.my-stats-history-row > * { min-width: 0; }
.my-stats-history-title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; overflow-wrap: anywhere; }
.my-stats-history-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-top: var(--lbn-space-1); }
.my-stats-result { background: var(--lbn-text-muted); border-radius: var(--lbn-radius-pill); color: white; font-size: var(--lbn-text-xs); font-weight: 700; padding: var(--lbn-space-1) var(--lbn-space-2); text-transform: uppercase; }
.my-stats-result.is-win { background: var(--lbn-accent-green); }
.my-stats-result.is-loss { background: var(--lbn-danger); }
.my-stats-result.is-draw { background: var(--lbn-accent-gold); }
/* Account settings */
.settings-page { display: grid; gap: var(--lbn-space-5); grid-template-columns: minmax(0,1fr); max-width: 100%; min-width: 0; overflow-x: clip; }
.settings-page * { box-sizing: border-box; }
.settings-page section,.settings-page label,.settings-page div { min-width: 0; }
.settings-page section { background: var(--lbn-bg-panel) !important; border: 1px solid var(--lbn-border-soft) !important; border-radius: var(--lbn-radius-lg) !important; padding: var(--lbn-space-5) !important; }
.settings-page h2 { color: var(--lbn-text-main) !important; font-size: var(--lbn-text-lg) !important; margin: 0 0 var(--lbn-space-4) !important; }
.settings-page h3 { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); font-weight: 700; grid-column: 1/-1; letter-spacing: .04em; margin: var(--lbn-space-1) 0 0; text-transform: uppercase; }
.settings-page label { color: var(--lbn-text-main); display: grid; font-size: var(--lbn-text-sm); font-weight: 600; gap: var(--lbn-space-2); }
.settings-page input:not([type=checkbox]),.settings-page select,.settings-page textarea { background: var(--lbn-bg-panel-alt) !important; border: 1px solid var(--lbn-border-soft) !important; border-radius: var(--lbn-radius-md) !important; color: var(--lbn-text-main) !important; font: inherit; max-width: 100%; min-height: var(--lbn-control-lg); min-width: 0; padding: 0 var(--lbn-space-3) !important; width: 100%; }
.settings-page :is(input,select,textarea,button):focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: var(--lbn-focus-offset); }
.settings-page button { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); cursor: pointer; font: inherit; font-size: var(--lbn-text-sm); font-weight: 700; min-height: var(--lbn-control-md); padding: 0 var(--lbn-space-4); }
.settings-page button:disabled { cursor: default; opacity: .55; }
.settings-page :is(p,span,strong) { overflow-wrap: anywhere; }
.settings-form-grid { display: grid; gap: var(--lbn-space-4); }
.settings-form-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.settings-form-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.settings-action-row { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); }
.settings-checkbox { align-items: center; background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: flex !important; gap: var(--lbn-space-3); padding: var(--lbn-space-3); }
.settings-checkbox input { accent-color: var(--lbn-accent-blue); height: 1.125rem; margin: 0; width: 1.125rem; }
.settings-session-action { align-items: end; display: grid; gap: var(--lbn-space-4); grid-template-columns: minmax(13.75rem,1fr) auto; }
.settings-session-heading { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); justify-content: space-between; }
.settings-upgrade-panel { border-color: var(--lbn-accent-blue) !important; display: grid; gap: var(--lbn-space-4); }
.settings-eyebrow { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; margin-bottom: var(--lbn-space-2); text-transform: uppercase; }
.settings-description { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); margin: 0; }
.settings-section-intro { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); margin: calc(-1 * var(--lbn-space-2)) 0 var(--lbn-space-4); }
.settings-field-help,.settings-supporting-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 400; }
.settings-supporting-copy { margin: var(--lbn-space-2) 0; }
.settings-full-width { grid-column: 1/-1; }
.settings-action-row-spaced { margin-top: var(--lbn-space-4); }
.settings-action-message { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); }
.settings-action-message-spaced { margin: var(--lbn-space-3) 0 0; }
.settings-form-grid-compact { gap: var(--lbn-space-3); }
.settings-timezone-warning { background: var(--lbn-bg-main); border: 1px solid var(--lbn-accent-gold); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); padding: var(--lbn-space-2) var(--lbn-space-3); }
.settings-timezone-warning > div:first-child { font-weight: 700; margin-bottom: var(--lbn-space-1); }
.settings-capability-panel { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-3); }
.settings-capability-badges { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.settings-capability-badge { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-pill); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; padding: var(--lbn-space-1) var(--lbn-space-2); }
.settings-capability-badge.is-muted { color: var(--lbn-text-muted); }
.settings-capability-badge.is-success { border-color: var(--lbn-accent-green); color: var(--lbn-accent-green); }
.settings-capability-badge.is-error { border-color: var(--lbn-danger); color: var(--lbn-danger); }
.settings-install-button { background: var(--lbn-accent-green); border-color: var(--lbn-accent-green); color: white; }
.settings-session-list { display: grid; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-4); }
.settings-session-state { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); padding: var(--lbn-space-3); }
.settings-session-card { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-1); padding: var(--lbn-space-3); }
.settings-session-card strong { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.settings-current-badge { color: var(--lbn-accent-green); font-size: var(--lbn-text-xs); font-weight: 700; }
.settings-session-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.settings-daily-panel,.settings-daily-content { display: grid; gap: var(--lbn-space-5); }
.settings-deadline-list { display: grid; gap: var(--lbn-space-2); margin-top: var(--lbn-space-2); }
.settings-deadline-row { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); color: var(--lbn-text-main); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) auto; padding: var(--lbn-space-2) var(--lbn-space-3); text-decoration: none; }
.settings-deadline-row span:last-child { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); text-align: right; }
/* Authentication and account entry */
.lbn-auth-backdrop { align-items: center; background: rgba(5,9,18,.82); display: flex; inset: 0; justify-content: center; padding: var(--lbn-space-5); position: fixed; z-index: 9000; }
.lbn-auth-modal-card { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-xl); box-shadow: 0 1.5rem 5rem rgba(0,0,0,.48); max-height: calc(100vh - 2rem); overflow: auto; position: relative; width: min(35rem,calc(100vw - 2rem)); }
.lbn-auth-close { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-xl); height: var(--lbn-control-sm); line-height: 1; position: absolute; right: var(--lbn-space-4); top: var(--lbn-space-4); width: var(--lbn-control-sm); z-index: 2; }
.lbn-auth-content { display: flex; flex-direction: column; gap: var(--lbn-space-5); padding: var(--lbn-space-6); }
.lbn-auth-mode-tabs { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: repeat(2,minmax(0,1fr)); padding: var(--lbn-space-1); }
.lbn-auth-eyebrow { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; margin-bottom: var(--lbn-space-2); text-transform: uppercase; }
.lbn-auth-provider-state { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: 0 0 var(--lbn-space-3); }
.lbn-auth-provider-state.is-error { color: var(--lbn-danger); font-weight: 700; }
.lbn-auth-method-grid { display: grid; gap: var(--lbn-space-2); grid-template-columns: repeat(3,minmax(0,1fr)); }
.lbn-auth-input { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); box-sizing: border-box; color: var(--lbn-text-main); font: var(--lbn-weight-regular) var(--lbn-text-md)/var(--lbn-leading-body) var(--lbn-font-ui); min-height: var(--lbn-control-md); padding: 0 var(--lbn-space-3); width: 100%; }
.lbn-auth-step-card { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); min-height: 18.75rem; padding: var(--lbn-space-5); }
.lbn-auth-panel-title { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); line-height: var(--lbn-leading-heading); margin: 0; }
.lbn-auth-panel-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); margin: var(--lbn-space-2) 0 0; }
.lbn-auth-label { color: var(--lbn-text-muted); display: block; font-size: var(--lbn-text-sm); font-weight: 600; margin: 0 0 var(--lbn-space-2); }
.lbn-auth-passkey-visual { align-items: center; background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: flex; flex-direction: column; gap: var(--lbn-space-2); justify-content: center; min-height: 5.625rem; }
.lbn-auth-link { color: var(--lbn-accent-blue); font-size: var(--lbn-text-xs); font-weight: 700; text-decoration: none; }
.lbn-auth-guest-link { background: transparent; border: 0; color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-xs); font-weight: 700; padding: 0; text-decoration: underline; text-underline-offset: .125rem; }
.lbn-auth-error { color: var(--lbn-danger); font-size: var(--lbn-text-sm); font-weight: 700; line-height: var(--lbn-leading-body); margin: 0; }
.lbn-auth-legal { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); margin: 0; }
.lbn-auth-unavailable { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); padding: var(--lbn-space-4); }
.lbn-auth-google-logo { display: inline-block; flex: 0 0 auto; height: 1rem; width: 1rem; }
.lbn-auth-mode-button { background: transparent; border: 1px solid transparent; border-radius: var(--lbn-radius-md); color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-sm); font-weight: 700; min-height: var(--lbn-control-md); padding: 0 var(--lbn-space-3); }
.lbn-auth-mode-button.is-active { background: var(--lbn-accent-blue); border-color: var(--lbn-accent-blue); color: white; }
.lbn-auth-method-button { align-items: center; background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); cursor: pointer; display: flex; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-2); justify-content: center; min-height: var(--lbn-control-md); min-width: 0; padding: 0 var(--lbn-space-2); }
.lbn-auth-method-button.is-active { background: var(--lbn-bg-panel-alt); border-color: var(--lbn-accent-blue); }
.lbn-auth-method-button.is-disabled { color: var(--lbn-text-muted); cursor: not-allowed; opacity: .52; }
.lbn-auth-method-icon { align-items: center; border-radius: var(--lbn-radius-sm); display: inline-flex; flex: 0 0 auto; font-size: var(--lbn-text-sm); font-weight: 700; height: 1.375rem; justify-content: center; width: 1.375rem; }
.lbn-auth-method-icon.is-passkey { background: color-mix(in srgb,var(--lbn-accent-green) 13%,transparent); color: var(--lbn-accent-green); }
.lbn-auth-method-icon.is-email { background: color-mix(in srgb,var(--lbn-accent-gold) 13%,transparent); color: var(--lbn-accent-gold); }
.lbn-auth-primary { align-items: center; background: var(--lbn-accent-blue); border: 1px solid var(--lbn-accent-blue); border-radius: var(--lbn-radius-md); color: white; cursor: pointer; display: flex; font-size: var(--lbn-text-sm); font-weight: 700; gap: var(--lbn-space-2); justify-content: center; min-height: var(--lbn-control-lg); padding: 0 var(--lbn-space-4); width: 100%; }
.lbn-auth-primary:disabled { cursor: wait; opacity: .72; }
.lbn-auth-stack { display: grid; gap: var(--lbn-space-4); }
.lbn-auth-field-grid { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(10rem,1fr)); }
.lbn-auth-recovery-row { align-items: center; border-top: 1px solid var(--lbn-border-soft); display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); justify-content: space-between; margin-top: var(--lbn-space-4); padding-top: var(--lbn-space-3); }
.lbn-auth-recovery-row > span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-auth-invite-banner { background: var(--lbn-bg-main); border: 1px solid var(--lbn-accent-blue); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); display: grid; gap: var(--lbn-space-1); margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-3); }
.lbn-auth-invite-banner strong { font-size: var(--lbn-text-sm); }
.lbn-auth-invite-banner span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); }
.lbn-auth-field-help { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: var(--lbn-space-2) 0 0; }
.lbn-auth-consent { align-items: flex-start; color: var(--lbn-text-muted); display: flex; font-size: var(--lbn-text-xs); gap: var(--lbn-space-2); line-height: var(--lbn-leading-body); }
.lbn-auth-optional-panel { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-3); padding: var(--lbn-space-3); }
.lbn-auth-submit-row { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); }
.lbn-auth-submit-row .lbn-auth-primary { flex: 1 1 13rem; }
.lbn-auth-guest-section { border-top: 1px solid var(--lbn-border-soft); display: grid; gap: var(--lbn-space-2); padding-top: var(--lbn-space-4); }
.lbn-auth-guest-section p { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); margin: 0; }
.lbn-auth-passkey-symbol { color: var(--lbn-accent-green); font-size: 2.125rem; font-weight: 700; }
.lbn-auth-passkey-label { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
/* Public start page */
.lbn-start-hero { background: var(--lbn-bg-main); padding: var(--lbn-space-6) var(--lbn-space-5); }
.lbn-start-hero-grid { align-items: start; display: grid; gap: var(--lbn-space-6); grid-template-columns: repeat(auto-fit,minmax(min(100%,26.25rem),1fr)); margin: 0 auto; max-width: 92.5rem; }
.lbn-start-hero h1 { color: var(--lbn-text-main); font-size: clamp(2.375rem,5vw,4rem); line-height: 1.05; margin: 0 0 var(--lbn-space-5); }
.lbn-start-intro { color: var(--lbn-text-primary); display: flex; flex-direction: column; font-size: var(--lbn-text-md); gap: var(--lbn-space-4); line-height: var(--lbn-leading-reading); max-width: 51.25rem; }
.lbn-start-intro p { margin: 0; }
.lbn-start-intro a { color: var(--lbn-action); text-decoration: none; }
.lbn-start-intro a:hover { color: var(--lbn-action-hover); text-decoration: underline; }
.lbn-start-news { min-width: 0; }
.lbn-start-news > .lbn-section-title,.lbn-start-featured .lbn-section-title { color: var(--lbn-text-main); font-size: 2.5rem; margin: 0 0 var(--lbn-space-6); }
.lbn-newest-news h3 { color: var(--lbn-text-main); font-size: clamp(1.75rem,4vw,2.75rem); line-height: 1.08; margin: 0 0 var(--lbn-space-2); }
.lbn-newest-news time { color: var(--lbn-text-muted); display: block; font-size: var(--lbn-text-xs); font-weight: 700; margin: 0 0 var(--lbn-space-4); }
.lbn-start-news-body { color: var(--lbn-text-muted); font-size: var(--lbn-text-lg); line-height: 1.7; margin: 0 0 var(--lbn-space-5); overflow-wrap: anywhere; }
.lbn-start-news-list { border-top: 1px solid var(--lbn-border-soft); display: grid; margin-top: var(--lbn-space-5); }
.lbn-start-news-list a { border-bottom: 1px solid var(--lbn-border-soft); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(5.625rem,.3fr) minmax(0,1fr); padding: var(--lbn-space-3) 0; text-decoration: none; }
.lbn-start-news-list span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-start-news-list strong { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.lbn-start-news-more { display: inline-flex; margin-top: var(--lbn-space-4); }
.lbn-start-featured { background: var(--lbn-bg-panel); border-top: 1px solid var(--lbn-border-soft); padding: var(--lbn-space-5); }
.lbn-start-container { margin: 0 auto; max-width: 92.5rem; }
.lbn-start-action-notice { margin-top: calc(-1 * var(--lbn-space-5)); }
.lbn-start-game-grid { display: grid; gap: var(--lbn-space-5); grid-template-columns: repeat(auto-fit,minmax(min(100%,20.625rem),1fr)); }
.lbn-featured-game-card { color: inherit; display: flex; flex-direction: column; min-height: 100%; overflow: hidden; }
.lbn-featured-game-cover { background: linear-gradient(135deg,#1c2a3e,#243655); height: 9.375rem; overflow: hidden; position: relative; }
.lbn-featured-game-cover-link { background: transparent; border: 0; color: inherit; cursor: pointer; inset: 0; padding: 0; position: absolute; text-align: left; width: 100%; z-index: 1; }
.lbn-featured-game-image { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.lbn-featured-game-icon-button { align-items: center; backdrop-filter: blur(.5rem); background: rgba(15,23,42,.78); border: 1px solid rgba(255,255,255,.45); border-radius: var(--lbn-radius-sm); color: #fff; cursor: pointer; display: inline-flex; font-size: var(--lbn-text-md); font-weight: 700; height: 2.125rem; justify-content: center; line-height: 1; padding: 0; position: absolute; right: var(--lbn-space-3); top: var(--lbn-space-3); width: 2.125rem; z-index: 2; }
.lbn-featured-game-icon-button:hover,.lbn-featured-game-icon-button:focus-visible { background: rgba(15,23,42,.94); border-color: rgba(255,255,255,.8); color: #fff; }
.lbn-featured-game-icon-button.is-favorite { font-size: var(--lbn-text-lg); right: 3.25rem; }
.lbn-featured-game-icon-button.is-active { color: var(--lbn-accent-gold); }
.lbn-featured-game-body { display: flex; flex: 1; flex-direction: column; padding: var(--lbn-space-4); }
.lbn-featured-game-body > h4 { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; margin: 0 0 var(--lbn-space-2); overflow-wrap: anywhere; }
.lbn-featured-game-summary { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: 0 0 var(--lbn-space-3); }
.lbn-featured-chip-row { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-1); }
.lbn-featured-chip { align-items: center; background: color-mix(in srgb,var(--lbn-text-muted) 12%,transparent); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-pill); color: var(--lbn-text-muted); display: inline-flex; font-size: var(--lbn-text-xs); font-weight: 700; line-height: 1; padding: var(--lbn-space-1) var(--lbn-space-2); white-space: nowrap; }
.lbn-featured-chip.is-blue { background: color-mix(in srgb,var(--lbn-accent-blue) 14%,transparent); color: var(--lbn-accent-blue); }
.lbn-featured-chip.is-gold { background: color-mix(in srgb,var(--lbn-accent-gold) 14%,transparent); color: var(--lbn-accent-gold); }
.lbn-featured-chip.is-green { background: color-mix(in srgb,var(--lbn-accent-green) 14%,transparent); color: var(--lbn-accent-green); }
.lbn-featured-table-list { display: flex; flex: 1; flex-direction: column; gap: var(--lbn-space-2); margin-top: var(--lbn-space-4); }
.lbn-featured-table-row { align-items: center; background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) 5.75rem; padding: var(--lbn-space-2) var(--lbn-space-3); width: 100%; }
.lbn-featured-table-copy { display: grid; gap: var(--lbn-space-1); min-width: 0; }
.lbn-featured-table-heading { align-items: center; display: flex; gap: var(--lbn-space-2); min-width: 0; }
.lbn-featured-table-heading > span:first-child { color: var(--lbn-text-main); overflow-wrap: anywhere; }
.lbn-featured-table-seats { color: var(--lbn-text-muted); white-space: nowrap; }
.lbn-featured-table-action { height: 2.375rem; padding: 0 var(--lbn-space-3); width: 5.75rem; }
.lbn-featured-empty-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-heading); }
.lbn-featured-create-row { align-items: center; border-top: 1px solid var(--lbn-border-soft); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) 5.75rem; margin-top: var(--lbn-space-3); padding-top: var(--lbn-space-3); }
.lbn-featured-create-row > span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-start-poll { border-top: 1px solid var(--lbn-border-soft); max-width: 61.25rem; padding-top: var(--lbn-space-6); }
.lbn-start-poll h2 { color: var(--lbn-text-main); font-size: clamp(2.125rem,4vw,3.375rem); line-height: 1.08; margin: 0 0 var(--lbn-space-5); }
.lbn-start-poll-body { color: var(--lbn-text-muted); font-size: var(--lbn-text-lg); line-height: 1.7; margin: 0 0 var(--lbn-space-5); max-width: 51.25rem; }
.lbn-start-poll-help { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); font-weight: 700; line-height: var(--lbn-leading-body); margin: 0 0 var(--lbn-space-5); }
.lbn-start-poll-grid { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(min(100%,13.75rem),1fr)); }
.lbn-start-poll-field { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-2); }
.lbn-start-poll-field input { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-sm); min-height: var(--lbn-control-lg); padding: 0 var(--lbn-space-3); width: 100%; }
.lbn-start-poll-actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); margin-top: var(--lbn-space-5); }
.lbn-start-poll-actions > span { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-start-poll-notice { margin-top: var(--lbn-space-3); }
.avatar-designer { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); display: grid; gap: var(--lbn-space-5); grid-template-columns: minmax(9.375rem,13.75rem) minmax(0,1fr); padding: var(--lbn-space-4); }
.avatar-preview { align-self: start; aspect-ratio: 1; background: radial-gradient(circle,#293b51,#101824); border-radius: var(--lbn-radius-lg); box-sizing: border-box; display: grid; max-width: 13.125rem; overflow: hidden; padding: var(--lbn-space-5); place-items: center; width: 100%; }
.avatar-preview svg { filter: drop-shadow(0 .5rem .5rem rgba(0,0,0,.32)); height: 100%; width: 100%; }
.avatar-controls { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(2,minmax(0,1fr)); }
.avatar-controls h4 { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); grid-column: 1/-1; letter-spacing: .08em; margin: var(--lbn-space-1) 0 0; text-transform: uppercase; }
.avatar-presets { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); grid-column: 1/-1; }
.avatar-presets button { min-height: var(--lbn-control-sm); padding: var(--lbn-space-1) var(--lbn-space-3); }
.avatar-color { align-items: center; grid-template-columns: 1fr 2.75rem !important; }
.avatar-color input { height: var(--lbn-control-md); padding: .1875rem !important; width: 2.75rem !important; }
.avatar-wide { grid-column: 1/-1; }

/* Legal and policy documents */
.lbn-legal-document { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); color: var(--lbn-text-main); display: grid; gap: var(--lbn-space-5); max-width: 56.25rem; padding: clamp(var(--lbn-space-5),4vw,var(--lbn-space-6)); }
.lbn-legal-lead { border-bottom: 1px solid var(--lbn-border-soft); padding-bottom: var(--lbn-space-4); }
.lbn-legal-date { color: var(--lbn-accent-gold); font-size: var(--lbn-text-sm); font-weight: 700; letter-spacing: .08em; margin: 0 0 var(--lbn-space-3); text-transform: uppercase; }
.lbn-legal-lead-copy { color: var(--lbn-text-main); font-size: var(--lbn-text-md); line-height: 1.7; margin: 0; }
.lbn-legal-section { display: grid; gap: var(--lbn-space-2); }
.lbn-legal-section h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-lg); line-height: var(--lbn-leading-heading); margin: 0; }
.lbn-legal-section-copy { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-sm); gap: var(--lbn-space-3); line-height: 1.65; }
.lbn-legal-section-copy > p { margin: 0; }
.lbn-legal-list { display: grid; gap: var(--lbn-space-2); margin: 0; padding-left: 1.2rem; }
.lbn-legal-link { color: var(--lbn-accent-blue); font-weight: 700; text-decoration: none; }
.lbn-legal-link:hover { text-decoration: underline; }
.lbn-legal-table-wrap { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); overflow-x: auto; }
.lbn-legal-table { border-collapse: collapse; min-width: 45rem; width: 100%; }
.lbn-legal-table thead { background: var(--lbn-bg-panel-alt); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); letter-spacing: .06em; text-transform: uppercase; }
.lbn-legal-table th,.lbn-legal-table td { padding: var(--lbn-space-3); text-align: left; vertical-align: top; }

/* Daily puzzle game boards and completion flow */
.lbn-daily-error { color: var(--lbn-status-danger); }
.lbn-daily-scoreline { display: flex; gap: var(--lbn-space-3); justify-content: space-between; margin-bottom: var(--lbn-space-3); }
.lbn-daily-intro { max-width: 45rem; }
.lbn-daily-complete-card { background: color-mix(in srgb,var(--lbn-accent-gold) 10%,var(--lbn-bg-panel)); border: 1px solid var(--lbn-accent-gold); border-radius: var(--lbn-radius-lg); margin-top: var(--lbn-space-4); padding: var(--lbn-space-4); }
.lbn-daily-complete-card strong { color: var(--lbn-accent-gold); display: block; }
.lbn-daily-complete-card button { display: block; margin-top: var(--lbn-space-3); }
.lbn-daily-modal-backdrop { backdrop-filter: blur(.3125rem); background: rgba(4,8,13,.8); display: grid; inset: 0; padding: var(--lbn-space-5); place-items: center; position: fixed; z-index: 1200; }
.daily-completion-dialog { background: linear-gradient(145deg,#202a38,#10161f); border: 2px solid var(--lbn-accent-gold); border-radius: 1.5rem; box-shadow: 0 1.5rem 3.125rem rgba(0,0,0,.45); box-sizing: border-box; color: var(--lbn-text-main); padding: 1.75rem; text-align: center; width: min(100%,33.75rem); }
.daily-completion-dialog h2 { font-size: var(--lbn-text-2xl); margin: 0; }
.daily-completion-dialog input { border-radius: var(--lbn-radius-md); font-family: var(--lbn-font-ui); min-height: var(--lbn-control-lg); }
.daily-completion-dialog button { font-family: var(--lbn-font-ui); min-height: var(--lbn-control-md); padding-inline: var(--lbn-space-4); }
.lbn-daily-complete-mark { background: #3b3218; border: 3px solid var(--lbn-accent-gold); border-radius: 50%; color: var(--lbn-accent-gold); display: grid; font-size: 2.375rem; font-weight: 700; height: 4.5rem; margin: 0 auto var(--lbn-space-4); place-items: center; width: 4.5rem; }
.lbn-daily-game-title { color: var(--lbn-text-muted); margin: var(--lbn-space-2) 0 0; }
.lbn-daily-final-score { color: var(--lbn-accent-gold); display: block; font-size: 3.75rem; line-height: 1; margin: var(--lbn-space-5) 0 var(--lbn-space-1); }
.lbn-daily-points-label { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .14em; }
.lbn-daily-registration { margin-top: var(--lbn-space-5); }
.lbn-daily-success { color: var(--lbn-status-success); font-weight: 700; }
.daily-completion-register { align-items: end; display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) auto; text-align: left; }
.daily-completion-register label { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-2); }
.lbn-daily-close { background: transparent; border: 0; color: var(--lbn-text-muted); margin-top: var(--lbn-space-5); }
.lbn-daily-play-status { color: var(--lbn-text-muted); min-height: 2.8em; text-align: center; }
.pip-layout { display: grid; gap: 1.375rem; grid-template-columns: minmax(17.5rem,32.5rem) minmax(13.75rem,1fr); }
.pip-tray { background: radial-gradient(circle at 50% 42%,#142a40,#06101c 72%); border: 1px solid #29425e; border-radius: 1.375rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.06),0 1.125rem 2.5rem rgba(0,0,0,.18); display: grid; gap: .6875rem; grid-template-columns: repeat(3,1fr); padding: .875rem; }
.pip-cell { aspect-ratio: 1; background: linear-gradient(145deg,#172d43,#0b1827); border: 1px solid #31506e; border-radius: 1.125rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.06),0 .4375rem .875rem rgba(0,0,0,.22); color: #f5e9cf; display: grid; place-items: center; transition: transform .16s ease,border-color .16s ease; }
.pip-cell:not(:disabled):hover { border-color: #e9b44c; transform: translateY(-2px); }
.pip-cell.chain { animation: pip-burst .55s ease both; border-color: #ffd777; box-shadow: 0 0 2.125rem rgba(233,180,76,.78),inset 0 0 1.625rem rgba(233,180,76,.35); }
.pip-empty { color: #6e8ba7; font-size: clamp(2.125rem,6vw,3.75rem); font-weight: 300; }
.die-face { display: block; filter: drop-shadow(0 .5rem .5rem rgba(0,0,0,.35)); width: 76%; }
.die-face svg { display: block; height: auto; width: 100%; }
.die-face.compact { filter: drop-shadow(0 .25rem .25rem rgba(0,0,0,.3)); width: 2.625rem; }
.pip-queue { align-items: center; display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.pip-next { display: inline-grid; place-items: center; }
.pip-next:first-child .die-face { border-radius: .6875rem; outline: 2px solid #e9b44c; outline-offset: 3px; }
@keyframes pip-burst { 0% { transform: scale(.82); } 55% { transform: scale(1.07); } 100% { transform: scale(1); } }
.line-layout { display: grid; gap: 1.375rem; grid-template-columns: minmax(21.25rem,45rem) minmax(15rem,1fr); }
.line-board { background: linear-gradient(145deg,#0b1520,#152a3c); border: 1px solid #405a72; border-radius: 1.375rem; box-shadow: inset 0 1px rgba(255,255,255,.08),0 1.125rem 2.625rem rgba(0,0,0,.25); padding: var(--lbn-space-5); }
.line-pools { display: grid; gap: var(--lbn-space-2); grid-template-columns: repeat(3,1fr); }
.line-pool { background: #0d1a27; border: 1px solid #3b536b; border-radius: var(--lbn-radius-lg); color: #eef5fb; padding: var(--lbn-space-3); text-align: left; }
.line-pool strong,.line-pool small { display: block; }
.line-pool b { color: #ffd36c; font-size: var(--lbn-text-xl); }
.line-roll { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(3,minmax(0,1fr)); margin: var(--lbn-space-5) auto; max-width: 30rem; }
.line-die { aspect-ratio: 1; background: linear-gradient(145deg,#f5f1e7,#aab6c2); border: 2px solid #fff; border-radius: 18%; box-shadow: inset -.3125rem -.375rem .625rem rgba(0,0,0,.22),inset .25rem .25rem .5rem rgba(255,255,255,.7),0 .5rem 1rem rgba(0,0,0,.35); color: #132030; display: grid; font-size: clamp(2.125rem,7vw,4.25rem); font-weight: 950; place-items: center; }
.line-die small { font-size: var(--lbn-text-xs); letter-spacing: .05em; text-transform: uppercase; }
.line-die.shield { background: linear-gradient(145deg,#d9f8ff,#42a5c7); }
.line-die.breach { background: linear-gradient(145deg,#ff9d9d,#9d1732); color: white; }
.line-die.momentum { background: linear-gradient(145deg,#fff0a8,#e69219); }
.line-die.echo { background: linear-gradient(145deg,#dfc9ff,#744db5); color: white; }
.line-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); justify-content: center; }
.line-roll-button { background: #b82e47 !important; min-width: 9.375rem; }
.breach-track { display: flex; gap: var(--lbn-space-2); }
.breach-mark { background: #26394c; border-radius: .375rem; height: .75rem; width: 1.75rem; }
.breach-mark.on { background: #ef405b; box-shadow: 0 0 .75rem #ef405b; }
.brace-token { background: #48a9c5; border-radius: 50%; color: #07131d; display: inline-block; font-weight: 700; height: 1.375rem; line-height: 1.375rem; margin: .125rem; text-align: center; width: 1.375rem; }
.community-link-grid { display: grid; gap: var(--lbn-space-4); grid-template-columns: repeat(3,minmax(0,1fr)); }
.lbn-community-card { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); padding: var(--lbn-space-5); }
.lbn-community-card h3 { color: var(--lbn-text-main); margin: 0 0 var(--lbn-space-2); }
.lbn-community-card p { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0 0 var(--lbn-space-3); }
.lbn-community-card p:last-child { margin-bottom: 0; }
.lbn-community-card a { color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
.lbn-community-card a:hover { text-decoration: underline; }
.lbn-preview-status-card { margin: 0 0 var(--lbn-space-4); }
.lbn-preview-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); margin-top: var(--lbn-space-3); }
.lbn-preview-inline-control { align-items: center; display: flex; gap: var(--lbn-space-2); }
.friends-page-layout { align-items: start; display: grid; gap: var(--lbn-space-5); grid-template-columns: minmax(16.25rem,22.5rem) minmax(0,1fr); min-width: 0; }
.friends-page-sidebar,.friends-chat-panel,.friends-chat-messages,.friends-chat-composer { box-sizing: border-box; max-width: 100%; min-width: 0; }
.friends-page-sidebar { display: grid; gap: var(--lbn-space-4); }
.friends-action-message { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font-size: var(--lbn-text-sm); margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-3) var(--lbn-space-4); }
.friends-section-card { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); padding: var(--lbn-space-4); }
.friends-section-card h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-md); margin: 0 0 var(--lbn-space-3); }
.friends-add-row { display: flex; gap: var(--lbn-space-2); }
.friends-input { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); flex: 1; font: inherit; font-size: var(--lbn-text-sm); min-height: var(--lbn-control-lg); min-width: 0; padding: var(--lbn-space-2) var(--lbn-space-3); }
.friends-state,.friends-empty { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0; }
.friends-state--error { color: var(--lbn-status-danger); }
.friends-list { display: grid; gap: var(--lbn-space-2); }
.friends-list-item { align-items: start; background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(0,1fr) 1.875rem; padding: var(--lbn-space-2); }
.friends-list-item--selected { border-color: var(--lbn-accent-blue); }
.friends-select { background: transparent; border: 0; color: var(--lbn-text-main); cursor: pointer; font: inherit; min-width: 0; padding: 0; text-align: left; }
.friends-name-row { align-items: center; display: flex; gap: var(--lbn-space-2); min-width: 0; }
.friends-name { font-size: var(--lbn-text-sm); font-weight: 700; line-height: var(--lbn-leading-heading); overflow-wrap: anywhere; }
.friends-unread-badge { background: var(--lbn-accent-red); border-radius: var(--lbn-radius-pill); color: white; flex: 0 0 auto; font-size: var(--lbn-text-xs); font-weight: 700; line-height: 1.4; padding: .0625rem .375rem; }
.friends-username { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); overflow-wrap: anywhere; }
.friends-last-message { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-top: var(--lbn-space-1); }
.friends-last-message--unread { color: var(--lbn-accent-blue); }
.friends-remove { background: transparent; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-status-danger); cursor: pointer; font-size: var(--lbn-text-sm); height: 1.875rem; line-height: 1; padding: 0; width: 1.875rem; }
.friends-request { border-top: 1px solid var(--lbn-border-soft); padding-top: var(--lbn-space-2); }
.friends-request > a { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
.friends-request-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-bottom: var(--lbn-space-2); }
.friends-request-actions { display: flex; gap: var(--lbn-space-2); }
.friends-chat-panel { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); display: flex; flex-direction: column; min-height: 32.5rem; overflow: hidden; }
.friends-chat-header { border-bottom: 1px solid var(--lbn-border-soft); padding: var(--lbn-space-4); }
.friends-chat-header h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-md); margin: 0; }
.friends-chat-header p { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: var(--lbn-space-1) 0 0; }
.friends-chat-messages { flex: 1; min-height: 0; overflow: auto; padding: var(--lbn-space-4); }
.friends-message-list { display: flex; flex-direction: column; gap: var(--lbn-space-3); }
.friends-chat-message { align-self: flex-start; background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); max-width: 78%; padding: var(--lbn-space-2) var(--lbn-space-3); }
.friends-chat-message--mine { align-self: flex-end; background: var(--lbn-bg-panel-alt); }
.friends-message-meta { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-bottom: var(--lbn-space-1); }
.friends-message-body { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); overflow-wrap: anywhere; }
.friends-chat-composer { align-items: stretch; border-top: 1px solid var(--lbn-border-soft); display: flex; gap: var(--lbn-space-2); padding: var(--lbn-space-3); }
.friends-chat-input { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); box-sizing: border-box; color: var(--lbn-text-main); flex: 1; font: inherit; font-size: var(--lbn-text-sm); height: var(--lbn-control-lg); line-height: 1.25rem; max-height: var(--lbn-control-lg); min-height: var(--lbn-control-lg); min-width: 0; overflow: auto; padding: .625rem .6875rem; resize: none; }
.friends-chat-send { align-self: stretch; box-sizing: border-box; min-width: 4.25rem; }
.lbn-create-field { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); box-sizing: border-box; color: var(--lbn-text-main); font: var(--lbn-weight-regular) var(--lbn-text-md)/var(--lbn-leading-body) var(--lbn-font-ui); min-height: var(--lbn-control-lg); padding: 0 var(--lbn-space-3); width: 100%; }
.lbn-create-field:disabled { cursor: not-allowed; opacity: .55; }
.lbn-create-choice { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); cursor: pointer; padding: var(--lbn-space-3); text-align: left; }
.lbn-create-choice--selected { background: #eff4ff; border-color: var(--lbn-accent-blue); color: #10213f; }
.lbn-create-choice:disabled { cursor: not-allowed; opacity: .55; }
.lbn-create-rule-field { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-create-rule-field .lbn-create-field { margin-top: var(--lbn-space-1); }
.lbn-create-inline-link { color: var(--lbn-accent-blue); font-weight: 700; text-decoration: none; }
.lbn-create-inline-link:hover { text-decoration: underline; }
.lbn-create-timing-summary { align-items: center; display: flex; gap: var(--lbn-space-3); justify-content: space-between; margin-top: var(--lbn-space-3); }
.lbn-create-timing-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-create-timing-estimate { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-create-diplomacy-primary { align-items: start; border-top: 1px solid var(--lbn-border-soft); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) minmax(8.75rem,.5fr); margin-top: var(--lbn-space-4); padding-top: var(--lbn-space-4); }
.lbn-create-option-card { align-items: flex-start; background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); display: flex; font-size: var(--lbn-text-sm); font-weight: 700; gap: var(--lbn-space-2); padding: var(--lbn-space-3); }
.lbn-create-option-card--compact { align-items: center; }
.lbn-create-checkbox { height: 1.125rem; margin-top: .0625rem; width: 1.125rem; }
.lbn-create-option-title { display: block; font-size: var(--lbn-text-xs); }
.lbn-create-option-help { color: var(--lbn-text-muted); display: block; font-size: var(--lbn-text-xs); font-weight: 500; margin-top: var(--lbn-space-1); }
.lbn-create-compact-label { color: var(--lbn-text-muted); display: block; font-size: var(--lbn-text-xs); margin-bottom: var(--lbn-space-2); }
.lbn-create-compact-field { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); box-sizing: border-box; color: var(--lbn-text-main); font: var(--lbn-weight-regular) var(--lbn-text-sm)/var(--lbn-leading-body) var(--lbn-font-ui); min-height: var(--lbn-control-md); padding: 0 var(--lbn-space-3); width: 100%; }
textarea.lbn-create-compact-field { padding-block: var(--lbn-space-2); }
.lbn-create-country-preferences { min-height: 4.625rem; resize: vertical; }
.lbn-create-diplomacy-options { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(auto-fit,minmax(10rem,1fr)); margin-top: var(--lbn-space-3); padding: var(--lbn-space-3); }
.lbn-create-check-row { align-items: center; display: flex; font-size: var(--lbn-text-xs); gap: var(--lbn-space-2); }
.lbn-create-advanced-check { align-items: center; color: var(--lbn-text-main); display: flex; font-size: var(--lbn-text-sm); gap: var(--lbn-space-2); padding-top: 1.4375rem; }
.lbn-forming-table__title-row { align-items: center; display: flex; gap: var(--lbn-space-2); }
.lbn-forming-table__empty { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-forming-table__player { color: var(--lbn-text-muted); }
.lbn-forming-table__invite-field { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-2); }
.lbn-forming-table__invite-control { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-xs); min-height: var(--lbn-control-md); min-width: 0; padding: var(--lbn-space-2); }
select.lbn-forming-table__invite-control { padding-right: var(--lbn-space-6); }
.lbn-forming-table__invite-message { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-top: var(--lbn-space-2); }
.lbn-creator-doc-grid { display: grid; gap: var(--lbn-space-4); grid-template-columns: repeat(auto-fit,minmax(min(100%,16.25rem),1fr)); }
.lbn-creator-doc-card { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); padding: var(--lbn-space-5); }
.lbn-creator-doc-card--wide { margin-top: var(--lbn-space-4); }
.lbn-creator-doc-card h3 { color: var(--lbn-text-main); margin: 0 0 var(--lbn-space-2); }
.lbn-creator-doc-card p { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0 0 var(--lbn-space-3); }
.lbn-creator-doc-card p:last-child { margin-bottom: 0; }
.lbn-creator-doc-card a { color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
.lbn-creator-doc-card a:hover { text-decoration: underline; }
.lbn-dashboard-layout { display: grid; gap: var(--lbn-space-6); grid-template-columns: minmax(0,1fr); }
.lbn-dashboard-main { min-width: 0; }
.lbn-dashboard-notice { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); color: var(--lbn-text-main); font-size: var(--lbn-text-sm); margin-bottom: var(--lbn-space-5); padding: var(--lbn-space-4); }
.lbn-dashboard-primary-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-6); }
.lbn-dashboard-section { margin-bottom: var(--lbn-space-6); }
.lbn-dashboard-section > h2 { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); font-weight: 600; margin: 0 0 var(--lbn-space-4); }
.lbn-dashboard-section-stack { display: grid; gap: var(--lbn-space-3); }
.dashboard-game-action-row { align-items: center; display: grid; gap: var(--lbn-space-4); grid-template-columns: 5rem minmax(0,1fr) 6.25rem 6.25rem 6.25rem 7.5rem; min-width: 0; }
.dashboard-game-action-summary,.dashboard-game-action-open,.dashboard-game-view-copy { min-width: 0; }
.dashboard-game-action-opponents,.dashboard-game-action-deadline,.dashboard-game-action-players { min-width: 0; overflow-wrap: anywhere; text-align: center; }
.dashboard-game-view-row { align-items: center; display: grid; gap: var(--lbn-space-3); grid-template-columns: 1.75rem minmax(0,1fr) auto; min-height: 3rem; min-width: 0; }
.dashboard-game-view-title,.dashboard-game-view-detail { overflow-wrap: anywhere; white-space: normal; }
.lbn-lobby-filters select { border-radius: var(--lbn-radius-md) !important; font-family: var(--lbn-font-ui); min-height: var(--lbn-control-md); }
.dashboard-invitation-row,.dashboard-admin-seat-form { min-width: 0; }
.lbn-dashboard-widget { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-5); }
.lbn-dashboard-widget > h3,.lbn-dashboard-widget-header h3 { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 600; margin: 0 0 var(--lbn-space-4); }
.lbn-dashboard-widget-copy { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); margin: 0 0 var(--lbn-space-4); }
.lbn-dashboard-stat-grid { display: grid; gap: var(--lbn-space-3); grid-template-columns: repeat(2,minmax(0,1fr)); }
.lbn-dashboard-stat { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-dashboard-stat > div { margin-bottom: var(--lbn-space-1); }
.lbn-dashboard-stat strong { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); }
.lbn-dashboard-widget-action { margin-top: var(--lbn-space-4); width: 100%; }
.lbn-dashboard-widget-empty { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: 0 0 var(--lbn-space-3); }
.lbn-dashboard-avatar-row { display: flex; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); }
.lbn-dashboard-avatar-more { align-items: center; background: var(--lbn-accent-blue); border-radius: 50%; color: white; display: flex; font-size: var(--lbn-text-xs); font-weight: 700; height: 2.25rem; justify-content: center; width: 2.25rem; }
.lbn-dashboard-widget-link { color: var(--lbn-text-main); display: block; font-size: var(--lbn-text-xs); font-weight: 500; text-align: center; text-decoration: none; }
.lbn-dashboard-widget-link:hover,.lbn-dashboard-widget-header a:hover { color: var(--lbn-accent-blue); }
.lbn-dashboard-widget-title-compact { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 600; margin: 0 0 var(--lbn-space-2); }
.lbn-dashboard-widget-meta { display: flex; flex-wrap: wrap; font-size: var(--lbn-text-xs); gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-2); }
.lbn-dashboard-widget-meta strong { color: var(--lbn-text-main); }
.lbn-dashboard-widget-meta span { color: var(--lbn-text-muted); }
.lbn-dashboard-widget-success { color: var(--lbn-status-success); font-size: var(--lbn-text-xs); font-weight: 500; margin: 0 0 var(--lbn-space-3); }
.lbn-dashboard-widget-header { align-items: center; display: flex; justify-content: space-between; margin-bottom: var(--lbn-space-4); }
.lbn-dashboard-widget-header h3 { margin: 0; }
.lbn-dashboard-widget-header a { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); text-decoration: none; }
.lbn-dashboard-notification-list { display: flex; flex-direction: column; gap: var(--lbn-space-2); }
.lbn-dashboard-notification { border-bottom: 1px solid var(--lbn-border-soft); font-size: var(--lbn-text-xs); padding: var(--lbn-space-2) 0; }
.lbn-dashboard-notification--unread { font-weight: 600; }
.lbn-dashboard-notification-copy { color: var(--lbn-text-main); line-height: var(--lbn-leading-body); }
.lbn-dashboard-notification-date { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin-top: var(--lbn-space-1); }
.lbn-dashboard-list { display: grid; gap: var(--lbn-space-2); }
.dashboard-invitation-row { align-items: center; background: var(--lbn-bg-panel); border: 1px solid var(--lbn-accent-gold); border-left-width: .25rem; border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-3); grid-template-columns: minmax(0,1fr) auto; padding: var(--lbn-space-3); }
.dashboard-invitation-copy { min-width: 0; }
.dashboard-invitation-kicker { color: var(--lbn-accent-gold); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.dashboard-invitation-title,.lbn-dashboard-row-title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; }
.dashboard-invitation-detail,.lbn-dashboard-row-detail { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.dashboard-invitation-actions,.lbn-dashboard-row-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); justify-content: flex-end; }
.lbn-dashboard-list-heading { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-replacement-seat-row { align-items: center; background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(10rem,1.6fr) minmax(7.5rem,1fr) 5.5rem auto; padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-responsive-copy { min-width: 0; }
.lbn-dashboard-row-centered { text-align: center; }
.lbn-dashboard-filtered-list { display: grid; gap: var(--lbn-space-3); }
.lbn-lobby-filters { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); display: grid; gap: var(--lbn-space-2); grid-template-columns: repeat(4,minmax(0,1fr)); padding: var(--lbn-space-3); }
.lbn-lobby-filters label { color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-1); }
.lbn-dashboard-filter-select { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-xs); min-height: var(--lbn-control-md); padding: var(--lbn-space-2); width: 100%; }
.lbn-dashboard-sidebar-item { align-items: center; background: transparent; border-radius: var(--lbn-radius-md); cursor: pointer; display: flex; font-size: var(--lbn-text-sm); justify-content: space-between; padding: var(--lbn-space-3) var(--lbn-space-4); transition: background .2s; }
.lbn-dashboard-sidebar-item--active { background: var(--lbn-accent-blue); }
.lbn-dashboard-sidebar-badge { background: var(--lbn-accent-blue); border-radius: var(--lbn-radius-sm); color: white; font-size: var(--lbn-text-xs); font-weight: 600; padding: .125rem .375rem; }
.lbn-dashboard-empty { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-6); text-align: center; }
.lbn-dashboard-empty p { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); margin: 0; }
.lbn-dashboard-card-list { display: flex; flex-direction: column; gap: var(--lbn-space-3); }
.dashboard-game-action-row { background: var(--lbn-bg-panel-alt); border: 1px solid var(--lbn-accent-blue); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-4); }
.dashboard-game-action-thumb { align-items: center; background: var(--lbn-bg-dark); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); display: flex; flex-direction: column; font-size: var(--lbn-text-xs); font-weight: 700; gap: var(--lbn-space-1); height: 3.75rem; justify-content: center; padding: var(--lbn-space-1); text-align: center; width: 5rem; }
.dashboard-game-action-thumb .lbn-attention-label { color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-dashboard-thumb-caption { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); letter-spacing: .03125rem; text-transform: uppercase; }
.dashboard-game-action-summary h4 { color: var(--lbn-text-main); font-size: var(--lbn-text-md); font-weight: 700; margin: 0 0 var(--lbn-space-1); }
.lbn-dashboard-table-name { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 500; margin: 0 0 var(--lbn-space-1); }
.lbn-dashboard-turn-number { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); margin: 0; }
.lbn-dashboard-badge { border-radius: var(--lbn-radius-sm); display: inline-block; font-size: var(--lbn-text-xs); font-weight: 700; margin-right: var(--lbn-space-2); margin-top: var(--lbn-space-1); padding: .125rem var(--lbn-space-2); }
.lbn-dashboard-badge--warm { background: var(--lbn-attention); color: var(--lbn-on-warm); }
.lbn-dashboard-badge--blue { background: var(--lbn-accent-blue); color: white; }
.dashboard-game-action-opponents,.dashboard-game-action-players { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.dashboard-game-action-deadline { color: var(--lbn-status-danger); font-size: var(--lbn-text-xs); font-weight: 700; }
.dashboard-game-view-row { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-2) var(--lbn-space-3); }
.dashboard-game-view-icon { align-items: center; background: var(--lbn-bg-dark); border-radius: var(--lbn-radius-md); color: var(--lbn-accent-blue); display: flex; font-size: var(--lbn-text-xs); font-weight: 700; height: 1.75rem; justify-content: center; letter-spacing: .0125rem; width: 1.75rem; }
.dashboard-game-view-title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 600; line-height: var(--lbn-leading-heading); margin: 0; }
.dashboard-game-view-detail { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: var(--lbn-leading-body); margin: 0; min-width: 0; }
.lbn-lobby-table-card { background: var(--lbn-bg-panel); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-lobby-table-row { align-items: center; display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(10rem,1.8fr) minmax(6.875rem,1fr) 4.5rem 4.625rem 4.375rem minmax(5.625rem,auto); }
.lbn-lobby-participants { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); overflow-x: auto; scrollbar-width: thin; white-space: nowrap; }
.lbn-lobby-players,.lbn-lobby-secondary { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); text-align: center; }
.lbn-lobby-rating--rated { color: var(--lbn-accent-blue); font-weight: 700; }
.lbn-lobby-table-details { border-top: 1px solid var(--lbn-border-soft); color: var(--lbn-text-muted); display: grid; font-size: var(--lbn-text-xs); gap: var(--lbn-space-2); margin-top: var(--lbn-space-2); padding-top: var(--lbn-space-2); }
.dashboard-admin-seat-form { align-items: center; display: grid; gap: var(--lbn-space-2); grid-template-columns: minmax(11.25rem,20rem) max-content; justify-content: start; }
.lbn-dashboard-admin-input { background: var(--lbn-bg-main); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); color: var(--lbn-text-main); font: inherit; font-size: var(--lbn-text-xs); min-height: var(--lbn-control-md); min-width: 0; padding: var(--lbn-space-2); }

@media (max-width: 40rem) {
    .lbn-create-timing-summary { align-items: stretch; flex-direction: column; }
    .lbn-create-diplomacy-primary { grid-template-columns: minmax(0,1fr); }
    .dashboard-game-action-row { gap: var(--lbn-space-3); grid-template-areas: 'thumb summary' 'opponents opponents' 'deadline players' 'open open'; grid-template-columns: 3rem minmax(0,1fr); padding: var(--lbn-space-3) !important; }
    .dashboard-game-action-thumb { box-sizing: border-box; grid-area: thumb; height: 3rem !important; width: 3rem !important; }
    .dashboard-game-action-summary { grid-area: summary; }
    .dashboard-game-action-summary h4,.dashboard-game-action-summary p,.dashboard-game-view-title,.dashboard-game-view-detail { overflow: visible; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
    .dashboard-game-action-opponents { border-top: 1px solid var(--lbn-border-soft); grid-area: opponents; padding-top: var(--lbn-space-2); text-align: left !important; }
    .dashboard-game-action-deadline { grid-area: deadline; text-align: left !important; }
    .dashboard-game-action-players { grid-area: players; text-align: right !important; }
    .dashboard-game-action-open { grid-area: open; min-height: var(--lbn-control-sm); width: 100%; }
    .dashboard-game-view-row { align-items: start; grid-template-areas: 'icon copy' 'open open'; grid-template-columns: 1.75rem minmax(0,1fr); padding: var(--lbn-space-3) !important; }
    .dashboard-game-view-icon { grid-area: icon; }
    .dashboard-game-view-copy { grid-area: copy; }
    .dashboard-game-view-open { grid-area: open; margin-top: var(--lbn-space-1); min-height: var(--lbn-control-sm); width: 100%; }
    .dashboard-invitation-row { grid-template-columns: minmax(0,1fr) !important; }
    .dashboard-invitation-row > div:last-child { justify-content: stretch !important; }
    .dashboard-invitation-row button { flex: 1 1 8rem; min-height: var(--lbn-control-sm); }
    .dashboard-admin-seat-form { grid-template-columns: minmax(0,1fr) !important; }
    .dashboard-admin-seat-form button { min-height: var(--lbn-control-sm); width: 100%; }
    .friends-page-layout { gap: var(--lbn-space-4); grid-template-columns: minmax(0,1fr); }
    .friends-chat-panel { min-height: 27.5rem; width: 100%; }
    .community-link-grid { grid-template-columns: minmax(0,1fr); }
    .pip-layout,.line-layout { grid-template-columns: minmax(0,1fr); }
    .line-board { padding: var(--lbn-space-4); }
    .line-pools { grid-template-columns: minmax(0,1fr); }
    .line-pool { align-items: center; display: grid; grid-template-columns: minmax(0,1fr) auto; }
    .lbn-catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lbn-section-header { align-items: stretch; }
    .lbn-section-header > .lbn-button { width: 100%; }
    .lbn-tournament-admin-form { grid-template-columns: minmax(0,1fr); }
    .lbn-tournament-admin-row { align-items: stretch; flex-direction: column; }
    .lbn-tournament-admin-row button { width: 100%; }
    .lbn-tournament-page-header { align-items: stretch; }
    .lbn-tournament-page-header > .lbn-button { width: 100%; }
    .lbn-tournament-manage-actions { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; }
    .lbn-tournament-manage-actions .lbn-button { width: 100%; }
    .lbn-tournament-edit-fields { grid-template-columns: minmax(0,1fr); }
    .lbn-tournament-edit-actions { flex-direction: column-reverse; }
    .lbn-tournament-edit-actions .lbn-button { width: 100%; }
    .lbn-pairing-row { align-items: stretch; flex-direction: column; }
    .lbn-pairing-actions { justify-content: space-between; }
    .my-stats-layout { grid-template-columns: minmax(0,1fr); }
    .lbn-profile-friend-action { width: 100%; }
    .settings-form-grid-2,.settings-form-grid-3,.settings-session-action { grid-template-columns: minmax(0,1fr); }
    .settings-page section { padding: var(--lbn-space-4) !important; }
    .settings-session-action > button { white-space: normal; width: 100%; }
    .settings-action-row > button { flex: 1 1 11.875rem; white-space: normal; }
    .settings-action-row > span { flex: 1 1 100%; width: 100%; }
    .avatar-designer { grid-template-columns: minmax(0,1fr); }
    .avatar-preview { margin: auto; max-width: 11.25rem; }
    .settings-deadline-row { grid-template-columns: minmax(0,1fr); }
    .settings-deadline-row span:last-child { text-align: left; }
    .lbn-auth-content { padding: var(--lbn-space-5); }
    .lbn-auth-method-grid { grid-template-columns: minmax(0,1fr); }
    .lbn-start-hero,.lbn-start-featured { padding-left: var(--lbn-space-4); padding-right: var(--lbn-space-4); }
    .lbn-start-news-list a { grid-template-columns: minmax(0,1fr); gap: var(--lbn-space-1); }
    .lbn-featured-table-row,.lbn-featured-create-row { grid-template-columns: minmax(0,1fr); }
    .lbn-featured-table-action { width: 100%; }
}

@media (max-width: 25rem) {
    .lbn-lobby-filters { grid-template-columns: minmax(0,1fr) !important; }
    .friends-page-sidebar { gap: var(--lbn-space-3); }
    .friends-add-row,.friends-chat-composer { display: grid; grid-template-columns: minmax(0,1fr); }
    .friends-add-row button,.friends-chat-composer button { width: 100%; }
    .friends-chat-panel { min-height: 25rem; }
    .friends-chat-input { max-height: 6rem; width: 100%; }
    .friends-chat-message { max-width: 88%; }
    .daily-completion-dialog { padding: var(--lbn-space-5) var(--lbn-space-4); }
    .lbn-daily-final-score { font-size: 3.125rem; }
    .daily-completion-register { grid-template-columns: minmax(0,1fr); }
    .daily-completion-register button { width: 100%; }
    .lbn-catalog-grid { grid-template-columns: minmax(0,1fr); }
    .my-stats-history-row { align-items: start; grid-template-columns: minmax(0,1fr); }
    .my-stats-history-row > span { justify-self: start; text-align: left; }
    .settings-action-row { align-items: stretch; gap: var(--lbn-space-3); }
    .settings-action-row > button { flex-basis: 100%; width: 100%; }
    .settings-page button { max-width: 100%; white-space: normal; }
    .settings-form-grid { gap: var(--lbn-space-3); }
    .avatar-controls { grid-template-columns: minmax(0,1fr); }
    .avatar-wide,.avatar-controls h4,.avatar-presets { grid-column: 1; }
    .lbn-board-toolbar__group:first-child { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .lbn-button { transition: none; }
    .browse-game-flip-inner { transition: none; }
    .dip-project-card { transition: none; }
    .dip-project-card:hover { transform: none; }
}

/* Game rules and the Sopwith learning surface share the standard content rhythm. */
.game-rules-page,.game-rules-container,.game-rules-tabs,.game-rules-content { box-sizing: border-box; max-width: 92.5rem; margin-inline: auto; }
.game-rules-page { padding: var(--lbn-space-6) var(--lbn-space-6) 2.125rem; }
.game-rules-tabs { padding: var(--lbn-space-5) var(--lbn-space-6) 0; }
.game-rules-content { padding: 0 var(--lbn-space-6) 2.125rem; }
.game-rules-hero-copy { display: flex; align-items: flex-start; flex-direction: column; gap: var(--lbn-space-3); }
.game-rules-era { padding: .3125rem .5625rem; border: 1px solid rgba(222,190,118,.42); border-radius: var(--lbn-radius-pill); background: rgba(51,37,18,.64); color: #f2d99c; font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .06875rem; text-transform: uppercase; }
.game-rules-title { min-width: 0; margin: 0; color: var(--lbn-text-inverse); font-size: clamp(1.75rem,5vw,2.75rem); font-weight: 760; line-height: 1.08; text-shadow: 0 .125rem 1.125rem rgba(0,0,0,.42); }
.game-rules-hero-description { max-width: 41.25rem; margin: 0; color: #d8e0e7; font-size: clamp(.8125rem,2vw,.9375rem); line-height: 1.55; text-shadow: 0 .0625rem .5rem rgba(0,0,0,.5); }
.game-rules-missing { padding: var(--lbn-space-4); }
.game-rules-missing h1 { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-main); font-size: var(--lbn-text-3xl); }
.game-rules-missing p,.game-rules-unavailable { color: var(--lbn-text-muted); }
.game-rules-missing p,.game-rules-unavailable p { margin: 0; }
.game-rules-unavailable { padding: var(--lbn-space-5); }
.game-rules-unavailable h2 { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-main); font-size: var(--lbn-text-xl); }
.game-rules-panel { padding: var(--lbn-space-4); }
.game-rules-error { margin-bottom: var(--lbn-space-4); }
.game-rules-heading { margin: 0 0 var(--lbn-space-5); color: var(--lbn-text-main); font-size: var(--lbn-text-xl); font-weight: 700; }
.game-rules-tutorial-cta { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); flex-wrap: wrap; margin-bottom: var(--lbn-space-5); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); }
.game-rules-tutorial-cta span { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.5; }
.game-rules-empty { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-md); font-style: italic; }
.game-rules-start-action { margin-top: var(--lbn-space-4); }
.game-rules-back { margin-top: var(--lbn-space-5); padding-top: var(--lbn-space-4); border-top: 1px solid var(--lbn-border-soft); }
.game-rules-back-button { display: inline-flex; align-items: center; gap: var(--lbn-space-2); padding: .5625rem var(--lbn-space-3); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-sm); }
.game-rules-back-button:hover { color: var(--lbn-text-main); border-color: var(--lbn-border-strong); }
.game-rules-tablist { display: flex; align-items: end; gap: var(--lbn-space-1); margin-bottom: var(--lbn-space-5); border-bottom: 1px solid var(--lbn-border-soft); }
.game-rules-tab { min-height: 2.75rem; padding: .625rem 1.125rem; border: 0; border-bottom: .1875rem solid transparent; background: transparent; color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-sm); font-weight: 700; }
.game-rules-tab--active { border-bottom-color: var(--lbn-accent-gold); color: var(--lbn-text-main); }
.game-rules-tab-note { margin: 0 0 var(--lbn-space-3) var(--lbn-space-1); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.variant-briefing { margin: 0 0 var(--lbn-space-5); padding: var(--lbn-space-4); border-radius: var(--lbn-radius-lg); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.variant-briefing--fog { border: 1px solid rgba(159,181,205,.28); background: linear-gradient(135deg,rgba(18,37,54,.86),rgba(31,25,48,.82)); }
.variant-briefing--colonial { padding: clamp(.9375rem,2.5vw,1.25rem); border: 1px solid rgba(206,169,97,.3); background: linear-gradient(135deg,rgba(31,42,49,.92),rgba(45,34,25,.88)); box-shadow: inset 0 1px 0 rgba(255,255,255,.04),0 .75rem 1.875rem rgba(0,0,0,.12); }
.variant-briefing-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-4); flex-wrap: wrap; }
.variant-briefing-copy { max-width: 45rem; }
.variant-briefing-eyebrow { margin-bottom: .3125rem; color: #9fb8cf; font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .075rem; text-transform: uppercase; }
.variant-briefing--colonial .variant-briefing-eyebrow { color: #d8bb7d; }
.variant-briefing h3 { margin: 0 0 .375rem; color: #f1f5f9; font-size: var(--lbn-text-lg); line-height: 1.25; }
.variant-briefing--colonial h3 { margin-bottom: 0; color: #f4f1e9; }
.variant-briefing p { margin: 0; color: #c4d0dc; font-size: var(--lbn-text-sm); line-height: 1.55; }
.variant-briefing-badge { padding: .3125rem .5625rem; border: 1px solid rgba(222,190,118,.34); border-radius: var(--lbn-radius-pill); background: rgba(91,68,30,.34); color: #f2d99c; font-size: var(--lbn-text-xs); font-weight: 700; white-space: nowrap; }
.variant-briefing-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(11.875rem,1fr)); gap: .5625rem; margin-top: var(--lbn-space-4); }
.variant-briefing-grid > div { padding: .625rem; border-radius: var(--lbn-radius-md); background: rgba(7,15,24,.42); }
.variant-briefing--colonial .variant-briefing-grid > div { padding: .6875rem; }
.variant-briefing-grid strong,.variant-briefing-grid span { display: block; font-size: var(--lbn-text-xs); }
.variant-briefing-grid strong { margin-bottom: .1875rem; color: #e8eef5; }
.variant-briefing--colonial .variant-briefing-grid strong { margin-bottom: var(--lbn-space-1); color: #f0e9d9; }
.variant-briefing-grid span { color: #adbdcb; line-height: 1.45; }
.variant-briefing--colonial .variant-briefing-grid span { color: #bdc7ca; line-height: 1.5; }

.sopwith-tutorial { margin-bottom: var(--lbn-space-5); }
.sopwith-tutorial-intro { max-width: 47.5rem; margin: 0 auto var(--lbn-space-6); text-align: center; }
.sopwith-tutorial-intro h2 { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-main); font-size: clamp(1.5rem,4vw,2.125rem); }
.sopwith-tutorial-intro p { margin: 0; color: var(--lbn-text-muted); line-height: 1.65; }
.sopwith-tutorial-intro button { margin-top: var(--lbn-space-3); }
.sopwith-tutorial-board { display: block; width: 100%; height: auto; aspect-ratio: 1; overflow: hidden; border-radius: var(--lbn-radius-md); background: #12392f; }
.sopwith-tutorial-shot--delayed { animation-delay: .25s; }
.sopwith-tutorial-shot--late { animation-delay: .5s; }
.lbn-tab-button { position: relative; border: 0; border-bottom: .125rem solid transparent; background: transparent; color: var(--lbn-text-muted); cursor: pointer; font-weight: 500; }
.lbn-tab-button--active { border-bottom-color: var(--lbn-accent-blue); color: var(--lbn-text-main); }
.lbn-tab-button__badge { position: absolute; top: -.5rem; right: 0; margin-left: var(--lbn-space-1); padding: .125rem var(--lbn-space-2); border-radius: var(--lbn-radius-sm); background: var(--lbn-accent-blue); color: white; font-size: var(--lbn-text-xs); font-weight: 600; }
.lbn-sidebar { position: sticky; top: 0; display: flex; width: 13.75rem; min-width: 13.75rem; height: 100vh; flex-direction: column; overflow-y: auto; border-right: 1px solid var(--lbn-border-dark); background: var(--lbn-bg-sidebar); }
.lbn-sidebar-brand { display: flex; flex: 0 0 auto; align-items: center; gap: .625rem; padding: var(--lbn-space-4) 1.125rem .875rem; text-decoration: none; }
.lbn-sidebar-brand-image { display: block; width: 2.125rem; height: 2.125rem; flex: 0 0 auto; object-fit: cover; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); }
.lbn-sidebar-brand-copy { display: flex; flex-direction: column; line-height: 1.2; }
.lbn-sidebar-brand-name { color: var(--lbn-text-inverse); font-size: var(--lbn-text-md); font-weight: 700; letter-spacing: 0; }
.lbn-sidebar-divider { height: 1px; margin: var(--lbn-space-2) var(--lbn-space-4); background: var(--lbn-border-dark); }
.lbn-sidebar-divider--brand { margin: 0 var(--lbn-space-5) var(--lbn-space-2); }
.lbn-sidebar-nav { flex: 0 0 auto; padding-block: var(--lbn-space-1); overflow-y: auto; }
.lbn-sidebar-section-label { padding: var(--lbn-space-1) var(--lbn-space-5); color: var(--lbn-sidebar-text-muted,var(--lbn-text-muted)); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .075rem; text-transform: uppercase; }
.lbn-sidebar-nav-item { display: flex; align-items: center; gap: var(--lbn-space-3); padding: .6875rem var(--lbn-space-5); border-left: .1875rem solid transparent; background: transparent; color: var(--lbn-sidebar-text,var(--lbn-text-muted)); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .05rem; text-decoration: none; text-transform: uppercase; transition: background .15s,color .15s; }
.lbn-sidebar-nav-item.is-active { border-left-color: var(--lbn-accent-warm); background: var(--lbn-accent-warm-muted); color: var(--lbn-text-inverse); }
.lbn-sidebar-nav-icon { width: 1.25rem; flex: 0 0 auto; font-size: var(--lbn-text-md); text-align: center; }
.lbn-sidebar-nav-label { flex: 1; }
.lbn-sidebar-nav-badge { min-width: 1.125rem; flex: 0 0 auto; padding: .0625rem .4375rem; border-radius: var(--lbn-radius-pill); background: var(--lbn-attention); color: var(--lbn-on-warm); font-size: var(--lbn-text-xs); font-weight: 700; text-align: center; }
.lbn-sidebar-account { flex: 0 0 auto; padding: .875rem var(--lbn-space-5); border-top: 1px solid var(--lbn-border-dark); }
.lbn-sidebar-profile { display: flex; align-items: center; gap: .625rem; margin-bottom: .625rem; }
.lbn-sidebar-profile-copy { flex: 1; min-width: 0; }
.lbn-sidebar-profile-name { overflow: hidden; color: var(--lbn-text-inverse); font-size: var(--lbn-text-sm); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.lbn-sidebar-online { display: flex; align-items: center; gap: var(--lbn-space-1); color: #22c55e; font-size: var(--lbn-text-xs); }
.lbn-sidebar-online span { display: inline-block; width: .375rem; height: .375rem; flex: 0 0 auto; border-radius: 50%; background: #22c55e; }
.lbn-sidebar-turn-alert,.lbn-sidebar-notification-alert { display: flex; align-items: center; justify-content: space-between; margin-bottom: .375rem; }
.lbn-sidebar-turn-alert { padding: .4375rem .625rem; border-radius: .375rem; background: var(--lbn-accent-red-dark); color: white; font-size: var(--lbn-text-xs); font-weight: 600; text-decoration: none; }
.lbn-sidebar-notification-alert { color: var(--lbn-sidebar-text,var(--lbn-text-muted)); font-size: var(--lbn-text-xs); }
.lbn-sidebar-alert-badge { padding: .0625rem .4375rem; border-radius: var(--lbn-radius-pill); background: var(--lbn-accent-red); color: white; font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-sidebar-account-actions { display: flex; align-items: center; gap: .375rem; margin-top: .375rem; }
.lbn-sidebar-account-button { flex: 1; padding: .375rem; border: 1px solid var(--lbn-border-soft); border-radius: .375rem; background: var(--lbn-bg-main); color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-xs); font-weight: 600; }
.lbn-sidebar-sign-in,.lbn-sidebar-register { display: block; width: 100%; padding: var(--lbn-space-2); border-radius: .375rem; cursor: pointer; text-align: center; }
.lbn-sidebar-sign-in { margin-bottom: .375rem; border: 0; background: var(--lbn-accent-blue); color: white; font-size: var(--lbn-text-sm); font-weight: 600; }
.lbn-sidebar-register { border: 1px solid var(--lbn-border-soft); background: transparent; color: var(--lbn-sidebar-text,var(--lbn-text-muted)); font-size: var(--lbn-text-xs); }
.lbn-sidebar-preferences { flex: 0 0 auto; padding: var(--lbn-space-2) .875rem; border-top: 1px solid var(--lbn-border-dark); }
.lbn-sidebar-preferences-row { display: flex; align-items: center; justify-content: center; gap: var(--lbn-space-2); }
.lbn-sidebar-theme-button { display: inline-flex; width: 2.125rem; height: 2.125rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-sidebar-text,var(--lbn-text-muted)); cursor: pointer; font-size: var(--lbn-text-md); line-height: 1; }
.lbn-app-shell { position: relative; display: flex; min-height: 100vh; flex-direction: column; }
.lbn-shell-layout { display: flex; min-height: 0; flex: 1; }
.lbn-mobile-brand { display: flex; min-width: 0; align-items: center; gap: .625rem; text-decoration: none; }
.lbn-mobile-brand-image { display: block; width: 2rem; height: 2rem; flex: 0 0 auto; object-fit: cover; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); }
.lbn-mobile-brand-name { overflow: hidden; color: var(--lbn-text-inverse); font-size: var(--lbn-text-md); font-weight: 700; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
.lbn-mobile-auth-button { height: 2rem; padding-inline: .5625rem; border-radius: .4375rem; cursor: pointer; font-size: var(--lbn-text-xs); font-weight: 700; white-space: nowrap; }
.lbn-mobile-auth-button--secondary { border: 1px solid var(--lbn-border-soft); background: transparent; color: var(--lbn-text-inverse); }
.lbn-mobile-auth-button--primary { border: 1px solid var(--lbn-accent-blue); background: var(--lbn-accent-blue); color: white; }
.lbn-mobile-user-badge { display: inline-flex; width: 1.875rem; height: 1.875rem; flex: 0 0 auto; align-items: center; justify-content: center; text-decoration: none; }
.lbn-mobile-logout-button { height: 1.875rem; padding-inline: .5625rem; border: 1px solid var(--lbn-border-soft); border-radius: .4375rem; background: var(--lbn-bg-main); color: var(--lbn-text-muted); cursor: pointer; font-size: var(--lbn-text-xs); font-weight: 700; white-space: nowrap; }
.lbn-mobile-menu-button { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-text-inverse); cursor: pointer; font-size: 1.375rem; line-height: 1; }
.lbn-gateway-page { display: grid; max-width: 45rem; margin-inline: auto; padding-block: var(--lbn-space-8); gap: var(--lbn-space-4); color: var(--lbn-text-main); }
.lbn-gateway-page--wide { max-width: 47.5rem; }
.lbn-gateway-card { padding: var(--lbn-space-6); }
.lbn-gateway-card--compact { padding: 1.375rem; }
.lbn-gateway-card--status { display: grid; gap: var(--lbn-space-3); }
.lbn-gateway-eyebrow { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: 0; text-transform: uppercase; }
.lbn-gateway-card h1 { margin: var(--lbn-space-2) 0 .625rem; font-size: var(--lbn-text-3xl); line-height: 1.15; }
.lbn-gateway-card--compact h1 { font-size: 1.75rem; }
.lbn-gateway-card--status h1 { margin: 0; font-size: 1.875rem; }
.lbn-gateway-card--status:not(:has(.lbn-gateway-eyebrow)) h1 { font-size: 1.5rem; }
.lbn-gateway-card p { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-md); line-height: 1.6; }
.lbn-gateway-card--compact p { font-size: var(--lbn-text-sm); line-height: 1.55; }
.lbn-gateway-actions { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 1.125rem; }
.lbn-gateway-card:not(.lbn-gateway-card--compact) .lbn-gateway-actions { margin-top: var(--lbn-space-5); }
.lbn-results-nav { display: flex; align-items: center; gap: var(--lbn-space-3); flex-wrap: wrap; margin-bottom: 1.125rem; color: var(--lbn-text-muted); }
.lbn-results-nav > span { padding: .4375rem .6875rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-pill); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lbn-results-nav a { color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
.lbn-poll-results h1 { margin: 0 0 var(--lbn-space-4); color: var(--lbn-text-main); font-size: clamp(2.125rem,4vw,3.5rem); font-weight: 700; line-height: 1.08; }
.lbn-poll-results-summary { max-width: 51.25rem; margin: 0 0 var(--lbn-space-5); color: var(--lbn-text-muted); font-size: var(--lbn-text-lg); line-height: 1.65; }
.lbn-poll-results-list { display: grid; max-width: 56.25rem; gap: .625rem; }
.lbn-poll-result { display: grid; gap: .5625rem; padding: .8125rem .875rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel); }
.lbn-poll-result-heading { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: var(--lbn-space-3); align-items: baseline; }
.lbn-poll-result-rank,.lbn-poll-result-votes { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-poll-result-rank { min-width: 2ch; }
.lbn-poll-result-votes { white-space: nowrap; }
.lbn-poll-result-heading strong { color: var(--lbn-text-main); font-size: var(--lbn-text-md); line-height: 1.25; }
.lbn-poll-result-track { height: .5rem; overflow: hidden; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-main); }
.lbn-poll-result-fill { height: 100%; border-radius: var(--lbn-radius-pill); background: var(--lbn-accent-blue); }
.lbn-poll-result-description { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.45; }
.lbn-results-state { padding: var(--lbn-space-4); color: var(--lbn-text-muted); }
.lbn-contact-panel { max-width: 47.5rem; padding: var(--lbn-space-5); }
.lbn-contact-list { display: grid; gap: var(--lbn-space-4); }
.lbn-contact-note { margin: 1.125rem 0 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.55; }
.lbn-info-row { min-width: 0; padding: .625rem var(--lbn-space-3); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-main); }
.lbn-info-row-label { margin-bottom: .3125rem; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .03125rem; text-transform: uppercase; }
.lbn-info-row-value { overflow-wrap: anywhere; color: var(--lbn-text-main); font-size: var(--lbn-text-sm); line-height: 1.35; }
.lbn-contact-row { padding-top: var(--lbn-space-3); border-top: 1px solid var(--lbn-border-soft); }
.lbn-contact-row > div { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-3); flex-wrap: wrap; }
.lbn-contact-row strong { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.lbn-contact-row a { color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
.lbn-contact-row p { margin: .375rem 0 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.45; }
.lbn-account-form { display: grid; max-width: 32.5rem; gap: var(--lbn-space-3); padding: var(--lbn-space-5); }
.lbn-account-form-fields { display: flex; flex-direction: column; gap: var(--lbn-space-3); }
.lbn-account-form .lbn-input { box-sizing: border-box; width: 100%; }
.lbn-account-message,.lbn-account-error { margin: 0; color: var(--lbn-text-main); font-size: var(--lbn-text-sm); line-height: 1.45; }
.lbn-account-error { color: var(--lbn-text-danger); font-weight: 600; }
.lbn-account-message--spaced { margin-top: var(--lbn-space-4); }
.lbn-account-back { margin: var(--lbn-space-4) 0 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-account-back-link { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); text-decoration: none; }
.lbn-field { display: grid; gap: .375rem; color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.lbn-field-label { display: block; margin-bottom: .375rem; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-language-picker { width: 3.375rem; height: 2.125rem; padding-inline: var(--lbn-space-1); border: 1px solid var(--lbn-border-dark); border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-text-inverse); cursor: pointer; font-size: var(--lbn-text-lg); line-height: 1; text-align: center; }
.lbn-toast-layout { display: flex; align-items: flex-start; gap: var(--lbn-space-3); }
.lbn-toast-icon { display: flex; width: 2.125rem; height: 2.125rem; flex: 0 0 auto; align-items: center; justify-content: center; border-radius: var(--lbn-radius-pill); background: var(--lbn-accent-blue); color: white; font-size: var(--lbn-text-md); }
.lbn-toast-copy { flex: 1; min-width: 0; }
.lbn-toast-title { margin-bottom: var(--lbn-space-1); color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-toast-message { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.4; }
.lbn-toast-actions { display: flex; gap: .625rem; margin-top: .875rem; }
.lbn-toast-action { min-width: 6.875rem; text-decoration: none; }
.lbn-nav-link { color: var(--lbn-text-inverse); cursor: pointer; font-size: var(--lbn-text-sm); text-decoration: none; transition: color .2s; }
.lbn-crm-block { min-width: 0; overflow: hidden; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-crm-block--dashboard { margin-bottom: 28px; }
.lbn-crm-block--dashboard-hero,
.lbn-crm-block--hero,
.lbn-crm-block--faq,
.lbn-crm-block--landing-cta { border-color: var(--lbn-accent-blue); }
.lbn-crm-block--dashboard-cta,
.lbn-crm-block--cta { border-color: var(--lbn-accent-green); }
.lbn-crm-block--landing-hero { border-color: var(--lbn-accent-gold); }
.lbn-crm-block__grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.lbn-crm-block__grid--image { grid-template-columns: minmax(0, 1fr) minmax(150px, .35fr); }
.lbn-crm-block__body { padding: 14px 16px; }
.lbn-crm-block--dashboard .lbn-crm-block__body { padding: 18px 20px; }
.lbn-crm-block--dashboard-hero .lbn-crm-block__body { padding: 24px 28px; }
.lbn-crm-block--dashboard-cta .lbn-crm-block__body { padding: 18px 22px; }
.lbn-crm-block--landing-hero .lbn-crm-block__body { padding: 18px; }
.lbn-crm-block--landing-cta .lbn-crm-block__body { padding: 14px; }
.lbn-crm-block--hero .lbn-crm-block__body { padding: 20px 24px; }
.lbn-crm-block--cta .lbn-crm-block__body { padding: 16px 18px; }
.lbn-crm-block--legal .lbn-crm-block__body { padding: 12px 14px; }
.lbn-crm-block--faq .lbn-crm-block__body { padding: 14px 16px; }
.lbn-crm-block__emphasis { display: inline-block; margin-top: 12px; color: var(--lbn-accent-blue); font-size: var(--lbn-text-sm); font-weight: 700; text-decoration: none; }
div.lbn-crm-block__emphasis { display: block; margin: 0 0 7px; font-size: var(--lbn-text-xs); text-transform: uppercase; }
.lbn-crm-block__emphasis--green { color: var(--lbn-accent-green); }
.lbn-crm-block__emphasis--red { color: var(--lbn-accent-red); }
.lbn-crm-block__title { margin: 0 0 8px; color: var(--lbn-text-main); font-size: 16px; font-weight: 700; line-height: 1.2; }
.lbn-crm-block--dashboard .lbn-crm-block__title { font-size: 20px; }
.lbn-crm-block--dashboard-hero .lbn-crm-block__title { font-size: 28px; }
.lbn-crm-block--dashboard-cta .lbn-crm-block__title,
.lbn-crm-block--hero .lbn-crm-block__title { font-size: 22px; }
.lbn-crm-block--landing-hero .lbn-crm-block__title,
.lbn-crm-block--cta .lbn-crm-block__title { font-size: 18px; }
.lbn-crm-block--legal .lbn-crm-block__title { font-size: 13px; }
.lbn-crm-block__copy { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.5; white-space: pre-line; }
.lbn-crm-block__image { min-height: 120px; background: var(--lbn-bg-panel-alt); }
.lbn-crm-block--dashboard .lbn-crm-block__image,
.lbn-crm-block--hero .lbn-crm-block__image { min-height: 140px; }
.lbn-crm-block--dashboard-hero .lbn-crm-block__image { min-height: 160px; }
.lbn-crm-block--landing-cta .lbn-crm-block__image { min-height: 110px; }
.lbn-crm-block--legal .lbn-crm-block__image,
.lbn-crm-block--faq .lbn-crm-block__image { min-height: 100px; }
.lbn-crm-block-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.lbn-global-announcement { display: flex; min-height: 2.125rem; align-items: center; justify-content: center; gap: .625rem; padding: var(--lbn-space-1) var(--lbn-space-3); border-bottom: 1px solid var(--lbn-border-soft); background: var(--lbn-accent-gold); color: #17130a; font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-global-announcement a { overflow-wrap: anywhere; color: inherit; text-decoration: none; }
.lbn-global-announcement-dismiss { padding: .375rem; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: var(--lbn-text-md); line-height: 1; }
.lbn-admin-empty,.lbn-admin-error { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-error { color: var(--lbn-text-danger); }
.lbn-admin-metric-list { display: grid; gap: .375rem; }
.lbn-admin-metric-row strong { overflow-wrap: anywhere; color: var(--lbn-text-main); }
.lbn-admin-metric-row span { color: var(--lbn-text-muted); }
.lbn-admin-preview-meta { display: flex; gap: var(--lbn-space-2); flex-wrap: wrap; margin-bottom: var(--lbn-space-3); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-admin-page-preview { max-width: 100%; padding: var(--lbn-space-4); overflow: hidden; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-main); }
.lbn-admin-page-preview--mobile { max-width: 390px; }
.lbn-admin-page-preview--tablet { max-width: 760px; }
.lbn-admin-page-preview--editorial { max-width: 920px; }
.lbn-admin-page-preview--legal { max-width: 780px; }
.lbn-admin-inline-title,
.lbn-admin-inline-subtitle,
.lbn-admin-inline-section-title,
.lbn-admin-inline-eyebrow,
.lbn-admin-inline-block-title,
.lbn-admin-inline-body,
.lbn-admin-inline-link { display: block; box-sizing: border-box; border: 1px solid transparent; border-radius: var(--lbn-radius-sm); background: transparent; font: inherit; }
.lbn-admin-inline-title { width: 100%; margin: 0 0 6px; padding: 3px 4px; color: var(--lbn-text-main); font-size: 24px; font-weight: 700; line-height: 1.15; }
.lbn-admin-inline-title--landing { font-size: 30px; }
.lbn-admin-inline-title--legal { font-size: 20px; }
.lbn-admin-inline-subtitle { width: 100%; max-width: 760px; min-height: 44px; margin: 0; padding: 3px 4px; resize: vertical; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.45; }
.lbn-admin-inline-section-title { width: 100%; margin: 0; padding: 3px 4px; color: var(--lbn-text-main); font-size: var(--lbn-text-lg); font-weight: 700; }
.lbn-admin-editable-block { overflow: hidden; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-editable-block--landing-hero,
.lbn-admin-editable-block--dashboard-hero,
.lbn-admin-editable-block--hero,
.lbn-admin-editable-block--faq { border-color: var(--lbn-accent-blue); }
.lbn-admin-editable-block--cta { border-color: var(--lbn-accent-green); }
.lbn-admin-editable-block--selected { border-color: var(--lbn-accent-blue); }
.lbn-admin-editable-block__grid { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.lbn-admin-editable-block__grid--image { grid-template-columns: minmax(0, 1fr) minmax(150px, .35fr); }
.lbn-admin-editable-block__body { padding: 14px 16px; }
.lbn-admin-editable-block--landing-hero .lbn-admin-editable-block__body,
.lbn-admin-editable-block--dashboard-hero .lbn-admin-editable-block__body { padding: 24px 28px; }
.lbn-admin-editable-block--hero .lbn-admin-editable-block__body { padding: 20px 24px; }
.lbn-admin-editable-block--cta .lbn-admin-editable-block__body { padding: 16px 18px; }
.lbn-admin-editable-block--legal .lbn-admin-editable-block__body { padding: 12px 14px; }
.lbn-admin-editable-block--faq .lbn-admin-editable-block__body { padding: 14px 16px; }
.lbn-admin-inline-eyebrow { width: 100%; margin: 0 0 6px; padding: 2px 3px; font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-admin-inline-block-title { width: 100%; margin: 0 0 6px; padding: 2px 3px; color: var(--lbn-text-main); font-size: 16px; font-weight: 700; }
.lbn-admin-editable-block--landing-hero .lbn-admin-inline-block-title,
.lbn-admin-editable-block--dashboard-hero .lbn-admin-inline-block-title { font-size: 28px; }
.lbn-admin-editable-block--hero .lbn-admin-inline-block-title { font-size: 22px; }
.lbn-admin-editable-block--cta .lbn-admin-inline-block-title { font-size: 18px; }
.lbn-admin-editable-block--legal .lbn-admin-inline-block-title { font-size: 13px; }
.lbn-admin-inline-body { width: 100%; min-height: 54px; margin: 0; padding: 2px 3px; resize: vertical; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.45; white-space: pre-line; }
.lbn-admin-inline-link { width: min(100%, 220px); margin-top: 9px; padding: 2px 3px; font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-inline-emphasis--blue { color: var(--lbn-accent-blue); }
.lbn-admin-inline-emphasis--green { color: var(--lbn-accent-green); }
.lbn-admin-inline-emphasis--red { color: var(--lbn-accent-red); }
.lbn-admin-editable-block__image { min-height: 120px; background: var(--lbn-bg-panel-alt); }
.lbn-admin-editable-block--landing-hero .lbn-admin-editable-block__image { min-height: 180px; }
.lbn-admin-editable-block--dashboard-hero .lbn-admin-editable-block__image { min-height: 160px; }
.lbn-admin-editable-block--hero .lbn-admin-editable-block__image { min-height: 140px; }
.lbn-admin-editable-block--legal .lbn-admin-editable-block__image,
.lbn-admin-editable-block--faq .lbn-admin-editable-block__image { min-height: 100px; }
.lbn-admin-preview-header { margin-bottom: var(--lbn-space-4); }
.lbn-admin-preview-stack { display: grid; gap: .875rem; }
.lbn-admin-preview-stack--roomy { gap: 1.125rem; }
.lbn-admin-preview-stack--dense { gap: var(--lbn-space-2); }
.lbn-admin-preview-actions { display: flex; gap: var(--lbn-space-2); flex-wrap: wrap; margin-bottom: .125rem; }
.lbn-admin-preview-section { display: grid; gap: var(--lbn-space-2); }
.lbn-admin-preview-token { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-preview-grid { display: grid; gap: .625rem; }
.lbn-admin-preview-grid--landing { grid-template-columns: repeat(auto-fit,minmax(min(100%,13.75rem),1fr)); }
.lbn-admin-preview-grid--community { grid-template-columns: repeat(auto-fit,minmax(min(100%,13.125rem),1fr)); }
.lbn-admin-preview-note { padding: var(--lbn-space-3); border: 1px dashed var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.45; }
.lbn-admin-preview-button { display: inline-flex; align-items: center; padding: var(--lbn-space-2) .6875rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-preview-button--primary { background: var(--lbn-accent-blue); color: white; }
.lbn-admin-drop-zone { padding: var(--lbn-space-2); border: 1px dashed var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-align: center; }
.lbn-admin-drop-zone--compact { padding: .375rem var(--lbn-space-2); }
.lbn-admin-preview-list { overflow: hidden; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel); }
.lbn-admin-preview-list-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .625rem; align-items: center; padding: .5625rem .625rem; border-top: 1px solid var(--lbn-border-soft); font-size: var(--lbn-text-xs); }
.lbn-admin-preview-list-row strong,.lbn-admin-preview-list-row span { display: block; }
.lbn-admin-preview-list-row strong { color: var(--lbn-text-main); }
.lbn-admin-preview-list-row span span { margin-top: .125rem; color: var(--lbn-text-muted); }
.lbn-admin-preview-list-status { color: var(--lbn-accent-blue) !important; font-weight: 700; white-space: nowrap; }
.lbn-admin-preview-selectable { cursor: pointer; }
.lbn-admin-preview-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.lbn-admin-history { padding: .875rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-history-title { margin-bottom: .625rem; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-admin-history-message { margin-bottom: var(--lbn-space-2); padding: var(--lbn-space-2) .5625rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-panel-alt); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.4; white-space: pre-line; }
.lbn-admin-history-list { display: grid; gap: var(--lbn-space-2); }
.lbn-admin-history-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; gap: .625rem; align-items: center; padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-soft); font-size: var(--lbn-text-xs); }
.lbn-admin-history-row strong { display: block; color: var(--lbn-text-main); }
.lbn-admin-history-row span { color: var(--lbn-text-muted); }
.lbn-admin-history-summary { display: block; margin-top: .125rem; }
.lbn-admin-history-validation { display: inline-block; margin-top: var(--lbn-space-1); padding: .125rem .375rem; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-pill); font-weight: 700; }
.lbn-admin-history-time { white-space: nowrap; }
.lbn-button--compact { padding: .3125rem var(--lbn-space-2); border-radius: .375rem; font-size: var(--lbn-text-xs); }
.lbn-admin-section-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); margin-bottom: .625rem; }
.lbn-admin-section-heading h3 { margin: 0; color: var(--lbn-text-main); font-size: var(--lbn-text-md); }
.lbn-admin-section-heading span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-block-list { display: grid; gap: .625rem; }
@media (max-width: 48rem) { .lbn-admin-history-row { grid-template-columns: minmax(0,1fr) auto; } }
.sopwith-tutorial-detail { margin-top: var(--lbn-space-3); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); }
.sopwith-tutorial-detail h3 { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-main); font-size: var(--lbn-text-md); }
.sopwith-tutorial-detail p { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.55; }
.sopwith-tutorial-notice { padding: .5625rem var(--lbn-space-3); border-left: .1875rem solid var(--lbn-accent-gold); background: var(--lbn-bg-panel); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); line-height: 1.5; }
.sopwith-tutorial-recruitment { margin-top: var(--lbn-space-4); padding: var(--lbn-space-3); border: 1px solid var(--lbn-accent-gold); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.sopwith-tutorial-recruitment > strong,.sopwith-tutorial-recruitment > span { display: block; }
.sopwith-tutorial-recruitment > strong { margin-bottom: var(--lbn-space-1); color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.sopwith-tutorial-recruitment > span { margin-bottom: var(--lbn-space-3); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.sopwith-tutorial-create-action { display: flex; justify-content: flex-start; margin-top: var(--lbn-space-3); }

.lexiturn-standalone-shell { display: flex; min-height: 100dvh; flex-direction: column; background: var(--lbn-bg-main); }
.lexiturn-standalone-brand { display: flex; height: 2.375rem; align-items: center; padding-inline: var(--lbn-space-3); border-bottom: 1px solid var(--lbn-border-soft); background: var(--lbn-bg-panel); }
.lexiturn-standalone-brand h1 { margin: 0; font: inherit; }
.lexiturn-rules-document { padding: clamp(var(--lbn-space-4),3vw,var(--lbn-space-7)); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-panel); }
.lexiturn-tutorial { max-width: 77.5rem; }
.lexiturn-tutorial-board { display: block; width: 100%; height: auto; max-height: min(72vh,45rem); }
.lexiturn-tutorial-detail { margin-top: var(--lbn-space-3); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); }
.lexiturn-tutorial-detail h3 { margin: 0 0 var(--lbn-space-2); color: var(--lbn-text-main); font-size: var(--lbn-text-md); }
.lexiturn-tutorial-detail p { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.55; }
.lexiturn-page-stack,.lexiturn-leaderboard-highlights { display: grid; gap: var(--lbn-space-4); }
.lexiturn-leaderboard-legend { display: flex; align-items: center; gap: var(--lbn-space-1); margin: 0; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-legend i { width: .5rem; height: .5rem; border-radius: 50%; background: var(--lbn-accent-blue); }
.lexiturn-leaderboard-name.is-registered { color: var(--lbn-accent-blue); }
.lexiturn-leaderboard-eyebrow { margin: 0 0 var(--lbn-space-2); color: var(--lbn-accent-gold); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lexiturn-leaderboard-summary { min-width: 0; margin-bottom: var(--lbn-space-3); }
.lexiturn-leaderboard-summary h3 { margin: 0 0 var(--lbn-space-1); color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-compact-list { display: grid; gap: .1875rem; margin: 0; padding: 0; list-style: none; }
.lexiturn-leaderboard-compact-list li { display: grid; grid-template-columns: 1.125rem minmax(0,1fr) auto; gap: .3125rem; color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-rank { color: var(--lbn-text-muted); }
.lexiturn-leaderboard-name { min-width: 0; overflow-wrap: anywhere; line-height: var(--lbn-leading-heading); }
.lexiturn-leaderboard-compact-list strong { color: var(--lbn-accent-gold); }
.lexiturn-leaderboard-empty { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-result { display: flex; align-items: baseline; justify-content: flex-end; gap: var(--lbn-space-1); white-space: nowrap; }
.lexiturn-leaderboard-result small { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboards { display: grid; gap: var(--lbn-space-3); margin-top: var(--lbn-space-2); scroll-margin-top: 1.125rem; }
.lexiturn-leaderboards h2 { margin: 0; color: var(--lbn-text-main); font-size: var(--lbn-text-xl); }
.lexiturn-leaderboard-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--lbn-space-3); }
.lexiturn-leaderboard-heading-row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--lbn-space-3); margin-top: .375rem; }
.lexiturn-leaderboard-heading-row span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-card { min-width: 0; padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lexiturn-leaderboard-card h3 { margin: 0 0 .5625rem; color: var(--lbn-text-main); font-size: var(--lbn-text-md); }
.lexiturn-leaderboard-list { display: grid; gap: .375rem; margin: 0; padding: 0; list-style: none; }
.lexiturn-leaderboard-list li { display: grid; grid-template-columns: 1.75rem minmax(0,1fr) auto; gap: .4375rem; align-items: center; color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lexiturn-leaderboard-score,.lexiturn-leaderboard-result strong { color: var(--lbn-accent-gold); font-size: var(--lbn-text-sm); }
@media (max-width: 35rem) { .lexiturn-leaderboard-pair { grid-template-columns: minmax(0,1fr); } }
.lexiturn-run-status { display: flex; align-items: center; margin-right: auto; color: var(--lbn-text-main); font-size: var(--lbn-text-sm); }
.lexiturn-live-board { display: block; width: 100%; height: auto; max-height: min(78vh,48.75rem); touch-action: none; user-select: none; -webkit-touch-callout: none; }
.lexiturn-attribution { display: flex; align-items: flex-start; gap: var(--lbn-space-2); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.45; }
.lexiturn-attribution img { display: block; width: 2.25rem; height: auto; }
.lexiturn-attribution > div { flex: 1; min-width: 0; }
.lexiturn-attribution p { margin: var(--lbn-space-2) 0 0; padding-top: var(--lbn-space-2); border-top: 1px solid var(--lbn-border-soft); }
.lexiturn-result-notice--danger { border-color: var(--lbn-status-danger); background: rgba(220,38,38,.13); color: var(--lbn-text-main); }
.lexiturn-result-notice--success { border-color: var(--lbn-status-success); background: rgba(22,163,74,.13); color: var(--lbn-text-main); }
.lexiturn-result-notice--warning { border-color: var(--lbn-accent-gold); background: color-mix(in srgb,var(--lbn-accent-gold) 10%,var(--lbn-bg-panel)); color: var(--lbn-text-main); }
.lexiturn-result-notice--muted { border-color: var(--lbn-border-soft); background: var(--lbn-bg-panel-alt); color: var(--lbn-text-muted); }
.lbn-text-muted { color: var(--lbn-text-muted); }
.lbn-text-danger { color: var(--lbn-text-danger); }
.lexiturn-result-notice--valid { border-color: var(--lbn-status-success); background: rgba(22,163,74,.08); color: var(--lbn-status-success); }
.lexiturn-board-hint { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lexiturn-svg-action { cursor: pointer; }
.lexiturn-tile { cursor: default; outline: none; }
.lexiturn-tile--active { cursor: pointer; }
.lexiturn-scoreboard-eyebrow { margin: 0 0 .375rem; color: var(--lbn-accent-gold); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lexiturn-scoreboard-title { margin: 0 0 var(--lbn-space-3); color: var(--lbn-text-main); font-size: var(--lbn-text-lg); }
.lexiturn-scoreboard-empty { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.5; }
.lexiturn-scoreboard-list { display: grid; gap: .4375rem; max-height: 31.875rem; margin: 0; padding: 0; overflow: auto; list-style: none; }
.lexiturn-scoreboard-list li { display: grid; grid-template-columns: 1.5rem minmax(0,1fr) auto; gap: .4375rem; color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lexiturn-scoreboard-list li > span:first-child { color: var(--lbn-text-muted); }
.lexiturn-scoreboard-list strong { overflow: hidden; text-overflow: ellipsis; }
.lexiturn-completion-backdrop { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 1.125rem; background: rgba(4,8,13,.78); backdrop-filter: blur(.3125rem); }
.lexiturn-completion-dialog { display: block; width: min(100%,35rem); height: auto; filter: drop-shadow(0 1.5rem 3.125rem rgba(0,0,0,.45)); }
.lexiturn-completion-form { display: grid; grid-template-columns: minmax(0,1fr) 9.625rem; gap: var(--lbn-space-3); align-items: end; box-sizing: border-box; padding: .25rem; font-family: inherit; }
.lexiturn-completion-form label { display: grid; gap: .3125rem; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lexiturn-completion-form .lbn-input,.lexiturn-completion-form .lbn-button { height: 2.625rem; }
.lexiturn-completion-error { grid-column: 1 / -1; margin: 0; color: var(--lbn-status-danger); font-size: var(--lbn-text-xs); font-weight: 700; line-height: 1.25; text-align: left; }
.lexiturn-problem-report { margin-left: auto; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.lexiturn-problem-report > summary { width: max-content; margin-left: auto; cursor: pointer; text-decoration: underline; text-underline-offset: .18em; }
.lexiturn-problem-report__form { display: grid; gap: var(--lbn-space-3); max-width: 36rem; margin-top: var(--lbn-space-2); margin-left: auto; padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); color: var(--lbn-text-main); }
.lexiturn-problem-report__form p { margin: 0; color: var(--lbn-text-muted); }
.lexiturn-problem-report__form label { display: grid; gap: var(--lbn-space-1); font-weight: var(--lbn-weight-semibold); }
.lexiturn-problem-report__fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--lbn-space-2); }
.lexiturn-problem-report__form select,.lexiturn-problem-report__form textarea { width: 100%; box-sizing: border-box; padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-inset); color: var(--lbn-text-main); font: inherit; }
.lexiturn-problem-report__actions { display: flex; align-items: center; gap: var(--lbn-space-2); }
.lexiturn-problem-report__actions span { color: var(--lbn-text-muted); }

@media (max-width: 40rem) {
    .game-rules-page,.game-rules-tabs,.game-rules-content { padding-inline: var(--lbn-space-4); }
}

@media (forced-colors: active) {
    .lbn-button,
    .lbn-card,
    .lbn-panel,
    .lbn-input,
    .lbn-select,
    .lbn-textarea,
    .lbn-status-banner { border-color: CanvasText; }
}
.lbn-admin-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--lbn-radius-sm);
  background: var(--lbn-bg-panel-alt);
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
}

.lbn-admin-badge--info,
.lbn-admin-badge--success,
.lbn-admin-badge--danger {
  color: var(--lbn-text-inverse);
  font-weight: 700;
}

.lbn-admin-badge--info { background: var(--lbn-accent-blue); }
.lbn-admin-badge--success { background: var(--lbn-accent-green); }
.lbn-admin-badge--danger { background: var(--lbn-accent-red-dark); }
.lbn-admin-badge--warning {
  background: var(--lbn-accent-gold);
  color: var(--lbn-bg-dark);
  font-weight: 700;
}

.lbn-admin-action-message { margin-bottom: var(--lbn-space-4); }
.lbn-admin-notice {
  padding: 10px 14px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-panel);
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-sm);
}
.lbn-admin-tabs {
  display: flex;
  gap: var(--lbn-space-6);
  overflow-x: auto;
  border-bottom: 1px solid var(--lbn-border-soft);
  background: var(--lbn-bg-main);
  scrollbar-width: thin;
}
.lbn-admin-tab-content { padding-top: var(--lbn-space-6); }
.lbn-quota-dashboard { display: grid; gap: var(--lbn-space-5); }
.lbn-quota-alert { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid; border-radius: var(--lbn-radius-lg); }
.lbn-quota-alert--ok { border-color: color-mix(in srgb, var(--lbn-success) 45%, transparent); background: color-mix(in srgb, var(--lbn-success) 10%, var(--lbn-bg-panel)); }
.lbn-quota-alert--warning { border-color: #d79b20; background: color-mix(in srgb, #d79b20 14%, var(--lbn-bg-panel)); }
.lbn-quota-alert--critical { border-color: var(--lbn-danger); background: color-mix(in srgb, var(--lbn-danger) 14%, var(--lbn-bg-panel)); }
.lbn-quota-alert span { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); }
.lbn-quota-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--lbn-space-4); }
.lbn-quota-kpi { display: grid; align-content: start; gap: 5px; min-height: 118px; padding: 16px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-panel); }
.lbn-quota-kpi > span { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.lbn-quota-kpi > strong { color: var(--lbn-text-main); font-size: var(--lbn-text-xl); }
.lbn-quota-kpi > small { color: var(--lbn-text-muted); }
.lbn-quota-kpi--trend { min-width: 220px; }
.lbn-quota-table-wrap { border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-panel); }
.lbn-quota-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: var(--lbn-text-sm); }
.lbn-quota-table th, .lbn-quota-table td { padding: 11px 14px; border-bottom: 1px solid var(--lbn-border-soft); text-align: right; white-space: nowrap; }
.lbn-quota-table th:first-child, .lbn-quota-table td:first-child { text-align: left; }
.lbn-quota-table thead th { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); letter-spacing: .04em; text-transform: uppercase; }
.lbn-quota-table tbody tr:last-child th, .lbn-quota-table tbody tr:last-child td { border-bottom: 0; }
.lbn-quota-sparkline { width: 120px; min-height: 34px; margin-left: auto; color: var(--lbn-accent-gold); }
.lbn-quota-sparkline svg { display: block; width: 100%; height: 34px; overflow: visible; }
.lbn-quota-sparkline polyline { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.lbn-quota-sparkline__empty { display: inline-flex; align-items: center; min-height: 34px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-quota-footnote { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-access-list,
.lbn-admin-ranking-list { display: grid; gap: 10px; }
.lbn-admin-access-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lbn-space-4);
  flex-wrap: wrap;
  padding: 12px 0;
  border-top: 1px solid var(--lbn-border-soft);
}
.lbn-admin-access-row__title { color: var(--lbn-text-main); font-weight: 700; }
.lbn-admin-access-row__key { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-select {
  padding: 8px 10px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-main);
  color: var(--lbn-text-main);
  font: inherit;
  font-weight: 700;
}
.lbn-admin-overview {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-bottom: 36px;
}
.lbn-admin-overview__title {
  margin: 0 0 var(--lbn-space-2);
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-xl);
  font-weight: 700;
}
.lbn-admin-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.lbn-admin-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--lbn-space-4);
}
.lbn-admin-summary-card {
  padding: 18px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-lg);
  background: var(--lbn-bg-panel);
}
.lbn-admin-summary-card__title {
  margin: 0 0 12px;
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-sm);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.lbn-admin-empty-copy { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); }
.lbn-admin-ranking-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 70px;
  gap: 12px;
  align-items: center;
}
.lbn-admin-ranking-row__main { min-width: 0; }
.lbn-admin-ranking-row__label {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 5px;
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-sm);
}
.lbn-admin-wrap-anywhere { overflow-wrap: anywhere; }
.lbn-admin-progress {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: var(--lbn-radius-pill);
  background: var(--lbn-bg-main);
}
.lbn-admin-progress__value {
  display: block;
  height: 100%;
  background: var(--lbn-accent-blue);
}
.lbn-admin-ranking-row__percent {
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  text-align: right;
}

.lbn-admin-grid-row {
  display: grid;
  gap: 12px;
  align-items: center;
  min-width: var(--lbn-admin-grid-min, 720px);
  padding: 12px;
  border-bottom: 1px solid var(--lbn-border-soft);
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-xs);
}
.lbn-admin-grid-row--header {
  padding-block: 10px;
  background: var(--lbn-bg-panel-alt);
  color: var(--lbn-text-muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.lbn-admin-grid-row--jobs {
  --lbn-admin-grid-min: 920px;
  grid-template-columns: minmax(220px, 1.2fr) minmax(160px, 1fr) 90px 130px 130px 170px;
}
.lbn-admin-grid-row--backups {
  --lbn-admin-grid-min: 860px;
  grid-template-columns: minmax(180px, .8fr) minmax(280px, 1.4fr) 120px 230px;
}
.lbn-admin-grid-row--waitlist {
  --lbn-admin-grid-min: 900px;
  grid-template-columns: 2fr 2fr 80px 140px 180px 180px;
}
.lbn-admin-grid-row--announcements {
  --lbn-admin-grid-min: 620px;
  grid-template-columns: 1.4fr 1fr .7fr 1fr;
}
.lbn-admin-uppercase { text-transform: uppercase; }
.lbn-admin-subsection { margin-top: 36px; }
.lbn-admin-subsection__title { margin: 0 0 var(--lbn-space-4); color: var(--lbn-text-main); font-size: var(--lbn-text-lg); font-weight: 600; }
.lbn-admin-grid-row--striped:nth-child(odd) { background: var(--lbn-bg-main); }
.lbn-admin-grid-cell--min { min-width: 0; }
.lbn-admin-block { display: block; }
.lbn-admin-cell-detail { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lbn-admin-status { color: var(--lbn-text-muted); font-weight: 700; }
.lbn-admin-status--success { color: var(--lbn-accent-green); }
.lbn-admin-status--warning { color: var(--lbn-accent-gold); }
.lbn-admin-row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.lbn-admin-panel--separated { margin-top: var(--lbn-space-4); }
.lbn-admin-permission-grid {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) repeat(4, minmax(96px, .5fr));
  gap: 0;
  min-width: min(100%, 620px);
  overflow-x: auto;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-md);
}
.lbn-admin-permission-grid__header {
  padding: 9px 10px;
  border-bottom: 1px solid var(--lbn-border-soft);
  background: var(--lbn-bg-panel-alt);
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.lbn-admin-permission-grid__item {
  padding: 10px;
  border-top: 1px solid var(--lbn-border-soft);
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-sm);
}
.lbn-admin-permission-grid__check {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border-top: 1px solid var(--lbn-border-soft);
}
.lbn-admin-emphasis { font-weight: 700; }
.lbn-admin-inline-error {
  margin: 10px 0 0;
  color: var(--lbn-text-danger);
  font-size: var(--lbn-text-xs);
}
.lbn-admin-summary-panel {
  margin: 0 0 var(--lbn-space-4);
  padding: 14px 16px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-lg);
  background: var(--lbn-bg-panel);
}
.lbn-admin-mini-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.lbn-admin-mini-stat {
  padding: 10px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-main);
}
.lbn-admin-mini-stat__value { color: var(--lbn-text-main); font-size: var(--lbn-text-lg); font-weight: 700; }
.lbn-admin-mini-stat__label { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-favorites-grid {
  display: grid;
  grid-template-columns: 2fr 80px 80px 1fr;
  gap: 10px;
  align-items: center;
}
.lbn-admin-grid-label {
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  font-weight: 700;
  text-transform: uppercase;
}
.lbn-admin-grid-value { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lbn-admin-report {
  border: 0;
  border-bottom: 1px solid var(--lbn-border-soft);
  background: var(--lbn-bg-panel);
}
.lbn-admin-report:nth-child(even) { background: var(--lbn-bg-main); }
.lbn-admin-report__summary {
  display: grid;
  grid-template-columns: minmax(110px, .35fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  cursor: pointer;
}
.lbn-admin-report__game { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lbn-admin-report__excerpt {
  min-width: 0;
  overflow: hidden;
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lbn-admin-report__status { color: var(--lbn-accent-gold); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-report__status--done { color: var(--lbn-accent-green); }
.lbn-admin-report__body {
  display: grid;
  gap: 11px;
  padding: 14px 16px;
  border-top: 1px solid var(--lbn-border-soft);
}
.lbn-admin-report__meta,
.lbn-admin-report__tags { display: flex; gap: 14px; flex-wrap: wrap; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-report__tags { gap: 8px; }
.lbn-admin-report__description {
  margin: 0;
  color: var(--lbn-text-main);
  font-size: var(--lbn-text-sm);
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.lbn-admin-report__diagnostics,
.lbn-admin-report__reply {
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-panel-alt);
}
.lbn-admin-report__diagnostics summary { padding: 9px 11px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; cursor: pointer; }
.lbn-admin-report__diagnostics pre { margin: 0; padding: 0 11px 11px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); white-space: pre-wrap; overflow-wrap: anywhere; }
.lbn-admin-report__reply { display: grid; gap: 8px; padding: 11px; }
.lbn-admin-report__reply-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.lbn-admin-report__footer { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.lbn-admin-grid-row--forums {
  --lbn-admin-grid-min: 1050px;
  grid-template-columns: 1.15fr 1.5fr 110px 82px 90px 70px 70px 150px;
}
.lbn-admin-grid-row--games {
  --lbn-admin-grid-min: 1150px;
  grid-template-columns: 2fr 1fr 1fr 1fr 130px minmax(180px, 220px) 160px;
}
.lbn-admin-inline-control { display: flex; align-items: center; gap: 6px; min-width: 0; }
.lbn-admin-game-editor { padding: 20px 24px; border-bottom: 1px solid var(--lbn-border-soft); background: var(--lbn-bg-panel-alt); }
.lbn-admin-game-editor__dsl-note { margin-bottom: 20px; padding: 10px 14px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-game-editor__dsl-label { margin-right: 6px; font-weight: 600; }
.lbn-admin-game-editor__grid { display: grid; gap: 16px; margin-bottom: 16px; }
.lbn-admin-game-editor__grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lbn-admin-game-editor__grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lbn-admin-game-editor__grid--visibility { grid-template-columns: 1fr 3fr; }
.lbn-admin-game-editor__grid--flush { margin-bottom: 0; }
.lbn-admin-game-editor__section { margin-bottom: 16px; }
.lbn-admin-rules-preview { margin-top: 8px; padding: 12px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-rules-preview > .lbn-admin-grid-label { margin-bottom: 8px; }
.lbn-admin-upload-button { display: inline-flex; margin-top: 8px; }
.lbn-admin-button--beside { margin-left: 8px; }
.lbn-admin-version-history { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--lbn-border-soft); }
.lbn-admin-version-history > .lbn-admin-grid-label { margin-bottom: 6px; }
.lbn-admin-readonly-input { background: var(--lbn-bg-panel-alt); color: var(--lbn-text-muted); opacity: .6; cursor: default; }
.lbn-admin-game-editor__description { margin-bottom: 20px; }
.lbn-admin-grid-row--outbox {
  --lbn-admin-grid-min: 1100px;
  grid-template-columns: 1.15fr 1fr minmax(180px, 2fr) .75fr .8fr .55fr 1fr 90px;
}
.lbn-admin-grid-row--tables {
  --lbn-admin-grid-min: 960px;
  grid-template-columns: 1fr 90px 1fr 1fr 60px minmax(160px, 1.5fr) 110px;
}
.lbn-admin-pagination { display: flex; justify-content: flex-end; margin-top: 8px; }
.lbn-admin-cell--center { text-align: center; }
@media (max-width: 800px) {
  .lbn-admin-game-editor__grid--three,
  .lbn-admin-game-editor__grid--four,
  .lbn-admin-game-editor__grid--visibility { grid-template-columns: minmax(0, 1fr); }
}
.lbn-admin-check-label { display: flex; align-items: center; gap: 6px; color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lbn-admin-form-grid { display: grid; gap: 10px; }
.lbn-admin-form-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lbn-admin-form-grid--separated { margin-top: 10px; }
.lbn-admin-form-grid--schedule { grid-template-columns: 1fr 1fr auto; align-items: end; margin-top: 10px; }
.lbn-admin-form-grid--studio-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; margin-bottom: 12px; }
.lbn-admin-form-panel--spaced { margin-bottom: 14px; }
.lbn-admin-status-card { padding: 10px 12px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); }
.lbn-admin-status-card > .lbn-admin-grid-label { margin-bottom: 5px; letter-spacing: .08em; }
.lbn-admin-status-card__body { display: grid; gap: 4px; color: var(--lbn-text-main); font-size: var(--lbn-text-xs); }
.lbn-admin-grid-row--content { --lbn-admin-grid-min: 1080px; grid-template-columns: 1.6fr 1fr .8fr 1.4fr 1fr 230px; }
.lbn-admin-block-editor { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); }
.lbn-admin-block-editor--selected { border-color: var(--lbn-accent-blue); }
.lbn-admin-block-editor__header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.lbn-admin-block-editor__title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-admin-block-editor__workflow { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; padding: 9px 10px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-block-editor__badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; }
.lbn-admin-block-editor__schedule { margin-top: 4px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-block-editor__workflow-actions { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.lbn-button--success { border-color: var(--lbn-accent-green); background: var(--lbn-accent-green); color: var(--lbn-text-inverse); }
.lbn-admin-schema-card { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-schema-card__title { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-schema-card__description { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.4; }
.lbn-admin-schema-card__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 8px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.35; }
.lbn-admin-schema-card__facts strong { color: var(--lbn-text-main); }
.lbn-admin-block-fields { display: grid; gap: 8px; align-items: end; }
.lbn-admin-block-fields--compact { grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr)); }
.lbn-admin-block-fields--wide { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.lbn-admin-block-fields--medium { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.lbn-admin-block-nav-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 7px; align-items: center; padding: 7px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel-alt); color: var(--lbn-text-main); }
.lbn-admin-block-nav-row--selected { border-color: var(--lbn-accent-blue); }
.lbn-admin-block-nav-row__handle { color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); font-weight: 700; cursor: grab; line-height: 1; }
.lbn-admin-block-nav-row__link { display: block; min-width: 0; color: var(--lbn-text-main); text-decoration: none; }
.lbn-admin-block-nav-row__title { display: block; font-size: var(--lbn-text-xs); font-weight: 700; overflow-wrap: anywhere; line-height: var(--lbn-leading-heading); }
.lbn-admin-block-nav-row__meta { display: block; margin-top: 2px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-block-nav-row__actions { display: flex; gap: 3px; }
.lbn-admin-live-preview { min-height: 210px; padding: 14px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-panel-alt); }
.lbn-admin-live-preview__label { margin-bottom: 10px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.lbn-admin-live-preview__content { padding: 14px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-live-preview__content--hero { padding: 20px; border-color: var(--lbn-accent-gold); }
.lbn-admin-live-preview__content--callout { padding: 16px; border-color: var(--lbn-accent-blue); }
.lbn-admin-live-preview__content--compact { padding: 10px; }
.lbn-admin-live-preview__content--split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 14px; border-color: var(--lbn-accent-green); }
.lbn-admin-live-preview__content h3 { margin: 0 0 8px; color: var(--lbn-text-main); font-size: var(--lbn-text-lg); line-height: 1.08; font-weight: 700; }
.lbn-admin-live-preview__content--hero h3 { font-size: 28px; }
.lbn-admin-live-preview__content--callout h3 { font-size: 19px; }
.lbn-admin-live-preview__content--compact h3 { font-size: var(--lbn-text-sm); }
.lbn-admin-live-preview__content p { margin: 0; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); line-height: 1.5; white-space: pre-line; }
.game-rules-hero { padding: var(--lbn-space-6); background: linear-gradient(135deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .55)); }
.game-rules-hero--colonial { padding: clamp(28px, 5vw, 58px) var(--lbn-space-6); border-bottom: 1px solid rgba(214, 177, 104, .24); background: linear-gradient(90deg, rgba(7, 15, 24, .94) 0%, rgba(7, 15, 24, .72) 48%, rgba(7, 15, 24, .28) 100%), url('/assets/colonial-diplomacy/hero_large.webp') center 44% / cover no-repeat; }
.lbn-admin-fieldset { min-width: 0; margin: 0; padding: 8px 10px; border: 1px solid var(--lbn-border-soft); border-radius: var(--lbn-radius-md); }
.lbn-admin-fieldset__legend { padding: 0 4px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; }
.lbn-admin-checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 6px 10px; max-height: 150px; overflow-y: auto; }
.lbn-admin-control--separated { margin-top: 10px; }
.lbn-admin-target-preview { margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--lbn-border-soft); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-panel); }
.lbn-admin-target-preview__body { color: var(--lbn-text-main); font-size: var(--lbn-text-xs); line-height: 1.4; }
.lbn-admin-panel-hint--separated { margin-top: 8px; }
.lbn-admin-form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.lbn-admin-list-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.lbn-admin-filter--narrow { width: 220px; }

@media (max-width: 680px) {
  .lbn-admin-form-grid--two,
  .lbn-admin-form-grid--schedule { grid-template-columns: minmax(0, 1fr); }
}
.lbn-admin-log-count { margin: 0 0 10px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-table-scroll { overflow-x: auto; }
.lbn-admin-log-table { width: 100%; border-collapse: collapse; font-size: var(--lbn-text-xs); }
.lbn-admin-log-table th { padding: 6px 10px; border-bottom: 2px solid var(--lbn-border-soft); color: var(--lbn-text-muted); text-align: left; }
.lbn-admin-log-table__time { white-space: nowrap; }
.lbn-admin-log-table__message { min-width: 300px; }
.lbn-admin-log-table tbody tr:nth-child(odd) { background: var(--lbn-bg-main); }
.lbn-admin-log-table tbody tr:nth-child(even) { background: var(--lbn-bg-panel); }
.lbn-admin-log-table td { padding: 5px 10px; border-bottom: 1px solid var(--lbn-border-soft); }
.lbn-admin-log-table__timestamp { color: var(--lbn-text-muted); white-space: nowrap; font-family: var(--lbn-font-mono); }
.lbn-admin-log-table__level { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 600; text-transform: uppercase; }
.lbn-admin-log-table__level--error { color: var(--lbn-accent-red); }
.lbn-admin-log-table__level--warning { color: var(--lbn-accent-gold); }
.lbn-admin-log-table__muted { color: var(--lbn-text-muted); }
.lbn-admin-log-table__body { color: var(--lbn-text-main); word-break: break-word; }
.lbn-admin-log-table__detail { max-width: 300px; color: var(--lbn-text-muted); word-break: break-word; }
.lbn-admin-query-error {
  margin-top: 14px;
  padding: 10px 14px;
  border: 1px solid var(--lbn-accent-red);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-panel-alt);
  color: var(--lbn-text-danger);
  font-family: var(--lbn-font-mono);
  font-size: var(--lbn-text-xs);
}
.lbn-admin-query-empty { margin-top: 14px; color: var(--lbn-text-muted); font-size: var(--lbn-text-sm); }
.lbn-admin-query-results { margin-top: 14px; overflow-x: auto; }
.lbn-admin-query-count { margin-bottom: 6px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-query-table { width: 100%; border-collapse: collapse; background: var(--lbn-bg-main); font-family: var(--lbn-font-mono); font-size: var(--lbn-text-xs); }
.lbn-admin-query-table th { padding: 6px 10px; border-bottom: 2px solid var(--lbn-border-soft); color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); text-align: left; text-transform: uppercase; letter-spacing: .4px; }
.lbn-admin-query-table tbody tr:nth-child(even) { background: var(--lbn-bg-panel); }
.lbn-admin-query-table td { max-width: 400px; overflow: hidden; padding: 5px 10px; border-bottom: 1px solid var(--lbn-border-soft); color: var(--lbn-text-main); text-overflow: ellipsis; white-space: pre-wrap; }
.lbn-admin-provider-list { display: grid; gap: 10px; }
.lbn-admin-provider-row {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(220px, 1.6fr) minmax(220px, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--lbn-border-soft);
}
.lbn-admin-provider-row__title { color: var(--lbn-text-main); font-size: var(--lbn-text-sm); font-weight: 700; }
.lbn-admin-provider-row__key { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); text-transform: uppercase; letter-spacing: .08em; }
.lbn-admin-provider-row__purpose { color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); line-height: 1.45; }
.lbn-admin-outline-badge {
  padding: 4px 8px;
  border: 1px solid var(--lbn-border-soft);
  border-radius: var(--lbn-radius-pill);
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  font-weight: 700;
}
.lbn-admin-outline-badge--success { color: var(--lbn-accent-green); }
.lbn-admin-outline-badge--info { color: var(--lbn-accent-blue); }
.lbn-admin-user-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--lbn-border-soft);
  background: var(--lbn-bg-panel);
  font-size: var(--lbn-text-sm);
}
.lbn-admin-user-row:nth-child(even) { background: var(--lbn-bg-main); }
.lbn-admin-user-row__identity { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(210px, 1.35fr) minmax(110px, .65fr); gap: 14px; align-items: center; }
.lbn-admin-field-label { display: block; margin-bottom: 3px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.lbn-admin-field-label--control { display: grid; gap: 4px; margin: 0; }
.lbn-admin-user-link { color: var(--lbn-text-main); text-decoration: none; }
.lbn-admin-user-link:hover { text-decoration: underline; }
.lbn-admin-user-row__detail { display: block; margin-top: 2px; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); overflow-wrap: anywhere; }
.lbn-admin-user-row__guest { margin-top: 5px; }
.lbn-admin-user-row__account { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0; border-block: 1px solid var(--lbn-border-soft); }
.lbn-admin-user-row__account > .lbn-admin-field-label { margin: 0 2px 0 0; }
.lbn-admin-user-row__last-seen { margin-left: auto; color: var(--lbn-text-muted); font-size: var(--lbn-text-xs); }
.lbn-admin-user-row__controls { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(150px, .9fr) minmax(110px, .65fr); gap: 12px; align-items: end; }
.lbn-input--compact,
.lbn-select--compact { width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: var(--lbn-text-xs); }

@media (max-width: 900px) {
  .lbn-admin-user-row__identity,
  .lbn-admin-user-row__controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .lbn-admin-user-row__identity,
  .lbn-admin-user-row__controls { grid-template-columns: minmax(0, 1fr); }
  .lbn-admin-user-row__last-seen { width: 100%; margin-left: 0; }
}

@media (max-width: 860px) {
  .lbn-admin-provider-row { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .lbn-admin-mini-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* Canonical Markdown content rules. */

.lbn-md, .lbn-markdown { color: var(--lbn-text-main); font-family: var(--lbn-font-ui); line-height: var(--lbn-leading-reading); font-size: var(--lbn-text-md); word-break: break-word; }

/* Headings */
.lbn-md h1, .lbn-md h2, .lbn-md h3,
.lbn-md h4, .lbn-md h5, .lbn-md h6,
.lbn-markdown h1, .lbn-markdown h2, .lbn-markdown h3,
.lbn-markdown h4, .lbn-markdown h5, .lbn-markdown h6 {
  color: var(--lbn-text-main);
  font-weight: var(--lbn-weight-bold);
  line-height: var(--lbn-leading-heading);
  margin: 1em 0 0.4em 0;
}
.lbn-md h1 { font-family: var(--lbn-font-display); font-size: var(--lbn-text-2xl); border-bottom: 1px solid var(--lbn-border-soft); padding-bottom: 0.25em; }
.lbn-md h2 { font-family: var(--lbn-font-display); font-size: var(--lbn-text-xl); border-bottom: 1px solid var(--lbn-border-soft); padding-bottom: 0.2em; }
.lbn-md h3 { font-size: var(--lbn-text-lg); }
.lbn-md h4, .lbn-md h5, .lbn-md h6 { font-size: var(--lbn-text-md); }

/* Paragraphs & spacing */
.lbn-md p, .lbn-markdown p { margin: 0 0 0.9em 0; }
.lbn-md p:last-child { margin-bottom: 0; }

/* Links */
.lbn-md a { color: var(--lbn-accent-blue); text-decoration: none; }
.lbn-md a:hover { text-decoration: underline; }

/* Emphasis */
.lbn-md strong { font-weight: 700; color: var(--lbn-text-main); }
.lbn-md em { font-style: italic; }
.lbn-md del { text-decoration: line-through; color: var(--lbn-text-muted); }

/* Inline code */
.lbn-md code {
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.875em;
  background: var(--lbn-bg-panel-alt);
  color: var(--lbn-accent-red);
  border: 1px solid var(--lbn-border-soft);
  border-radius: 4px;
  padding: 0.1em 0.4em;
}

/* Code blocks */
.lbn-md pre {
  background: var(--lbn-bg-panel-alt);
  border: 1px solid var(--lbn-border-soft);
  border-radius: 6px;
  padding: 14px 16px;
  overflow-x: auto;
  margin: 0.75em 0;
}
.lbn-md pre code {
  background: none;
  border: none;
  padding: 0;
  font-size: 0.875em;
  color: var(--lbn-text-main);
}

/* Blockquote */
.lbn-md blockquote {
  margin: 0.75em 0;
  padding: 8px 16px;
  border-left: 3px solid var(--lbn-accent-gold);
  background: var(--lbn-bg-panel-alt);
  border-radius: 0 6px 6px 0;
  color: var(--lbn-text-muted);
}
.lbn-md blockquote p { margin: 0; }

/* Lists */
.lbn-md ul, .lbn-md ol, .lbn-markdown ul, .lbn-markdown ol {
  margin: 0.5em 0 0.75em 0;
  padding-inline-start: 1.5em;
  list-style-position: outside;
}
.lbn-md li, .lbn-markdown li { margin: 0.28em 0; padding-inline-start: 0.2em; }
.lbn-md ul { list-style-type: disc; }
.lbn-md ol { list-style-type: decimal; }

/* Task list */
.lbn-md li input[type="checkbox"] {
  margin-right: 6px;
  accent-color: var(--lbn-accent-blue);
}

/* Tables */
.lbn-md table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75em 0;
  font-size: var(--lbn-text-sm);
}
.lbn-md thead tr {
  background: var(--lbn-bg-panel-alt);
}
.lbn-md th {
  text-align: left;
  font-weight: 700;
  color: var(--lbn-text-muted);
  font-size: var(--lbn-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 7px 12px;
  border: 1px solid var(--lbn-border-soft);
}
.lbn-md td {
  padding: 7px 12px;
  border: 1px solid var(--lbn-border-soft);
  color: var(--lbn-text-main);
  vertical-align: top;
}
.lbn-md tbody tr:nth-child(even) {
  background: var(--lbn-bg-panel-alt);
}

/* Horizontal rule */
.lbn-md hr {
  border: none;
  border-top: 1px solid var(--lbn-border-soft);
  margin: 1.25em 0;
}

/* Images */
.lbn-md img {
  max-width: 100%;
  border-radius: 6px;
  border: 1px solid var(--lbn-border-soft);
}


/* Canonical application responsive rules. */

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--lbn-accent-warm) !important;
  outline-offset: 2px !important;
}

.lbn-section-title::after,
.lbn-page-header-title::after,
.game-section-title::after,
.preview-panel-title::after {
  content: "";
  display: block;
  width: 34px;
  height: 3px;
  margin-top: 8px;
  border-radius: 2px;
  background: var(--lbn-accent-warm);
}

.lbn-empty-state {
  position: relative;
}

.lbn-empty-state::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 999px;
  background: var(--lbn-accent-warm);
  vertical-align: 0.1em;
}

.lbn-newest-news {
  border-left: 3px solid var(--lbn-accent-warm) !important;
  padding-left: 16px;
}

.lbn-newest-news time,
.lbn-newest-news > div:first-child {
  color: var(--lbn-accent-warm) !important;
}

.match-player-status__turn {
  border-left: 3px solid var(--lbn-accent-warm) !important;
  background: var(--lbn-accent-warm-muted) !important;
}

.match-player-status__turn small,
.match-player-status__turn strong {
  color: var(--lbn-attention) !important;
}

.lbn-warm-divider {
  position: relative;
}

.lbn-warm-divider::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 42px;
  height: 2px;
  background: var(--lbn-accent-warm);
}

.lbn-attention-row {
  border-color: color-mix(in srgb, var(--lbn-accent-warm) 72%, var(--lbn-border-soft)) !important;
  box-shadow: inset 3px 0 0 var(--lbn-accent-warm);
}

.lbn-attention-label,
.lbn-draft-label {
  color: var(--lbn-attention) !important;
}

.lbn-unsaved-indicator::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 6px;
  border-radius: 999px;
  background: var(--lbn-attention);
}

.lbn-page-frame button:not(:disabled):hover,
.lbn-page-frame a[style*="border:1px"]:hover,
.lbn-page-frame a[style*="border: 1px"]:hover {
  border-color: var(--lbn-accent-warm) !important;
}

.lbn-sidebar-nav-item:hover {
  color: var(--lbn-text-inverse) !important;
  background: var(--lbn-accent-warm-muted) !important;
}

.lbn-overlay-notifications {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 4500;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  pointer-events: none;
}

.lbn-overlay-notification {
  position: relative;
  width: 46px;
  height: 46px;
  box-sizing: border-box;
  border: 1px solid var(--lbn-border-soft);
  border-radius: 999px;
  background: var(--lbn-bg-panel);
  color: var(--lbn-text-main);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.24);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  pointer-events: auto;
}

.lbn-overlay-notification:hover {
  border-color: var(--lbn-accent-warm);
  color: var(--lbn-accent-warm);
}

.lbn-overlay-notification:focus-visible {
  outline: 2px solid var(--lbn-accent-warm);
  outline-offset: 2px;
}

.lbn-overlay-notification svg {
  width: 21px;
  height: 21px;
  display: block;
}

.lbn-overlay-notification-count {
  position: absolute;
  right: -4px;
  top: -5px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--lbn-attention);
  color: var(--lbn-on-warm);
  font-size:var(--lbn-text-xs);
  font-weight: 700;
  line-height: 17px;
  text-align: center;
}

.lbn-app-shell,
.lbn-shell-main,
.lbn-sidebar,
.lbn-mobile-topbar,
.lbn-mobile-menu-backdrop,
.lbn-sidebar * {
  box-sizing: border-box;
}

.lbn-mobile-topbar,
.lbn-mobile-menu-backdrop {
  display: none;
}

.lbn-shell-main {
  min-width: 0;
}

.lbn-shell-layout {
  background: var(--lbn-bg-sidebar);
}

.lbn-shell-main img,
.lbn-shell-main svg,
.lbn-shell-main canvas,
.lbn-shell-main video {
  max-width: 100%;
}

.lbn-shell-main input,
.lbn-shell-main select,
.lbn-shell-main textarea,
.lbn-shell-main button {
  max-width: 100%;
}

.lbn-shell-main [style*="overflow-x:auto"],
.lbn-shell-main [style*="overflow-x: auto"] {
  -webkit-overflow-scrolling: touch;
}

/* Stable responsive layout contracts. Components should opt into these
   classes instead of relying on serialized inline-style substring matching. */
.lbn-responsive-content,
.lbn-responsive-two-column,
.lbn-about-notice-list,
.lbn-about-notice-row,
.lbn-profile-layout,
.lbn-profile-layout > *,
.lbn-crm-preview-layout,
.lbn-crm-preview-layout > * {
  min-width: 0;
  max-width: 100%;
}

.lbn-responsive-content {
  width: 100%;
}

.lexiturn-standalone-shell {
  min-height: 100dvh;
  background: var(--lbn-bg-main);
  display: flex;
  flex-direction: column;
}

.lexiturn-standalone-brand {
  height: 38px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  border-bottom: 1px solid var(--lbn-border-soft);
  background: var(--lbn-bg-panel);
}

.lexiturn-standalone-brand a {
  color: var(--lbn-text-main);
  font-size:var(--lbn-text-sm);
  font-weight: 700;
  letter-spacing: .14em;
  text-decoration: none;
}

.lexiturn-standalone-page {
  flex: 1;
  min-width: 0;
}

.lexiturn-standalone-credit {
  padding: 9px 12px;
  text-align: center;
  color: var(--lbn-text-muted);
  font-size:var(--lbn-text-xs);
}

.lexiturn-standalone-credit a {
  color: inherit;
}

.lexiturn-standalone-page .lbn-page-frame {
  padding-top: 10px;
}

.lexiturn-standalone-page .lbn-page-header {
  margin-bottom: 10px;
}

.lbn-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: 18px;
  align-items: start;
}

.lbn-crm-preview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: 12px;
  margin-bottom: 12px;
}

.lbn-about-notice-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.9fr) minmax(180px, 1.5fr) minmax(120px, 0.9fr);
  gap: 10px;
  align-items: start;
}

.lbn-page-frame,
.lbn-page-frame *,
.preview-studio-page,
.preview-studio-page *,
.forums-page-layout,
.forums-page-layout *,
.my-stats-layout,
.my-stats-layout * {
  box-sizing: border-box;
}

.lbn-shell-content {
  flex: 1 0 auto;
  min-width: 0;
}

.lbn-page-frame {
  width: 100%;
  max-width: var(--lbn-content-max);
  margin: 0 auto;
  padding: var(--lbn-space-6) var(--lbn-space-6) var(--lbn-space-8);
  min-width: 0;
}

.lbn-page-header {
  margin: 0 0 var(--lbn-space-4) 0;
}

.lbn-page-header-kicker {
  color: var(--lbn-accent-gold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: var(--lbn-font-ui);
  font-weight: var(--lbn-weight-semibold);
  font-size: var(--lbn-text-xs);
  margin: 0 0 var(--lbn-space-1) 0;
}

.lbn-page-header-title {
  margin: var(--lbn-space-1) 0 var(--lbn-space-2);
  color: var(--lbn-text-main);
  font-family: var(--lbn-font-display);
  font-size: var(--lbn-text-2xl);
  line-height: var(--lbn-leading-tight);
  font-weight: var(--lbn-weight-bold);
  letter-spacing: 0;
}

.lbn-page-header-subtitle {
  margin: 0;
  color: var(--lbn-text-muted);
  max-width: 70ch;
  font-size: var(--lbn-text-md);
  line-height: var(--lbn-leading-body);
  overflow-wrap: anywhere;
}

.preview-studio-page {
  width: 100%;
  min-width: 0;
  overflow-x: hidden;
}
.preview-studio-page > .lbn-page-header { margin-bottom: var(--lbn-space-2); }

.preview-header-actions,
.preview-studio-grid,
.preview-panel,
.preview-panel-title-row,
.preview-editor,
.preview-editor-panel .CodeMirror,
.my-stats-layout,
.forums-page-layout,
.forums-list-card,
.forums-list-row,
.forums-list-row > * {
  min-width: 0;
  max-width: 100%;
}

.forums-page-layout {
  overflow-anchor: none;
}

.forums-list-card {
  contain: layout paint;
}

.preview-header-actions {
  flex-wrap: wrap;
}

.preview-header-actions select,
.preview-editor,
.preview-editor-panel .CodeMirror {
  max-width: 100%;
}

.preview-status-card p,
.preview-list,
.forums-page-layout a,
.forums-page-layout p,
.forums-page-layout div,
.forums-page-layout span,
.forums-post-card {
  overflow-wrap: anywhere;
}

.preview-studio-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.78fr) !important;
}

.preview-studio-grid-expanded {
  grid-template-columns: minmax(0, min(900px, 100%)) !important;
}

.preview-studio-grid-editor-expanded {
  grid-template-columns: minmax(0, min(1120px, 100%)) !important;
}

.game-maker-workspace-nav { display: flex; gap: var(--lbn-space-1); margin-bottom: var(--lbn-space-2); padding: var(--lbn-space-1); border: 1px solid var(--lbn-border); border-radius: var(--lbn-radius-md); background: var(--lbn-surface-1); }
.game-maker-workspace-nav button { display: flex; align-items: center; gap: var(--lbn-space-2); min-width: 0; padding: 5px var(--lbn-space-3); border: 1px solid transparent; border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-text-muted); text-align: left; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.game-maker-workspace-nav button:hover { border-color: var(--lbn-border); background: var(--lbn-surface-2); color: var(--lbn-text-main); }
.game-maker-workspace-nav button.active { border-color: color-mix(in srgb, var(--lbn-accent) 58%, var(--lbn-border)); background: color-mix(in srgb, var(--lbn-accent) 10%, var(--lbn-surface-2)); color: var(--lbn-text-main); }
.game-maker-workspace-nav button:focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: var(--lbn-focus-offset); }
.game-maker-workspace-nav button > span:last-child { display: flex; align-items: baseline; gap: var(--lbn-space-2); }
.game-maker-workspace-nav strong { font-size: var(--lbn-text-sm); }
.game-maker-workspace-nav small { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-regular); }
.game-maker-workspace-icon { display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 auto; border-radius: var(--lbn-radius-sm); background: var(--lbn-surface-3); color: var(--lbn-accent); font-size: var(--lbn-text-sm); }
.game-maker-context-bar { display: flex; align-items: center; gap: var(--lbn-space-3); margin-bottom: var(--lbn-space-4); padding: var(--lbn-space-3) var(--lbn-space-4); border: 1px solid var(--lbn-border); border-radius: var(--lbn-radius-lg); background: var(--lbn-surface-1); }
.game-maker-context-bar .preview-header-actions { justify-content: flex-start; }
.dip-map-editor {
  --dip-editor-water: #789cac;
  --dip-editor-selection: #f6d36c;
  --dip-editor-node: #fff4b8;
  --dip-editor-node-active: #f2b83f;
  --dip-editor-ink: #18242d;
  --dip-editor-ink-strong: #0d1921;
  --dip-editor-center: #f1ead5;
  --dip-editor-center-stroke: #20272b;
  --dip-editor-adjacency-both: #69d391;
  --dip-editor-adjacency-army: #f2b84b;
  --dip-editor-adjacency-fleet: #58bfe8;
  --dip-editor-label-outline: rgba(12, 17, 23, .8);
  margin: 0;
  border: 1px solid var(--lbn-border-default);
  border-radius: var(--lbn-radius-lg);
  background: var(--lbn-bg-surface);
  overflow: hidden;
}
.dip-project-manager { min-height: 620px; padding: var(--lbn-space-7); background: var(--lbn-bg-surface); }
.dip-project-manager > header { display: flex; align-items: end; justify-content: space-between; gap: var(--lbn-space-5); padding-bottom: var(--lbn-space-5); border-bottom: 1px solid var(--lbn-border-default); }
.dip-project-manager > header h2, .dip-project-manager > header p { margin: 0; }
.dip-project-manager > header p:last-child { margin-top: var(--lbn-space-2); color: var(--lbn-text-secondary); }
.dip-project-manager > header > div:last-child { display: flex; gap: var(--lbn-space-2); }
.dip-project-manager-error, .dip-project-manager-state { margin-top: var(--lbn-space-4); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-project-manager-error, .dip-project-manager-state.error { border-color: var(--lbn-danger); color: var(--lbn-danger); }
.dip-project-browser-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--lbn-space-4); margin-top: var(--lbn-space-6); }
.dip-project-browser-heading h3 { margin: 0; }
.dip-project-browser-heading span { color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-project-browser-heading > div:first-child { display: grid; gap: var(--lbn-space-1); }
.dip-project-browser-tools { display: flex; align-items: end; gap: var(--lbn-space-2); }
.dip-project-browser-tools label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); }
.dip-project-browser-tools input, .dip-project-browser-tools select { min-height: var(--lbn-control-height-md); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2) var(--lbn-space-3); }
.dip-project-card-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: var(--lbn-space-4); margin-top: var(--lbn-space-3); }
.dip-project-card { overflow: hidden; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-lg); background: var(--lbn-bg-surface-raised); transition: border-color var(--lbn-duration-fast) var(--lbn-ease-standard), transform var(--lbn-duration-fast) var(--lbn-ease-standard); }
.dip-project-card:hover { border-color: var(--lbn-attention-color); transform: translateY(-2px); }
.dip-project-card-open { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: var(--lbn-text-primary); text-align: left; }
.dip-project-card-preview { display: flex; align-items: center; justify-content: space-between; min-height: 96px; padding: var(--lbn-space-4); background: linear-gradient(135deg,var(--dip-editor-water),var(--lbn-workspace-surface-raised)); color: var(--lbn-text-inverse); }
.dip-project-card-preview > span { font-size: 42px; opacity: .75; }
.dip-project-card-preview small { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: var(--lbn-space-1) var(--lbn-space-2); border-radius: var(--lbn-radius-pill); background: color-mix(in srgb, var(--lbn-workspace-surface) 70%, transparent); }
.dip-project-card-copy { padding: var(--lbn-space-4); }
.dip-project-card-copy h3, .dip-project-card-copy p { margin: 0; }
.dip-project-card-copy h3 { overflow-wrap: anywhere; }
.dip-project-card-copy p, .dip-project-card-copy time { display: block; margin-top: var(--lbn-space-2); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-project-card-actions { display: flex; justify-content: flex-end; padding: 0 var(--lbn-space-3) var(--lbn-space-3); }
.dip-project-empty { display: grid; justify-items: center; max-width: 520px; margin: var(--lbn-space-8) auto; padding: var(--lbn-space-7); text-align: center; border: 1px dashed var(--lbn-border-default); border-radius: var(--lbn-radius-lg); }
.dip-project-empty > span { color: var(--lbn-attention-color); font-size: var(--lbn-text-3xl); }
.dip-project-empty h3, .dip-project-empty p { margin: 0; }
.dip-project-empty p { margin: var(--lbn-space-2) 0 var(--lbn-space-4); color: var(--lbn-text-secondary); }
.dip-project-empty--compact { margin-block: var(--lbn-space-5); padding: var(--lbn-space-5); }
.dip-map-editor-header, .dip-map-sidebar-title, .dip-map-output-title { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); }
.dip-map-editor-header { padding: var(--lbn-space-3) var(--lbn-space-4); border-bottom: 1px solid var(--lbn-border-default); }
.dip-map-editor-header h2, .dip-map-editor-header p, .dip-map-sidebar h3, .dip-map-inspector h3, .dip-map-output-grid h3 { margin: 0; }
.dip-map-editor-header > div:first-child { display: grid; gap: 4px; }
.dip-map-editor-header > div:first-child > p:last-child { color: var(--lbn-text-secondary); }
.dip-map-editor-header--compact { min-height: var(--lbn-touch-target); padding-block: var(--lbn-space-2); }
.dip-map-document-identity { display: flex !important; align-items: center; gap: var(--lbn-space-2) !important; min-width: 0; flex-wrap: wrap; }
.dip-map-document-identity h2 { margin-right: var(--lbn-space-1); font-size: var(--lbn-text-md); white-space: nowrap; }
.dip-map-document-identity strong { max-width: 18rem; overflow: hidden; color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.dip-map-document-identity code { color: var(--lbn-text-tertiary); font: var(--lbn-weight-medium) var(--lbn-text-xs)/1.35 var(--lbn-font-ui); }
.dip-map-document-fact { color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); white-space: nowrap; }
.dip-map-editor-actions { display: flex; gap: var(--lbn-space-1); flex: 0 0 auto; flex-wrap: nowrap; }
.dip-map-document-strip { display: flex; align-items: center; justify-content: space-between; gap: var(--lbn-space-3); min-height: var(--lbn-touch-target); padding: var(--lbn-space-2) var(--lbn-space-6); border-bottom: 1px solid var(--lbn-border-default); background: var(--lbn-bg-surface-raised); }
.dip-map-document-strip > div { display: flex; align-items: center; gap: var(--lbn-space-2); min-width: 0; }
.dip-map-document-strip strong { overflow: hidden; color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.dip-map-document-strip code, .dip-map-document-facts span { padding: 3px 7px; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-inset); color: var(--lbn-text-secondary); font: var(--lbn-weight-medium) var(--lbn-text-xs)/1.35 var(--lbn-font-ui); }
.dip-map-document-facts { justify-content: flex-end; flex-wrap: wrap; }
.dip-map-form label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-form input, .dip-map-form select, .dip-map-output-grid textarea, .dip-map-groups > input { border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-tabs { display: flex; gap: var(--lbn-space-1); padding: var(--lbn-space-1) var(--lbn-space-4) 0; overflow-x: auto; scrollbar-width: thin; background: var(--lbn-bg-surface-raised); border-bottom: 1px solid var(--lbn-border-default); }
.lbn-tab { min-width: max-content; min-height: var(--lbn-touch-target); padding: var(--lbn-space-2) var(--lbn-space-3); border: 1px solid transparent; border-bottom: 0; border-radius: var(--lbn-radius-sm) var(--lbn-radius-sm) 0 0; background: transparent; color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); white-space: nowrap; }
.lbn-tab:hover { color: var(--lbn-text-primary); background: color-mix(in srgb, var(--lbn-text-primary) 8%, transparent); }
.lbn-tab.is-active { border-color: var(--lbn-border-default); background: var(--lbn-bg-surface); color: var(--lbn-text-primary); }
.lbn-tab:focus-visible { position: relative; z-index: 1; outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: calc(-1 * var(--lbn-focus-offset)); }
.dip-map-editor-grid { display: grid; grid-template-columns: 220px minmax(420px, 1fr); min-height: 640px; background: var(--lbn-bg-surface); }
.dip-map-editor-grid--wide { grid-template-columns: minmax(0, 1fr); min-height: 640px; }
.dip-map-tab-hidden { display: none !important; }
.dip-editor-panel { box-sizing: border-box; min-width: 0; min-height: 640px; padding: var(--lbn-space-6); background: var(--lbn-bg-surface); color: var(--lbn-text-primary); }
.dip-editor-panel-header { display: flex; align-items: end; justify-content: space-between; gap: var(--lbn-space-5); padding-bottom: var(--lbn-space-5); border-bottom: 1px solid var(--lbn-border-default); }
.dip-editor-panel-header > div:first-child { display: grid; gap: var(--lbn-space-1); min-width: 0; }
.dip-editor-panel-header h2, .dip-editor-panel-header h3, .dip-editor-panel-header p { margin: 0; }
.dip-editor-panel-header h2, .dip-editor-panel-header h3 { color: var(--lbn-text-primary); }
.dip-editor-panel-header > div:first-child > p:last-child { max-width: 760px; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.dip-map-sidebar, .dip-map-inspector { padding: var(--lbn-space-4); background: var(--lbn-bg-surface-raised); }
.dip-map-sidebar { border-right: 1px solid var(--lbn-border-default); }
.dip-map-inspector { overflow: auto; }
.dip-power-editor { overflow: auto; }
.dip-power-province-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--lbn-space-4); }
.dip-power-editor h3, .dip-power-editor p { margin: 0; }
.dip-power-editor .dip-power-province-heading p { margin-top: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-power-add { display: flex; align-items: center; gap: var(--lbn-space-2); }
.dip-power-add input, .lbn-data-grid input, .lbn-data-grid select { min-width: 0; box-sizing: border-box; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); min-height: var(--lbn-control-md); padding: var(--lbn-space-2); }
.dip-power-add input[type="color"], .dip-power-definition-grid input[type="color"] { width: 42px; min-height: 36px; padding: 2px; }
.lbn-data-grid { margin-top: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); overflow: auto; background: var(--lbn-bg-surface); }
.lbn-data-grid:focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: var(--lbn-focus-offset); }
.lbn-data-grid__header, .lbn-data-grid__row { display: grid; gap: var(--lbn-space-2); align-items: center; min-width: 47.5rem; padding: var(--lbn-space-2) var(--lbn-space-3); }
.lbn-data-grid__header { position: sticky; top: 0; z-index: 1; background: var(--lbn-bg-surface-raised); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); letter-spacing: .04em; text-transform: uppercase; }
.lbn-data-grid__row { min-height: var(--lbn-touch-target); border-top: 1px solid var(--lbn-border-default); background: var(--lbn-bg-surface); color: var(--lbn-text-primary); font-size: var(--lbn-text-sm); }
.lbn-data-grid__row:hover { background: color-mix(in srgb, var(--lbn-attention-color) 8%, var(--lbn-bg-surface)); }
.lbn-data-grid__row:focus-within { background: color-mix(in srgb, var(--lbn-attention-color) 12%, var(--lbn-bg-surface)); box-shadow: inset var(--lbn-focus-width) 0 var(--lbn-attention-color); }
.lbn-data-grid__cell { min-width: 0; }
.lbn-data-grid__cell > :is(input, select, button) { width: 100%; }
.lbn-data-grid__empty { border-top: 1px solid var(--lbn-border-default); background: var(--lbn-bg-surface); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); padding: var(--lbn-space-5); text-align: center; }
.dip-power-definition-grid .lbn-data-grid__header, .dip-power-definition-grid .lbn-data-grid__row { grid-template-columns: 3rem minmax(6.875rem,.8fr) minmax(9.375rem,1.2fr) 5.625rem 5.625rem 5rem; }
.dip-province-power-grid .lbn-data-grid__header, .dip-province-power-grid .lbn-data-grid__row { grid-template-columns: minmax(11.25rem,1.4fr) repeat(4,minmax(8.125rem,1fr)); }
.dip-power-province-heading { margin-top: var(--lbn-space-7); }
.dip-power-province-link { border: 0; background: transparent; color: var(--lbn-action); text-align: left; font-weight: var(--lbn-weight-bold); overflow-wrap: anywhere; }
.dip-project-editor h3, .dip-project-editor p { margin: 0; }
.dip-project-grid { display: grid; grid-template-columns: repeat(2,minmax(180px,1fr)); gap: var(--lbn-space-4); max-width: 820px; margin-top: var(--lbn-space-6); }
.dip-project-grid label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-project-grid input { min-width: 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2) var(--lbn-space-3); }
.dip-project-grid small { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-regular); line-height: var(--lbn-leading-body); }
.dip-project-summary { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); margin-top: var(--lbn-space-7); padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-project-summary strong { flex-basis: 100%; }
.dip-project-summary span { padding: 5px 9px; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-inset); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-shortcut-reference { margin-top: var(--lbn-space-5); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-shortcut-reference summary { min-height: var(--lbn-touch-target); padding: var(--lbn-space-3) var(--lbn-space-4); color: var(--lbn-text-primary); font-weight: var(--lbn-weight-semibold); cursor: pointer; }
.dip-shortcut-reference > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--lbn-space-4); padding: 0 var(--lbn-space-4) var(--lbn-space-4); }
.dip-shortcut-reference dl { display: grid; grid-template-columns: max-content minmax(0,1fr); align-content: start; gap: var(--lbn-space-2); margin: 0; }
.dip-shortcut-reference dt, .dip-shortcut-reference dd { margin: 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-shortcut-reference kbd { padding: 2px 5px; border: 1px solid var(--lbn-border-strong); border-bottom-width: 2px; border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); font: var(--lbn-weight-semibold) var(--lbn-text-xs)/1 var(--lbn-font-ui); }
.dip-layer-editor h3, .dip-layer-editor p { margin: 0; }
.dip-layer-add { display: flex; align-items: center; gap: var(--lbn-space-2); }
.dip-layer-add input, .dip-layer-add select, .dip-extension-list select { min-width: 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2); }
.dip-layer-list { display: grid; gap: var(--lbn-space-2); margin-top: var(--lbn-space-5); }
.dip-layer-row { display: grid; grid-template-columns: minmax(260px,1fr) minmax(180px,.6fr) auto; align-items: center; gap: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-layer-row.is-hidden { opacity: .62; }
.dip-layer-main, .dip-layer-row > label, .dip-layer-actions { display: flex; align-items: center; gap: var(--lbn-space-2); }
.dip-layer-main input { min-width: 120px; flex: 1; border: 0; background: transparent; color: var(--lbn-text-primary); font-weight: var(--lbn-weight-bold); }
.dip-layer-grip { color: var(--lbn-text-secondary); cursor: grab; }
.dip-layer-row > label { color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-layer-row > label input { min-width: 100px; }
.dip-layer-actions .lbn-icon-button { flex: 0 0 auto; }
.dip-layer-items { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--lbn-space-1); padding-left: 28px; }
.dip-layer-items code { padding: 3px 6px; border-radius: var(--lbn-radius-sm); background: var(--lbn-bg-inset); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-reference-upload { cursor: pointer; white-space: nowrap; }
.dip-layer-add .dip-reference-upload input { display: none; }
.dip-reference-layer-controls { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(180px,1fr) auto repeat(4,minmax(88px,.35fr)) auto; align-items: end; gap: var(--lbn-space-2); padding: var(--lbn-space-3); border: 1px dashed var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface); }
.dip-reference-layer-controls strong, .dip-reference-layer-controls span { align-self: center; overflow-wrap: anywhere; }
.dip-reference-layer-controls span { color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-reference-layer-controls label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-reference-layer-controls input { min-width: 0; width: 100%; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2); }
.dip-map-variant-config.dip-tab-section, .dip-map-extensions.dip-tab-section { grid-template-columns: minmax(0,1fr); }
.dip-map-region-list { display: grid; gap: 6px; margin-top: 12px; max-height: 360px; overflow: auto; }
.dip-map-region { display: grid; grid-template-columns: 42px 1fr auto; gap: 7px; align-items: center; width: 100%; padding: 9px; text-align: left; border: 1px solid transparent; border-radius: var(--lbn-radius-sm); color: var(--lbn-text-primary); background: transparent; }
.dip-map-region:hover, .dip-map-region.active { border-color: var(--lbn-attention-color); background: color-mix(in srgb, var(--lbn-attention-color) 10%, transparent); }
.dip-map-region span { color: var(--lbn-action); font-weight: var(--lbn-weight-bold); }
.dip-map-groups { display: grid; gap: 8px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--lbn-border-default); }
.dip-map-group, .dip-map-group-add { display: flex; align-items: center; gap: 8px; color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-map-group i, .dip-map-group > input[type="color"] { width: 20px; height: 20px; padding: 1px; border-radius: 3px; border: 1px solid rgba(255,255,255,.3); background: transparent; }
.dip-map-group-add input { width: 38px; min-height: 34px; padding: 2px; }
.dip-map-groups--panel { margin-top: var(--lbn-space-3); padding-top: 0; border-top: 0; }
.dip-map-group-create { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; gap: var(--lbn-space-2); align-items: center; }
.dip-map-group-create input[type="color"] { width: 42px; min-height: 36px; padding: 2px; }
.dip-revision-history { width: min(42rem, calc(100vw - (2 * var(--lbn-space-4)))); }
.dip-revision-list { display: grid; gap: var(--lbn-space-2); max-height: min(52vh, 30rem); margin: var(--lbn-space-4) 0 0; padding: 0; overflow-y: auto; list-style: none; }
.dip-revision-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--lbn-space-1) var(--lbn-space-3); align-items: center; padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); }
.dip-revision-list li > div { display: flex; align-items: center; gap: var(--lbn-space-2); }
.dip-revision-list li > div span { padding: 2px var(--lbn-space-2); border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-panel-alt); color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-revision-list p, .dip-revision-list time { margin: 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-revision-list time { grid-column: 1; font-size: var(--lbn-text-xs); }
.dip-revision-list button { grid-column: 2; grid-row: 1 / span 3; }
.dip-revision-state { margin: var(--lbn-space-4) 0 0; padding: var(--lbn-space-4); border: 1px dashed var(--lbn-border-default); border-radius: var(--lbn-radius-md); color: var(--lbn-text-secondary); text-align: center; }
.dip-revision-state.is-error { border-color: var(--lbn-status-danger); color: var(--lbn-status-danger); }
.dip-revision-confirm-backdrop { z-index: 110; }
.dip-map-power-row { display: grid; grid-template-columns: 14px 1fr auto; align-items: center; gap: 8px; color: var(--lbn-text-secondary); font-size: var(--lbn-text-xs); }
.dip-map-power-row i { width: 14px; height: 14px; border-radius: 50%; }
.dip-map-power-row label { display: flex; align-items: center; gap: 3px; }
.dip-map-power-row input { width: 48px; padding: 4px; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); }
.dip-map-workspace { position: relative; min-width: 0; background: var(--lbn-workspace-bg); }
.dip-map-floating-options { position: absolute; z-index: 20; top: var(--lbn-space-3); right: calc(300px + var(--lbn-space-3)); display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbn-space-2) var(--lbn-space-3); width: min(620px, calc(100% - 390px)); max-height: min(70vh, 520px); overflow: auto; padding: var(--lbn-space-3); border: 1px solid var(--lbn-workspace-border-strong); border-radius: var(--lbn-radius-lg); background: color-mix(in srgb, var(--lbn-workspace-surface-raised) 96%, transparent); box-shadow: var(--lbn-shadow-lg); color: var(--lbn-workspace-text); backdrop-filter: blur(12px); }
.dip-map-floating-options > header { display: flex; align-items: center; justify-content: space-between; flex: 1 0 100%; padding-bottom: var(--lbn-space-2); border-bottom: 1px solid var(--lbn-workspace-border); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-bold); }
.dip-map-floating-options > header button { display: grid; place-items: center; width: var(--lbn-touch-target); min-height: var(--lbn-touch-target); padding: 0; border: 1px solid transparent; border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-workspace-text-muted); font-size: var(--lbn-text-lg); }
.dip-map-floating-options > header button:hover { border-color: var(--lbn-workspace-border-strong); background: var(--lbn-workspace-surface); color: var(--lbn-workspace-text); }
.dip-map-floating-options > strong { white-space: nowrap; font-size: var(--lbn-text-sm); }
.dip-map-floating-options .dip-map-snap:first-of-type { margin-left: auto; }
.dip-map-floating-options button:not(header button) { min-height: var(--lbn-touch-target); border: 1px solid var(--lbn-workspace-border-strong); border-radius: var(--lbn-radius-sm); padding: var(--lbn-space-2) var(--lbn-space-3); background: var(--lbn-workspace-surface-raised); color: var(--lbn-workspace-text); font-weight: var(--lbn-weight-bold); }
.dip-map-floating-options .dip-context-primary { background: var(--lbn-action); border-color: var(--lbn-action); color: var(--lbn-text-inverse); }
.dip-context-divider { width: 1px; align-self: stretch; background: var(--lbn-workspace-border); }
.dip-context-hint { min-width: 0; overflow: hidden; color: var(--lbn-workspace-text-muted); font-size: var(--lbn-text-xs); text-overflow: ellipsis; white-space: nowrap; }
.dip-selection-transform { display: inline-flex; align-items: center; gap: var(--lbn-space-1); }
.dip-selection-transform button { min-width: var(--lbn-touch-target); padding-inline: var(--lbn-space-2); }
.dip-map-document-view { display: grid; grid-template-columns: 58px minmax(0, 1fr) minmax(240px, 300px); }
.dip-map-quick-inspector { min-width: 0; max-height: 680px; overflow: auto; padding: var(--lbn-space-3); border-left: 1px solid var(--lbn-border-default); background: var(--lbn-bg-surface-raised); }
.dip-map-quick-inspector > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lbn-space-2); margin-bottom: var(--lbn-space-3); }
.dip-map-quick-inspector h3, .dip-map-quick-inspector p { margin: 0; }
.dip-map-quick-form { display: grid; gap: var(--lbn-space-3); }
.dip-map-quick-form > label, .dip-map-quick-form .dip-map-form-row > label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-quick-form input, .dip-map-quick-form select { min-width: 0; width: 100%; box-sizing: border-box; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2); }
.dip-quick-checks { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lbn-space-2); }
.dip-map-tool-rail { display: flex; flex-direction: column; align-items: stretch; gap: var(--lbn-space-1); padding: var(--lbn-space-2); border-right: 1px solid var(--lbn-workspace-border); background: var(--lbn-workspace-surface); }
.dip-map-tool-rail button { display: grid; place-items: center; min-height: var(--lbn-touch-target); padding: var(--lbn-space-1); border: 1px solid transparent; border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-workspace-text-muted); }
.dip-map-tool-rail button:hover { border-color: var(--lbn-workspace-border-strong); background: var(--lbn-workspace-surface-raised); color: var(--lbn-workspace-text); }
.dip-map-tool-rail button.is-active { border-color: var(--lbn-attention-color); background: color-mix(in srgb, var(--lbn-attention-color) 18%, var(--lbn-workspace-surface-raised)); color: var(--lbn-attention-color); }
.dip-map-tool-rail button span { font-size: 20px; line-height: 1; }
.dip-map-tool-rail button small { margin-top: 3px; font-size: var(--lbn-text-xs); line-height: 1; font-weight: var(--lbn-weight-bold); transform: scale(.82); }
.dip-map-tool-rail > i { height: 1px; margin: var(--lbn-space-1); background: var(--lbn-workspace-border); }
.dip-map-canvas-column { min-width: 0; }
.dip-map-canvas { display: block; width: 100%; aspect-ratio: 3 / 2; max-height: 520px; cursor: crosshair; touch-action: none; }
.dip-map-bottom-tools { display: flex; align-items: stretch; gap: var(--lbn-space-1); min-width: 0; overflow-x: auto; padding: var(--lbn-space-2); border-top: 1px solid var(--lbn-workspace-border); border-bottom: 1px solid var(--lbn-workspace-border); background: var(--lbn-workspace-surface); scrollbar-width: thin; }
.dip-map-bottom-tools button { display: grid; flex: 0 0 auto; place-items: center; min-width: 58px; min-height: var(--lbn-touch-target); padding: var(--lbn-space-1) var(--lbn-space-2); border: 1px solid transparent; border-radius: var(--lbn-radius-sm); background: transparent; color: var(--lbn-workspace-text-muted); }
.dip-map-bottom-tools button:hover { border-color: var(--lbn-workspace-border-strong); background: var(--lbn-workspace-surface-raised); color: var(--lbn-workspace-text); }
.dip-map-bottom-tools button.is-active { border-color: var(--lbn-attention-color); background: color-mix(in srgb, var(--lbn-attention-color) 18%, var(--lbn-workspace-surface-raised)); color: var(--lbn-attention-color); }
.dip-map-bottom-tools button span { font-size: 20px; line-height: 1; }
.dip-map-bottom-tools button small { margin-top: 3px; font-size: var(--lbn-text-xs); line-height: 1; font-weight: var(--lbn-weight-bold); transform: scale(.82); }
.dip-map-bottom-tools > i { flex: 0 0 1px; width: 1px; margin: var(--lbn-space-1); background: var(--lbn-workspace-border); }
.dip-map-canvas.can-pan { cursor: grab; }
.dip-map-canvas.is-panning { cursor: grabbing; }
.dip-map-canvas:focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-focus-ring); outline-offset: calc(-1 * var(--lbn-focus-offset)); }
.dip-map-editor-grid--hex { display:block; }
.hex-map-workspace { min-width:0; }
.hex-map-tools { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.hex-map-tools__spacer { flex:1 1 12px; }
.hex-map-tools__zoom { align-self:center; min-width:42px; text-align:center; font-variant-numeric:tabular-nums; }
.hex-map-tools .is-active { border-color:#f4c840; box-shadow:inset 0 0 0 1px #f4c840; }
.hex-map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,280px); gap:16px; align-items:start; }
.hex-map-canvas { width:100%; max-height:75vh; background:#1988b5; border:1px solid var(--lbn-border-soft); border-radius:8px; touch-action:none; }
.hex-map-details { display:grid; gap:12px; padding:14px; border:1px solid var(--lbn-border-soft); border-radius:8px; }
.hex-map-details h4, .hex-map-details p { margin:0; }
.hex-map-grid-fields, .hex-map-town-fields { display:grid; gap:9px; }
.hex-map-details label { display:grid; gap:4px; font-size:var(--lbn-text-xs); }
.hex-map-details input:not([type="checkbox"]) { min-width:0; width:100%; }
@media (max-width:760px) { .hex-map-layout { grid-template-columns:1fr; } }
.dip-freehand-preview { fill: color-mix(in srgb, var(--dip-editor-node) 12%, transparent); stroke: var(--dip-editor-node); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dip-active-layer-picker { display: flex; align-items: center; gap: var(--lbn-space-2); color: var(--lbn-workspace-text-muted); font-size: var(--lbn-text-xs); white-space: nowrap; }
.dip-active-layer-picker select { min-width: 150px; max-width: 240px; border: 1px solid var(--lbn-workspace-border-strong); border-radius: var(--lbn-radius-md); background: var(--lbn-workspace-surface); color: var(--lbn-workspace-text); padding: var(--lbn-space-2) var(--lbn-space-7) var(--lbn-space-2) var(--lbn-space-2); }
.dip-map-object-filter { width: 100%; margin: var(--lbn-space-2) 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2) var(--lbn-space-3); }
.dip-selection-object.selected > * { filter: drop-shadow(0 0 3px var(--lbn-attention-color)); }
.dip-selection-marquee { fill: color-mix(in srgb, var(--lbn-attention-color) 18%, transparent); stroke: var(--lbn-attention-color); stroke-width: 1.5; stroke-dasharray: 7 4; vector-effect: non-scaling-stroke; }
.dip-ruler line { stroke: var(--lbn-attention-color); stroke-width: 2; stroke-dasharray: 8 5; vector-effect: non-scaling-stroke; }
.dip-ruler circle, .dip-ruler-start { fill: var(--lbn-attention-color); stroke: var(--lbn-bg-inset); stroke-width: 2; vector-effect: non-scaling-stroke; }
.dip-ruler text { fill: var(--lbn-text-primary); paint-order: stroke; stroke: var(--lbn-bg-inset); stroke-width: 4; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.dip-map-water { fill: var(--dip-editor-water); }
.dip-region-shape > path { vector-effect: non-scaling-stroke; }
.dip-region-highlight { fill-opacity: 0; stroke: #ef4444; stroke-opacity: 0; stroke-width: 2.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; transition: fill-opacity 100ms ease, stroke-opacity 100ms ease, filter 100ms ease; }
.dip-region-shape:hover > .dip-region-highlight { fill-opacity: .14; stroke-opacity: 1; filter: drop-shadow(0 0 2px rgba(239,68,68,.9)) drop-shadow(0 0 6px rgba(239,68,68,.55)); }
.dip-region-shape.selected > .dip-region-highlight { fill-opacity: .2; stroke-opacity: 1; stroke-width: 3; filter: drop-shadow(0 0 2px rgba(239,68,68,1)) drop-shadow(0 0 8px rgba(239,68,68,.72)); }
.dip-region-shape text { font-family: var(--lbn-font-ui); font-weight: 800; text-anchor: middle; paint-order: stroke; pointer-events: none; }
.dip-unit-anchor { fill: var(--dip-editor-selection); stroke: var(--dip-editor-ink); stroke-width: 2; }
.dip-unit-cross { fill: none; stroke: var(--dip-editor-ink); stroke-width: 2; pointer-events: none; }
.dip-map-editor .dip-supply-center:not([data-starting-owned="true"]) { fill: var(--dip-editor-center); }
.dip-map-editor .dip-supply-center { stroke: var(--dip-editor-center-stroke); stroke-width: 1; }
.dip-map-editor .dip-supply-center-preview circle { fill: color-mix(in srgb, var(--dip-editor-center) 28%, transparent); stroke: var(--dip-editor-selection); stroke-width: 3; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.dip-map-editor .dip-supply-center-preview path { fill: none; stroke: var(--dip-editor-selection); stroke-width: 2; vector-effect: non-scaling-stroke; pointer-events: none; }
.dip-map-statusbar { display: grid; grid-template-columns: minmax(11.25rem, 1fr) auto auto; align-items: center; gap: var(--lbn-space-3); min-height: var(--lbn-control-md); padding: var(--lbn-space-1) var(--lbn-space-2) var(--lbn-space-1) var(--lbn-space-3); border-top: 1px solid var(--lbn-workspace-border); background: var(--lbn-workspace-surface); color: var(--lbn-workspace-text-muted); font-size: var(--lbn-text-xs); }
.dip-map-statusbar p { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dip-map-statusbar > span { color: var(--lbn-workspace-text); }
.dip-map-view-controls { display: flex; align-items: center; gap: 3px; }
.dip-map-view-controls button { border-color: var(--lbn-workspace-border-strong); background: var(--lbn-workspace-surface-raised); color: var(--lbn-workspace-text); }
.dip-map-view-controls strong { min-width: 42px; text-align: center; color: var(--lbn-workspace-text); }
.dip-map-adjacency-toggle { margin-left: 0; }
.dip-adjacency-overlay line { stroke-width: 6; stroke-linecap: round; vector-effect: non-scaling-stroke; opacity: .9; }
.dip-adjacency-overlay circle { stroke: var(--dip-editor-ink-strong); stroke-width: 2; vector-effect: non-scaling-stroke; }
.dip-adjacency-edge.both line, .dip-adjacency-edge.both circle, .dip-adjacency-legend .both i { stroke: var(--dip-editor-adjacency-both); background: var(--dip-editor-adjacency-both); fill: var(--dip-editor-adjacency-both); }
.dip-adjacency-edge.army line, .dip-adjacency-edge.army circle, .dip-adjacency-legend .army i { stroke: var(--dip-editor-adjacency-army); background: var(--dip-editor-adjacency-army); fill: var(--dip-editor-adjacency-army); }
.dip-adjacency-edge.fleet line, .dip-adjacency-edge.fleet circle, .dip-adjacency-legend .fleet i { stroke: var(--dip-editor-adjacency-fleet); background: var(--dip-editor-adjacency-fleet); fill: var(--dip-editor-adjacency-fleet); }
.dip-adjacency-legend { display: flex; flex-wrap: wrap; gap: var(--lbn-space-3); padding: var(--lbn-space-2) var(--lbn-space-3); border-top: 1px solid var(--lbn-workspace-border); background: var(--lbn-workspace-surface); color: var(--lbn-workspace-text); font-size: var(--lbn-text-xs); }
.dip-adjacency-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dip-adjacency-legend i { width: 22px; height: 4px; border-radius: 999px; }
.dip-map-form { display: grid; gap: 13px; margin-top: 14px; }
.dip-map-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dip-map-form small { color: var(--lbn-text-secondary); font-weight: var(--lbn-weight-regular); line-height: var(--lbn-leading-body); }
.dip-map-check { display: flex !important; align-items: center; gap: 8px !important; color: var(--lbn-text-primary) !important; }
.dip-map-check input { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; }
.dip-map-form fieldset { margin: 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); padding: var(--lbn-space-3); }
.dip-map-form legend { color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-neighbors { display: grid; gap: 7px; max-height: 170px; overflow: auto; }
.dip-map-neighbors label { display: flex; align-items: center; gap: 7px; color: var(--lbn-text-primary); }
.dip-map-neighbors input { width: 16px; height: 16px; margin: 0; flex: 0 0 auto; }
.dip-map-empty { margin: var(--lbn-space-5) 0 0; padding: var(--lbn-space-5); border: 1px dashed var(--lbn-border-default); border-radius: var(--lbn-radius-md); color: var(--lbn-text-secondary); text-align: center; }
.dip-map-coast-tools { display: flex; gap: 6px; flex-wrap: wrap; }
.dip-map-coast-tools > span { width: 100%; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-coast-tools .is-active { border-color: var(--lbn-action); background: color-mix(in srgb, var(--lbn-action) 16%, var(--lbn-bg-surface-raised)); }
.dip-export-editor, .dip-editor-config-panel { display: grid; align-content: start; gap: var(--lbn-space-5); }
.dip-map-output-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lbn-space-4); }
.dip-map-output-grid article { min-width: 0; padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-map-output-grid textarea { box-sizing: border-box; width: 100%; min-height: 120px; margin-top: var(--lbn-space-2); resize: vertical; font: var(--lbn-weight-regular) var(--lbn-text-xs)/1.45 ui-monospace, monospace; }
.dip-map-output-grid ul { margin: var(--lbn-space-3) 0 0; padding-left: var(--lbn-space-5); max-height: 140px; overflow: auto; color: var(--lbn-danger); font-size: var(--lbn-text-sm); }
.dip-export-card { display: grid; align-content: start; gap: var(--lbn-space-3); min-height: 150px; }
.dip-export-card--project { grid-column: 1 / -1; min-height: 0; }
.dip-export-card > p, .dip-export-card label { margin: 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); line-height: var(--lbn-leading-body); }
.dip-export-card label { display: grid; gap: var(--lbn-space-1); font-weight: var(--lbn-weight-bold); }
.dip-export-card > .lbn-button { justify-self: start; }
.dip-export-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--lbn-space-2); }
.dip-project-import { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbn-space-3); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); }
.dip-project-file-input { position: relative; overflow: hidden; cursor: pointer; }
.dip-project-file-input input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dip-validation-list { list-style: none; margin: var(--lbn-space-3) 0 0; padding: 0; max-height: 220px; overflow: auto; }
.dip-validation-list li + li { border-top: 1px solid var(--lbn-border-subtle); }
.dip-validation-list button { display: flex; align-items: start; justify-content: space-between; gap: var(--lbn-space-3); width: 100%; padding: var(--lbn-space-2) 0; border: 0; background: transparent; color: var(--lbn-danger); font: inherit; text-align: left; cursor: pointer; }
.dip-validation-list button:hover, .dip-validation-list button:focus-visible { color: var(--lbn-text-primary); }
.dip-export-format { display: inline-block; margin-bottom: var(--lbn-space-1); padding: 2px 6px; border-radius: var(--lbn-radius-pill); background: var(--lbn-bg-inset); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); letter-spacing: .05em; }
.dip-map-valid { color: var(--lbn-success); }
.dip-map-snap { display: flex; align-items: center; gap: var(--lbn-space-1); margin-left: auto; color: var(--lbn-workspace-text-muted); font-size: var(--lbn-text-xs); }
.dip-map-snap input[type="number"] { width: 52px; padding: var(--lbn-space-1); border: 1px solid var(--lbn-workspace-border-strong); border-radius: var(--lbn-radius-sm); background: var(--lbn-workspace-surface); color: var(--lbn-workspace-text); }
.dip-zoom-value { min-width: 42px; color: var(--lbn-workspace-text-muted); text-align: center; font-size: var(--lbn-text-xs); }
.dip-node-layer line { stroke: color-mix(in srgb, var(--dip-editor-node) 82%, var(--dip-editor-ink)); stroke-width: 1.25; pointer-events: none; }
.dip-path-node { fill: var(--dip-editor-node); fill-opacity: .58; stroke: var(--dip-editor-ink); stroke-opacity: .72; stroke-width: .8; pointer-events: none; }
.dip-path-node.active { fill: var(--dip-editor-node-active); stroke: var(--dip-editor-node); }
.dip-control-handle { fill: var(--dip-editor-ink); fill-opacity: .5; stroke: var(--dip-editor-node); stroke-opacity: .7; stroke-width: .7; pointer-events: none; }
.dip-node-hit-target { fill: transparent; stroke: none; cursor: move; }
.dip-node-hit-target.is-control { cursor: crosshair; }
.dip-node-layer.is-context .dip-path-node { fill-opacity: .36; stroke-opacity: .52; }
.dip-node-layer.is-context .dip-control-handle, .dip-node-layer.is-context .dip-node-hit-target.is-control, .dip-node-layer.is-context line { display: none; }
.dip-shared-snap-guide circle { fill: color-mix(in srgb, var(--lbn-attention-color) 22%, transparent); stroke: var(--lbn-attention-color); stroke-width: 2; vector-effect: non-scaling-stroke; }
.dip-shared-snap-guide path { fill: none; stroke: var(--lbn-attention-color); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.dip-node-info rect { fill: var(--lbn-bg-inset); stroke: var(--lbn-text-on-dark); stroke-width: 1; }
.dip-node-info text { fill: var(--lbn-text-on-dark); stroke: none; font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-bold); }
.dip-node-inspector > span { display: block; margin: var(--lbn-space-2) 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-node-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.dip-node-coordinates { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 8px; }
.dip-node-coordinates label { min-width: 0; }
.dip-node-coordinates input { width: 100%; box-sizing: border-box; }
.dip-node-coordinates label > span { padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); color: var(--lbn-text-primary); }
.dip-border-cleanup { display: grid; gap: var(--lbn-space-2); margin-top: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-border-cleanup > div:first-child { display: grid; gap: 2px; }
.dip-border-cleanup small { color: var(--lbn-text-secondary); }
.dip-border-cleanup label, .dip-border-cleanup label > span { display: flex; align-items: center; gap: var(--lbn-space-2); }
.dip-border-cleanup input { width: 6rem; }
.dip-border-cleanup em { color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-style: normal; }
.dip-border-cleanup-actions { display: flex; flex-wrap: wrap; gap: var(--lbn-space-2); }
.dip-map-variant-config { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lbn-space-4); }
.dip-map-variant-config article { display: grid; align-content: start; gap: var(--lbn-space-3); min-width: 0; padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-map-variant-config label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-variant-config input, .dip-map-variant-config select, .dip-map-variant-config textarea { min-width: 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2); }
.dip-map-variant-config textarea { min-height: 92px; resize: vertical; font: 11px/1.45 ui-monospace, monospace; }
.dip-map-variant-config small { font-weight: 400; line-height: var(--lbn-leading-body); }
.dip-paint-inspector input[type="color"] { width: 100%; min-height: 35px; padding: 2px; }
.dip-paint-inspector input[type="range"] { padding: 0; }
.dip-pattern-form { display: grid; grid-template-columns: 1.2fr 1fr auto auto auto; gap: 7px; align-items: end; }
.dip-pattern-form label { display: grid; gap: 3px; }
.dip-pattern-form input[type="color"] { width: 42px; min-height: 35px; padding: 2px; }
.dip-pattern-list { display: grid; gap: 6px; }
.dip-pattern-list > div { display: grid; grid-template-columns: 20px minmax(90px,1fr) repeat(4,70px) auto; align-items: end; gap: var(--lbn-space-2); padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); }
.dip-pattern-list i { width: 20px; height: 20px; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-sm); }
.dip-pattern-list label { display: grid; gap: var(--lbn-space-1); color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-pattern-list input { min-width: 0; width: 100%; box-sizing: border-box; padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); }
.dip-custom-visual { pointer-events: none; opacity: .92; }
.dip-custom-visual.selected { filter: drop-shadow(0 0 5px var(--dip-editor-node)); }
.dip-custom-label { font: var(--lbn-weight-bold) 22px var(--lbn-font-ui); text-anchor: middle; paint-order: stroke; stroke: var(--dip-editor-label-outline); stroke-width: 5px; }
.dip-map-extensions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lbn-space-4); }
.dip-map-extensions article { min-width: 0; padding: var(--lbn-space-4); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-surface-raised); }
.dip-map-output-title p { margin: var(--lbn-space-1) 0 0; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-extension-form { display: grid; grid-template-columns: 1.4fr .7fr 1fr 1.4fr 1fr auto; gap: 7px; margin-top: 12px; align-items: end; }
.dip-extension-form input, .dip-extension-form select { min-width: 0; border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); background: var(--lbn-bg-inset); color: var(--lbn-text-primary); padding: var(--lbn-space-2); }
.dip-extension-form-visual { grid-template-columns: 1.5fr 1fr 48px 90px auto auto; }
.dip-extension-form label { color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); }
.dip-extension-list { display: grid; gap: 6px; margin-top: 12px; }
.dip-extension-list > div { display: flex; align-items: center; gap: var(--lbn-space-2); padding: var(--lbn-space-2); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); }
.dip-extension-list span { min-width: 0; flex: 1; color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); overflow-wrap: anywhere; }
.dip-extension-list i { width: 14px; height: 14px; border-radius: 50%; }
.dip-map-editor :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select, textarea) {
  box-sizing: border-box;
  min-width: 0;
  min-height: var(--lbn-control-md);
  border: 1px solid var(--lbn-border-default);
  border-radius: var(--lbn-radius-md);
  background: var(--lbn-bg-inset);
  color: var(--lbn-text-primary);
  font: var(--lbn-weight-regular) var(--lbn-text-sm)/var(--lbn-leading-body) var(--lbn-font-ui);
}
.dip-map-editor .lbn-button { min-height: var(--lbn-touch-target); }
.dip-map-editor :where(input:not([type="color"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), select) { padding-inline: var(--lbn-space-3); }
.dip-map-editor textarea { min-height: 6rem; padding: var(--lbn-space-3); resize: vertical; }
.dip-map-editor :where(label, legend) { color: var(--lbn-text-secondary); font-size: var(--lbn-text-sm); font-weight: var(--lbn-weight-semibold); }
.dip-map-editor :where(input, select, textarea, button):focus-visible { outline: var(--lbn-focus-width) solid var(--lbn-attention-color); outline-offset: var(--lbn-focus-offset); }
.dip-map-editor :where(input, select, textarea, button):disabled { cursor: not-allowed; opacity: .5; }
.dip-map-floating-options :where(select, input:not([type="checkbox"]):not([type="radio"]):not([type="range"])) {
  border-color: var(--lbn-workspace-border-strong);
  background: var(--lbn-workspace-surface);
  color: var(--lbn-workspace-text);
}
.dip-map-floating-options :where(label) { color: var(--lbn-workspace-text-muted); }

@media (max-width: 1180px) {
  .dip-map-floating-options { right: var(--lbn-space-3); width: min(620px, calc(100% - (2 * var(--lbn-space-3)))); }
  .dip-map-editor-grid { grid-template-columns: 180px minmax(360px, 1fr); }
  .dip-map-output-grid { grid-template-columns: 1fr 1fr; }
  .dip-map-extensions { grid-template-columns: 1fr; }
  .dip-map-variant-config { grid-template-columns: 1fr; }
  .dip-extension-form, .dip-extension-form-visual { grid-template-columns: 1fr 1fr; }
  .dip-pattern-form { grid-template-columns: 1fr 1fr; }
  .dip-pattern-list > div { grid-template-columns: 20px 1fr 1fr; }
  .dip-shortcut-reference > div { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 920px) {
  .game-maker-context-bar { align-items: stretch; flex-direction: column; }
  .game-maker-context-bar .preview-header-actions { justify-content: flex-start; }
}

@media (max-width: 720px) {
  .lbn-data-grid { overflow: visible; border: 0; background: transparent; }
  .lbn-data-grid__header { display: none; }
  .lbn-data-grid__row { grid-template-columns: minmax(0, 1fr) !important; min-width: 0; margin-bottom: var(--lbn-space-3); padding: var(--lbn-space-3); border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); }
  .lbn-data-grid__cell { display: grid; grid-template-columns: minmax(7.5rem, .45fr) minmax(0, 1fr); align-items: center; gap: var(--lbn-space-2); }
  .lbn-data-grid__cell::before { content: attr(data-label); color: var(--lbn-text-tertiary); font-size: var(--lbn-text-xs); font-weight: var(--lbn-weight-semibold); }
  .lbn-data-grid__empty { border: 1px solid var(--lbn-border-default); border-radius: var(--lbn-radius-md); }
  .game-maker-workspace-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .game-maker-workspace-nav button { width: 100%; min-width: 0; }
  .game-maker-workspace-nav small { display: none; }
  .dip-project-manager { padding: var(--lbn-space-4); }
  .dip-project-manager > header, .dip-editor-panel-header { align-items: stretch; flex-direction: column; }
  .dip-project-manager > header > div:last-child { flex-direction: column; }
  .dip-project-browser-heading { align-items: stretch; flex-direction: column; }
  .dip-project-browser-tools { align-items: stretch; flex-direction: column; }
  .dip-map-editor-header, .dip-map-document-strip { align-items: stretch; flex-direction: column; }
  .dip-map-editor-header--compact { gap: var(--lbn-space-2); }
  .dip-map-editor-actions { flex-wrap: nowrap; overflow-x: auto; }
  .dip-map-editor-actions .lbn-button { flex: 0 0 auto; }
  .dip-layer-actions { flex-wrap: wrap; }
  .dip-map-document-strip > div { flex-wrap: wrap; }
  .dip-map-document-facts { justify-content: flex-start; }
  .dip-map-editor-grid { display: block; }
  .dip-editor-panel { min-height: 0; padding: var(--lbn-space-4); }
  .dip-map-sidebar { border-right: 0; border-bottom: 1px solid var(--lbn-border-default); }
  .dip-map-region-list { max-height: 190px; }
  .dip-map-output-grid { grid-template-columns: 1fr; }
  .dip-extension-form, .dip-extension-form-visual { grid-template-columns: 1fr; }
  .dip-pattern-form { grid-template-columns: 1fr; }
  .lbn-tabs { padding-inline: var(--lbn-space-3); overflow-x: auto; }
  .dip-power-province-heading { align-items: stretch; flex-direction: column; }
  .dip-power-add { flex-wrap: wrap; }
  .dip-project-grid { grid-template-columns: 1fr; }
  .dip-layer-add { align-items: stretch; flex-direction: column; }
  .dip-layer-row { grid-template-columns: 1fr; }
  .dip-layer-items { grid-column: 1; padding-left: 0; }
  .dip-reference-layer-controls { grid-column: 1; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dip-reference-layer-controls strong, .dip-reference-layer-controls span { grid-column: 1 / -1; }
  .dip-map-floating-options { position: fixed; top: auto; right: var(--lbn-space-3); bottom: var(--lbn-space-3); left: var(--lbn-space-3); width: auto; max-height: min(70vh, 520px); align-items: stretch; }
  .dip-map-floating-options .dip-map-snap:first-of-type { margin-left: 0; }
  .dip-context-divider, .dip-context-hint { display: none; }
  .dip-map-document-view { grid-template-columns: 1fr; }
  .dip-map-tool-rail { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--lbn-workspace-border); }
  .dip-map-tool-rail button { min-width: 54px; }
  .dip-map-tool-rail > i { width: 1px; height: auto; }
  .dip-map-bottom-tools button { min-width: 54px; }
  .dip-map-statusbar { grid-template-columns: 1fr auto; }
  .dip-map-statusbar > span { display: none; }
  .dip-map-view-controls { max-width: 100%; overflow-x: auto; }
  .dip-map-view-controls button:nth-child(-n+4) { display: none; }
  .dip-map-form-row, .dip-node-coordinates { grid-template-columns: 1fr; }
  .dip-pattern-list > div { grid-template-columns: 1fr 1fr; align-items: end; }
  .dip-pattern-list > div > strong { align-self: center; }
  .dip-extension-list > div { align-items: stretch; flex-wrap: wrap; }
  .dip-extension-list > div > span { flex-basis: 100%; }
  .dip-shortcut-reference > div { grid-template-columns: 1fr; }
}

.preview-panel {
  overflow: hidden;
}

.preview-panel-title-row {
  flex-wrap: wrap;
}

.preview-board-grid {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.preview-editor-panel .CodeMirror-scroll {
  max-width: 100%;
  overflow: auto !important;
}

.lbn-mobile-auth-actions {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
}

.lbn-mobile-user-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin-left: auto;
}

.lbn-mobile-auth-button:focus-visible,
.lbn-mobile-user-badge:focus-visible,
.lbn-mobile-logout-button:focus-visible,
.lbn-mobile-menu-button:focus-visible {
  outline: 2px solid var(--lbn-accent-warm);
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .lbn-app-shell {
    min-height: 100vh !important;
    height: auto !important;
    padding-top: 56px !important;
  }

  .lbn-mobile-topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 130 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 56px !important;
    padding: 0 14px !important;
    gap: 6px !important;
    background: var(--lbn-bg-sidebar) !important;
    border-bottom: 1px solid var(--lbn-border-dark) !important;
  }

  .lbn-mobile-menu-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 118 !important;
    display: none !important;
    background: rgba(1, 4, 9, 0.58) !important;
    border: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
  }

  .lbn-mobile-menu-backdrop.is-open {
    display: block !important;
  }

  .lbn-sidebar {
    width: min(320px, calc(100vw - 48px)) !important;
    min-width: 0 !important;
    height: 100dvh !important;
    max-height: none !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 140 !important;
    border-right: 1px solid var(--lbn-border-dark) !important;
    border-bottom: none !important;
    box-shadow: 20px 0 50px rgba(0, 0, 0, 0.34) !important;
    transform: translateX(-104%) !important;
    transition: transform 0.18s ease-out !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  .lbn-sidebar.is-open {
    transform: translateX(0) !important;
  }

  .lbn-sidebar > a {
    padding: 16px 18px 14px !important;
  }

  .lbn-sidebar nav {
    display: block !important;
    flex: 0 0 auto !important;
    padding: 4px 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scroll-snap-type: none !important;
  }

  .lbn-sidebar nav a {
    min-width: 0 !important;
    border-left-width: 3px !important;
    border-bottom: none !important;
    padding: 11px 20px !important;
    scroll-snap-align: none !important;
  }

  .lbn-sidebar nav > div {
    display: block !important;
  }

  .lbn-shell-main {
    width: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
  }

  .lbn-shell-layout {
    background: var(--lbn-bg-main) !important;
  }

  .lbn-page-frame,
  .preview-studio-page {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .lbn-shell-main [style*="grid-template-columns: 1fr 360px"],
  .lbn-shell-main [style*="grid-template-columns: 1.7fr 1fr"],
  .lbn-shell-main [style*="grid-template-columns:1fr 3fr"],
  .lbn-shell-main [style*="grid-template-columns: 1fr 1fr"],
  .lbn-shell-main [style*="grid-template-columns:1fr 1fr"],
  .lbn-shell-main [style*="grid-template-columns: 1fr 1fr auto"],
  .lbn-shell-main [style*="grid-template-columns:1fr 1fr auto"],
  .lbn-shell-main [style*="grid-template-columns: 1fr auto auto"],
  .lbn-shell-main [style*="grid-template-columns:1fr auto auto"],
  .lbn-shell-main [style*="grid-template-columns: 2fr 1fr"],
  .lbn-shell-main [style*="grid-template-columns:2fr 1fr"],
  .lbn-shell-main [style*="grid-template-columns: 1fr 320px"],
  .lbn-shell-main [style*="grid-template-columns:1fr 320px"],
  .lbn-shell-main [style*="grid-template-columns: 1fr 300px"],
  .lbn-shell-main [style*="grid-template-columns:1fr 300px"],
  .lbn-shell-main [style*="grid-template-columns: minmax(0, 1fr)"] {
    grid-template-columns: 1fr !important;
  }

  .lbn-shell-main [style*="grid-template-columns: repeat(6"],
  .lbn-shell-main [style*="grid-template-columns:repeat(6"],
  .lbn-shell-main [style*="grid-template-columns: repeat(5"],
  .lbn-shell-main [style*="grid-template-columns:repeat(5"],
  .lbn-shell-main [style*="grid-template-columns: repeat(4"],
  .lbn-shell-main [style*="grid-template-columns:repeat(4"],
  .lbn-shell-main [style*="grid-template-columns: repeat(3"],
  .lbn-shell-main [style*="grid-template-columns:repeat(3"],
  .lbn-shell-main [style*="grid-template-columns: repeat(2"],
  .lbn-shell-main [style*="grid-template-columns:repeat(2"] {
    grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)) !important;
  }

  .lbn-shell-main [style*="justify-content:space-between"],
  .lbn-shell-main [style*="justify-content: space-between"] {
    flex-wrap: wrap !important;
  }

  .lbn-shell-main [style*="display: flex"],
  .lbn-shell-main [style*="display:flex"] {
    min-width: 0 !important;
  }

  .lbn-compact-event-row,
  .lbn-compact-tournament-row,
  .lbn-lobby-table-row {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: center !important;
  }

  .lbn-replacement-seat-row,
  .lbn-joinable-table-row {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  .lbn-compact-event-row > *,
  .lbn-compact-tournament-row > *,
  .lbn-lobby-table-row > *,
  .lbn-replacement-seat-row > *,
  .lbn-joinable-table-row > * {
    min-width: 0;
  }

  .lbn-compact-event-row button,
  .lbn-compact-tournament-row button,
  .lbn-responsive-primary-action {
    width: auto;
    justify-content: center;
  }

  .lbn-responsive-copy,
  .lbn-responsive-copy > * {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  .lbn-responsive-meta {
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    text-align: right !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  .lbn-responsive-meta::before {
    content: attr(data-label);
    flex: 0 0 auto;
    color: var(--lbn-text-muted);
    font-size:var(--lbn-text-xs);
    font-weight: 700;
    text-align: left;
  }

  .lbn-responsive-actions {
    width: 100%;
    justify-content: flex-end !important;
  }

  .lbn-responsive-actions > button,
  .lbn-responsive-primary-action,
  .lbn-responsive-detail-action {
    min-height: 40px;
  }

  /* The lobby keeps enough horizontal structure to remain scannable on
     tablets. Generic responsive rules must not turn its filters into a single
     long column or stretch Join into a full-card action. */
  .lbn-lobby-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .lbn-lobby-table-row {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 6px 10px !important;
  }

  .lbn-lobby-table-row > .lbn-responsive-copy { grid-column: 1 / 3; grid-row: 1; }
  .lbn-lobby-table-row > .lbn-responsive-primary-action {
    grid-column: 3;
    grid-row: 1;
    width: auto !important;
    min-width: 88px;
    justify-self: end;
  }
  .lbn-lobby-table-row > .lbn-lobby-participants { grid-column: 1; grid-row: 2; }
  .lbn-lobby-table-row > .lbn-lobby-players { grid-column: 2; grid-row: 2; }
  .lbn-lobby-table-row > .lbn-lobby-secondary { display: none !important; }
  .lbn-lobby-table-row > .lbn-responsive-actions {
    grid-column: 3;
    grid-row: 2;
    width: auto;
  }

  .lbn-joinable-table-row {
    grid-template-columns: minmax(0, 1fr) 40px !important;
  }

  .lbn-joinable-table-row .lbn-responsive-copy,
  .lbn-joinable-table-row .lbn-responsive-meta {
    grid-column: 1 / -1;
  }

  .lbn-joinable-table-row .lbn-responsive-primary-action {
    grid-column: 1;
  }

  .lbn-joinable-table-row .lbn-responsive-detail-action {
    grid-column: 2;
    width: 40px !important;
  }

  .lbn-shell-main table {
    min-width: 640px;
  }

  .lbn-shell-main .lbn-md table,
  .lbn-shell-main [style*="overflow-x:auto"] table,
  .lbn-shell-main [style*="overflow-x: auto"] table {
    min-width: 0;
  }

  .lbn-shell-main [style*="width: 340px"],
  .lbn-shell-main [style*="width:340px"],
  .lbn-shell-main [style*="width: 360px"],
  .lbn-shell-main [style*="width:360px"],
  .lbn-shell-main [style*="width: 420px"],
  .lbn-shell-main [style*="width:420px"] {
    width: 100% !important;
  }

  .lbn-shell-main [style*="flex-shrink: 0"],
  .lbn-shell-main [style*="flex-shrink:0"] {
    min-width: 0 !important;
  }

  .preview-studio-grid,
  .preview-studio-grid-expanded,
  .preview-studio-grid-editor-expanded {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .my-stats-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .lbn-profile-layout,
  .lbn-crm-preview-layout,
  .lbn-responsive-two-column {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .preview-header-actions,
  .forums-page-layout > *,
  .forums-admin-sidebar {
    width: 100% !important;
    max-width: 100% !important;
  }

  .forums-page-layout {
    flex-direction: column !important;
  }
}

@media (max-width: 640px) {
  .lexiturn-standalone-page .lbn-page-frame {
    padding: 6px 8px !important;
  }

  .lexiturn-standalone-page .lbn-page-header {
    margin-bottom: 6px !important;
  }

  .lexiturn-standalone-page .lbn-page-header-subtitle {
    display: none;
  }
  .lbn-about-notice-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .lbn-about-notice-row > :last-child {
    margin-top: 2px;
  }
  .lbn-overlay-notifications {
    right: 16px;
    bottom: 16px;
    gap: 6px;
  }

  .lbn-overlay-notification {
    width: 40px;
    height: 40px;
  }

  .lbn-overlay-notification svg {
    width: 18px;
    height: 18px;
  }

  .lbn-overlay-notification-count {
    right: -3px;
    top: -4px;
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    font-size:var(--lbn-text-xs);
    line-height: 15px;
  }

  .lbn-mobile-topbar > a {
    flex: 0 1 auto;
  }

  .lbn-mobile-topbar > a span {
    display: inline !important;
    max-width: none !important;
    font-size:var(--lbn-text-md) !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .lbn-lobby-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .lbn-lobby-table-row,
  .lbn-compact-event-row,
  .lbn-compact-tournament-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(3, auto) !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .lbn-lobby-table-row > .lbn-responsive-copy,
  .lbn-lobby-table-row > .lbn-lobby-participants,
  .lbn-lobby-table-row > .lbn-lobby-players,
  .lbn-lobby-table-row > .lbn-lobby-secondary,
  .lbn-lobby-table-row > .lbn-responsive-actions {
    grid-column: auto;
    grid-row: auto;
    display: flex !important;
  }

  .lbn-sidebar nav a {
    padding: 10px 18px !important;
    font-size:var(--lbn-text-xs) !important;
  }

  .lbn-page-frame,
  .preview-studio-page {
    padding: 12px !important;
    max-width: 100% !important;
  }

  .lbn-shell-main h1 {
    font-size: clamp(26px, 9vw, 38px) !important;
    line-height: 1.08 !important;
  }

  .lbn-shell-main h2 {
    font-size: clamp(20px, 7vw, 28px) !important;
  }

  .lbn-shell-main .match-play-title {
    font-size:var(--lbn-text-lg) !important;
    line-height: 1.1 !important;
  }

  .lbn-shell-main .match-chat-title {
    font-size:var(--lbn-text-sm) !important;
    line-height: 1.2 !important;
  }

  .lbn-shell-main [style*="padding: 32px"],
  .lbn-shell-main [style*="padding:32px"] {
    padding: 18px !important;
  }

  .lbn-shell-main [style*="padding: 28px"],
  .lbn-shell-main [style*="padding:28px"] {
    padding: 18px !important;
  }

  .lbn-shell-main [style*="gap: 24px"],
  .lbn-shell-main [style*="gap:24px"],
  .lbn-shell-main [style*="gap: 20px"],
  .lbn-shell-main [style*="gap:20px"] {
    gap: 14px !important;
  }

  .preview-studio-page {
    padding: 12px !important;
  }

  .preview-header-actions {
    align-items: stretch !important;
  }

  .preview-header-actions label,
  .preview-header-actions select {
    width: 100% !important;
  }

  .preview-panel {
    padding: 12px !important;
    border-radius: 10px !important;
  }

  .preview-panel-title-row > div,
  .preview-btn,
  .preview-editor-actions .preview-inline-note {
    width: 100% !important;
    justify-content: center !important;
  }

  .preview-cell {
    min-height: 68px !important;
    min-width: 58px !important;
  }

  .preview-cell-mark {
    font-size: 22px !important;
  }

  .forums-list-head {
    display: none !important;
  }

  .forums-list-row {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 14px !important;
  }

  .forums-category-row > div:nth-child(2)::before {
    content: "Topics: ";
    color: var(--lbn-text-muted);
    font-size:var(--lbn-text-xs);
    font-weight: 600;
  }

  .forums-thread-row > div:nth-child(2)::before {
    content: "Replies: ";
    color: var(--lbn-text-muted);
    font-size:var(--lbn-text-xs);
    font-weight: 600;
  }

  .forums-category-row > div:nth-child(3)::before,
  .forums-thread-row > div:nth-child(3)::before {
    content: "Last post: ";
    color: var(--lbn-text-muted);
    font-size:var(--lbn-text-xs);
    font-weight: 600;
  }

  .forums-category-row > div:nth-child(2),
  .forums-category-row > div:nth-child(3),
  .forums-thread-row > div:nth-child(2),
  .forums-thread-row > div:nth-child(3) {
    text-align: left !important;
  }

  .forums-post-card {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 14px !important;
  }

  .forums-post-card > div:first-child {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-align: left !important;
  }

  .lbn-shell-main [style*="width:360px"],
  .lbn-shell-main [style*="width: 360px"],
  .lbn-shell-main [style*="width:420px"],
  .lbn-shell-main [style*="width: 420px"],
  .lbn-shell-main [style*="width:320px"],
  .lbn-shell-main [style*="width: 320px"] {
    width: 100% !important;
  }

  .lbn-shell-main [style*="grid-template-columns:2fr"],
  .lbn-shell-main [style*="grid-template-columns: 2fr"],
  .lbn-shell-main [style*="grid-template-columns:1.4fr"],
  .lbn-shell-main [style*="grid-template-columns: 1.4fr"],
  .lbn-shell-main [style*="grid-template-columns:80px"],
  .lbn-shell-main [style*="grid-template-columns: 80px"] {
    grid-template-columns: 1fr !important;
  }

  .lbn-auth-modal-card {
    width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 24px) !important;
    overflow-y: auto !important;
    padding: 22px 18px !important;
  }
}

/* Feature presentation migrated from component-local styles. */
.lbn-tutorial-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);grid-template-areas:'lessons lessons' 'board detail';gap:14px 18px;align-items:start}.lbn-tutorial-board{display:contents}.lbn-tutorial-board>div{grid-area:board;min-width:0}.lbn-tutorial-board>article{grid-area:detail;margin-top:0!important}.lbn-tutorial-list{grid-area:lessons;min-width:0}.lbn-tutorial-stage{position:relative;overflow:hidden;border:1px solid var(--lbn-border-soft);border-radius:12px;background:var(--lbn-bg-panel);padding:clamp(6px,2vw,14px)}.lbn-tutorial-stage-label{position:absolute;z-index:2;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--lbn-border-soft);border-radius:999px;background:color-mix(in srgb,var(--lbn-bg-panel) 94%,transparent);color:var(--lbn-text-muted);font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.lbn-tutorial-stage-label::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--lbn-status-success)}.lbn-tutorial-rolodex{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;height:82px;border:1px solid var(--lbn-border-soft);border-radius:11px;background:var(--lbn-bg-panel);overflow:hidden}.lbn-tutorial-arrow{display:grid;place-items:center;border:0;background:var(--lbn-bg-panel-alt);color:var(--lbn-text-main);font-size:24px;cursor:pointer}.lbn-tutorial-arrow:first-child{border-right:1px solid var(--lbn-border-soft)}.lbn-tutorial-arrow:last-child{border-left:1px solid var(--lbn-border-soft)}.lbn-tutorial-arrow:hover:not(:disabled),.lbn-tutorial-arrow:focus-visible{background:var(--lbn-accent-gold);color:#151515;outline:0}.lbn-tutorial-arrow:disabled{opacity:.28;cursor:default}.lbn-tutorial-card{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;box-sizing:border-box;padding:9px 14px;text-align:center;overflow:hidden}.lbn-tutorial-card strong{color:var(--lbn-text-main);font-size:var(--lbn-text-sm);line-height:1.25}.lbn-tutorial-card span{display:-webkit-box;margin-top:4px;color:var(--lbn-text-muted);font-size:var(--lbn-text-xs);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.lexiturn-demo-path{stroke-dasharray:340;stroke-dashoffset:340;animation:lexiturn-path 3.6s ease-in-out infinite}.lexiturn-demo-flip{transform-box:fill-box;transform-origin:center;animation:lexiturn-demo-flip 3.4s cubic-bezier(.2,.75,.25,1) infinite}.lexiturn-demo-score{animation:lexiturn-score 2.2s ease-in-out infinite}@keyframes lexiturn-path{0%,12%{stroke-dashoffset:340;opacity:.15}62%,84%{stroke-dashoffset:0;opacity:.8}100%{stroke-dashoffset:0;opacity:0}}@keyframes lexiturn-demo-flip{0%,22%,100%{transform:scaleX(1)}48%{transform:scaleX(.05)}72%{transform:scaleX(1)}}@keyframes lexiturn-demo-score{0%,100%{opacity:.5}45%{opacity:1}}@media(max-width:900px){.lbn-tutorial-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:'lessons' 'board' 'detail';gap:12px}.lbn-tutorial-board svg{max-height:min(72vh,620px)}}@media(max-width:480px){.lbn-tutorial-rolodex{grid-template-columns:42px minmax(0,1fr) 42px;height:82px}.lbn-tutorial-card{padding:8px}.lbn-tutorial-card span{font-size:var(--lbn-text-xs)}.lbn-tutorial-stage-label{top:8px;left:8px}}@media(prefers-reduced-motion:reduce){.lexiturn-demo-path,.lexiturn-demo-flip,.lexiturn-demo-score{animation:none!important;stroke-dashoffset:0}}

@keyframes lexiturn-score{0%,100%{opacity:.5}45%{opacity:1}}

.lexiturn-page-stack{width:min(100%,1088px);margin-inline:auto}.lexiturn-play-layout{display:grid;grid-template-columns:minmax(170px,220px) minmax(360px,620px) minmax(170px,220px);gap:14px;align-items:stretch;width:100%}.lexiturn-side-card{border:1px solid var(--lbn-border-soft);background:var(--lbn-bg-panel);border-radius:12px;padding:16px;min-width:0}.lexiturn-left-rail{display:flex;flex-direction:column;gap:14px}.lexiturn-rail-credit{margin-top:auto;padding-top:14px;border-top:1px solid var(--lbn-border-soft);color:var(--lbn-text-muted);font-size:var(--lbn-text-xs);line-height:1.45}.lexiturn-rail-credit a{color:inherit;text-decoration:underline}.lexiturn-board-card{border:1px solid var(--lbn-border-soft);background:var(--lbn-bg-panel);border-radius:12px;padding:clamp(8px,2vw,18px);min-width:0}.lexiturn-control-bar{display:flex;gap:8px;align-items:stretch;border:1px solid var(--lbn-border-soft);background:var(--lbn-bg-panel);border-radius:10px;padding:8px;width:100%;box-sizing:border-box}.lexiturn-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:1;min-width:0}.lexiturn-mode-option{min-width:0;min-height:48px;padding:6px 12px;border:1px solid var(--lbn-border-soft);border-radius:9px;background:var(--lbn-bg-panel);color:var(--lbn-text-main);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.lexiturn-mode-option:first-child{border-color:var(--lbn-accent-blue);background:color-mix(in srgb,var(--lbn-accent-blue) 12%,var(--lbn-bg-panel))}.lexiturn-mode-option strong{display:block;font-size:var(--lbn-text-sm)}.lexiturn-mode-option>span>span{display:block;margin-top:2px;color:var(--lbn-text-muted);font-size:var(--lbn-text-xs)}.lexiturn-mode-option b{flex:0 0 auto;font-size:var(--lbn-text-lg)}.lexiturn-result-slot{margin-top:8px;display:flex;align-items:stretch}.lexiturn-result-notice{width:100%;box-sizing:border-box;padding:10px 13px;border:1px solid;border-radius:9px;display:grid;align-content:center;gap:2px;animation:lexiturn-result .2s ease-out}.lexiturn-result-notice strong{font-size:var(--lbn-text-sm)}.lexiturn-result-notice span{font-size:var(--lbn-text-xs)}.lexiturn-standalone-shell{min-height:100dvh;background:var(--lbn-bg-main);display:flex;flex-direction:column}.lexiturn-standalone-brand{height:38px;display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--lbn-border-soft);background:var(--lbn-bg-panel)}.lexiturn-standalone-brand a{color:var(--lbn-text-main);font-size:var(--lbn-text-sm);font-weight:700;letter-spacing:.14em;text-decoration:none}.lexiturn-standalone-page{flex:1;min-width:0}.lexiturn-standalone-credit{padding:9px 12px;text-align:center;color:var(--lbn-text-muted);font-size:var(--lbn-text-xs)}.lexiturn-standalone-credit a{color:inherit}.lexiturn-standalone-page .lbn-page-frame{padding-top:10px}.lexiturn-standalone-page .lbn-page-header{margin-bottom:10px}@media(max-width:980px){.lexiturn-play-layout{grid-template-columns:1fr 1fr}.lexiturn-board-card{grid-column:1/-1;grid-row:1}.lexiturn-side-card{min-height:190px}}@media(max-width:620px){.lexiturn-play-layout{grid-template-columns:1fr;gap:8px}.lexiturn-board-card,.lexiturn-side-card{grid-column:1}.lexiturn-side-card{min-height:0}.lexiturn-control-bar,.lexiturn-mode-grid{gap:5px}.lexiturn-control-bar{padding:5px}.lexiturn-mode-option{min-height:44px;padding:5px 7px}.lexiturn-mode-option strong{font-size:var(--lbn-text-xs)}.lexiturn-mode-option>span>span{display:none}.lexiturn-mode-option b{font-size:var(--lbn-text-sm)}.lexiturn-board-card{padding:5px}.lexiturn-board-card>svg{display:block;width:auto;max-width:100%;max-height:calc(100vh - 230px);margin:0 auto}.lexiturn-standalone-page .lbn-page-frame{padding:6px 8px!important}.lexiturn-standalone-page .lbn-page-header{margin-bottom:6px!important}.lexiturn-standalone-page .lbn-page-header p{display:none}}

.lexiturn-board-card svg,.lexiturn-board-card svg *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.lexiturn-tile-face{transform-box:fill-box;transform-origin:center;transition:filter 120ms ease,opacity 120ms ease}.lexiturn-tile:hover .lexiturn-tile-face{filter:brightness(1.08)}.lexiturn-flip{animation:lexiturn-flip .48s cubic-bezier(.2,.75,.25,1)}.lexiturn-result{transform-box:fill-box;transform-origin:center;animation:lexiturn-result .34s cubic-bezier(.2,.8,.3,1)}@keyframes lexiturn-flip{0%{transform:scaleX(1)}45%{transform:scaleX(.06)}55%{transform:scaleX(.06)}100%{transform:scaleX(1)}}@keyframes lexiturn-result{0%{opacity:0;transform:translateY(-8px) scale(.97)}100%{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.lexiturn-tile-face{transition:none}.lexiturn-flip,.lexiturn-result{animation:none}}

.lexiturn-howto { display: grid; grid-template-rows: auto minmax(0,1fr) auto auto; gap: 8px; height: 100%; box-sizing: border-box; color: var(--lbn-text-main); font-family: var(--lbn-font-ui); }
.lexiturn-howto h2 { margin: 0; color: var(--lbn-accent-gold); font-size: 22px; line-height: 1.2; text-align: center; text-transform: uppercase; }
.lexiturn-howto-scroll { min-height: 0; padding: 2px 8px 2px 4px; overflow-y: auto; overscroll-behavior: contain; color: var(--lbn-text-muted); font-size: 16px; line-height: 1.55; scrollbar-gutter: stable; touch-action: pan-y; user-select: text; -webkit-user-select: text; }
.lexiturn-howto-scroll h3 { margin: 16px 0 4px; color: var(--lbn-text-main); font-size: 17px; text-transform: uppercase; }
.lexiturn-howto-scroll p { margin: 0 0 12px; }
.lexiturn-howto-choose { margin: 0; padding: 9px 10px; border: 1px solid var(--lbn-accent-gold); border-radius: 8px; background: color-mix(in srgb,var(--lbn-accent-gold) 12%,var(--lbn-bg-panel)); color: var(--lbn-text-main); font-size: 15px; font-weight: 850; line-height: 1.3; text-align: center; }
.lexiturn-howto .lexiturn-attribution { padding-top: 9px; border-top: 1px solid var(--lbn-border-soft); font-size: 12px; line-height: 1.35; }
.lexiturn-howto .lexiturn-attribution p { margin-top: 5px; padding-top: 5px; }
.lexiturn-leaderboard-compact-list li.is-current { margin-top: 3px; padding: 4px 3px; border-top: 1px dashed var(--lbn-accent-gold); border-radius: 4px; background: color-mix(in srgb,var(--lbn-accent-gold) 10%,transparent); }
.lexiturn-mode-option { position: relative; min-height: 58px; border-width: 2px; box-shadow: 0 5px 14px rgba(0,0,0,.18); transition: transform var(--lbn-duration-fast) var(--lbn-ease-standard), border-color var(--lbn-duration-fast) var(--lbn-ease-standard), box-shadow var(--lbn-duration-fast) var(--lbn-ease-standard); }
.lexiturn-mode-option:first-child { background: linear-gradient(135deg,color-mix(in srgb,var(--lbn-accent-blue) 24%,var(--lbn-bg-panel)),var(--lbn-bg-panel)); }
.lexiturn-mode-option:last-child { border-color: var(--lbn-accent-gold); background: linear-gradient(135deg,color-mix(in srgb,var(--lbn-accent-gold) 18%,var(--lbn-bg-panel)),var(--lbn-bg-panel)); }
.lexiturn-mode-option:hover:not(:disabled),.lexiturn-mode-option:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.28); }
.lexiturn-mode-option b { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--lbn-action); color: var(--lbn-text-inverse); font-size: 13px; }
@media(max-width:620px){.lexiturn-mode-option{min-height:54px;padding:7px 9px}.lexiturn-mode-option strong{font-size:var(--lbn-text-sm)}.lexiturn-mode-option>span>span{display:block;font-size:11px}.lexiturn-howto-scroll{font-size:17px;line-height:1.6}.lexiturn-howto-choose{font-size:16px}.lexiturn-howto .lexiturn-attribution{font-size:13px}}

.sopwith-tutorial-document{display:grid;gap:18px;max-width:960px;margin:0 auto 28px}.sopwith-tutorial-chapter{display:grid;grid-template-columns:minmax(220px,340px) minmax(0,1fr);gap:20px;align-items:center;padding:16px;border:1px solid var(--lbn-border-soft);border-radius:14px;background:var(--lbn-bg-panel)}.sopwith-tutorial-chapter:nth-child(even) figure{order:2}.sopwith-tutorial-chapter figure{margin:0;min-width:0}.sopwith-tutorial-chapter img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#12392f}.sopwith-tutorial-chapter h3{margin:0 0 7px;color:var(--lbn-text-main);font-size:var(--lbn-text-lg)}.sopwith-tutorial-chapter p{margin:0 0 10px;color:var(--lbn-text-muted);font-size:var(--lbn-text-sm);line-height:1.55}.sopwith-example-button{border:1px solid var(--lbn-border-soft);border-radius:7px;background:var(--lbn-bg-panel-alt);color:var(--lbn-text-main);padding:8px 10px;font-weight:700;cursor:pointer}.sopwith-practice{max-width:960px;margin:0 auto;padding:16px;border:1px solid var(--lbn-border-soft);border-radius:16px;background:var(--lbn-bg-panel)}.sopwith-practice>h2{margin:0 0 5px;color:var(--lbn-text-main);font-size:22px}.sopwith-practice>p{margin:0 0 14px;color:var(--lbn-text-muted);font-size:var(--lbn-text-sm)}@media(max-width:760px){.sopwith-tutorial-chapter{grid-template-columns:minmax(0,1fr)}.sopwith-tutorial-chapter:nth-child(even) figure{order:0}.sopwith-tutorial-chapter figure{max-width:330px;margin:0 auto}.sopwith-practice{padding:11px}}

.sopwith-tutorial-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);grid-template-areas:'lessons lessons' 'board detail';gap:14px 18px;align-items:start}.sopwith-board-column{display:contents}.sopwith-board-stage{grid-area:board;min-width:0}.sopwith-board-column>article{grid-area:detail;margin-top:0!important}.sopwith-lesson-list{grid-area:lessons;min-width:0}.sopwith-lesson-rolodex{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;height:82px;border:1px solid var(--lbn-border-soft);border-radius:11px;background:var(--lbn-bg-panel);overflow:hidden}.sopwith-lesson-arrow{display:grid;place-items:center;border:0;background:var(--lbn-bg-panel-alt);color:var(--lbn-text-main);font-size:24px;cursor:pointer}.sopwith-lesson-arrow:first-child{border-right:1px solid var(--lbn-border-soft)}.sopwith-lesson-arrow:last-child{border-left:1px solid var(--lbn-border-soft)}.sopwith-lesson-arrow:hover:not(:disabled),.sopwith-lesson-arrow:focus-visible{background:var(--lbn-accent-gold);color:#151515;outline:0}.sopwith-lesson-arrow:disabled{opacity:.28;cursor:default}.sopwith-lesson-card{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;box-sizing:border-box;padding:9px 14px;text-align:center;overflow:hidden}.sopwith-lesson-card strong{color:var(--lbn-text-main);font-size:var(--lbn-text-sm);line-height:1.25}.sopwith-lesson-card span{display:-webkit-box;margin-top:4px;color:var(--lbn-text-muted);font-size:var(--lbn-text-xs);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}@media(max-width:900px){.sopwith-tutorial-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:'lessons' 'board' 'detail';gap:12px}.sopwith-board-column svg{max-height:min(82vh,600px)}}@media(max-width:480px){.sopwith-tutorial-layout{gap:10px}.sopwith-lesson-rolodex{grid-template-columns:42px minmax(0,1fr) 42px;height:82px}.sopwith-lesson-card{padding:8px}.sopwith-lesson-card span{font-size:var(--lbn-text-xs)}}

.sopwith-tutorial-camera text{font-family:var(--lbn-font-ui)}.sopwith-tutorial-camera text[font-size='7'],.sopwith-tutorial-camera text[font-size='8'],.sopwith-tutorial-camera text[font-size='9'],.sopwith-tutorial-camera text[font-size='10']{font-size:var(--lbn-text-2xs)}.sopwith-tutorial-route{stroke-dasharray:12 8;animation:sopwith-route 2.8s linear infinite}.sopwith-tutorial-plane{transform-box:fill-box;transform-origin:center;animation:sopwith-plane-route 4.2s cubic-bezier(.4,0,.2,1) infinite}.sopwith-tutorial-shot{stroke-dasharray:8 5;animation:sopwith-shot 2.2s ease-in-out infinite}.sopwith-tutorial-impact{transform-box:fill-box;transform-origin:center;animation:sopwith-impact 2.2s ease-out infinite}.sopwith-tutorial-damage{animation:sopwith-damage 2.2s ease-out infinite}.sopwith-cloud-damage{animation:sopwith-cloud-damage 6s ease-out infinite}.sopwith-cloud-exit{animation:sopwith-cloud-exit 6s ease-out infinite}.sopwith-tutorial-cloud{animation:sopwith-cloud-drift 5s ease-in-out infinite alternate}.sopwith-tutorial-step{opacity:.28;animation:sopwith-step 4.8s ease-in-out infinite}.sopwith-tutorial-step-2{animation-delay:1.6s}.sopwith-tutorial-step-3{animation-delay:3.2s}.sopwith-tutorial-paused *{animation-play-state:paused!important}@keyframes sopwith-route{to{stroke-dashoffset:-40}}@keyframes sopwith-plane-route{0%,12%{transform:translate(-92px,74px) rotate(-60deg)}38%{transform:translate(-18px,18px) rotate(-30deg)}65%{transform:translate(48px,-38px) rotate(0deg)}88%,100%{transform:translate(86px,-104px) rotate(30deg)}}@keyframes sopwith-shot{0%,18%{stroke-dashoffset:80;opacity:0}35%,68%{stroke-dashoffset:0;opacity:1}82%,100%{stroke-dashoffset:-80;opacity:0}}@keyframes sopwith-impact{0%,42%{transform:scale(.25);opacity:0}55%{transform:scale(1.15);opacity:1}76%,100%{transform:scale(1.55);opacity:0}}@keyframes sopwith-damage{0%,40%{opacity:0;transform:translateY(5px)}52%,76%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-8px)}}@keyframes sopwith-cloud-damage{0%,30%,72%,100%{opacity:0;transform:translateY(5px)}40%,64%{opacity:1;transform:translateY(0)}}@keyframes sopwith-cloud-exit{0%,72%{opacity:0;transform:translateY(5px)}84%,96%{opacity:1;transform:translateY(0)}100%{opacity:0}}@keyframes sopwith-cloud-drift{to{transform:translate(24px,-14px)}}@keyframes sopwith-step{0%,25%,100%{opacity:.28;transform:scale(.96)}8%,18%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce) { .sopwith-tutorial-camera { transition:none!important }.sopwith-tutorial-route,.sopwith-tutorial-plane,.sopwith-tutorial-shot,.sopwith-tutorial-impact,.sopwith-tutorial-damage,.sopwith-cloud-damage,.sopwith-cloud-exit,.sopwith-tutorial-cloud,.sopwith-tutorial-step{animation:none!important} }

@keyframes pulse-low-time { 0% { box-shadow: 0 0 0 0 rgba(169,21,44,0.35); } 70% { box-shadow: 0 0 0 10px rgba(169,21,44,0.0); } 100% { box-shadow: 0 0 0 0 rgba(169,21,44,0.0); } }
                                        .match-board-svg-fit > svg { display:block !important; width:100% !important; height:100% !important; max-width:100% !important; max-height:100% !important; object-fit:contain; }
                                        .scrabble-board-svg-fit > svg { height:auto !important; aspect-ratio:640 / 460; object-fit:contain; }
                                        .chess-board-svg-fit > svg { height:auto !important; aspect-ratio:1 / 1; object-fit:fill; }
                                        .sopwith-board-svg-fit > svg { height:auto !important; aspect-ratio:1 / 1; object-fit:fill; }
                                        .botarena-board-svg-fit > svg { height:auto !important; aspect-ratio:1 / 1; object-fit:fill; }
                                        .reversi-board-svg-fit > svg { height:auto !important; object-fit:fill; }
                                        .stone-board-svg-fit > svg { height:auto !important; aspect-ratio:1 / 1; object-fit:fill; }
                                        .match-board-surface:focus-visible { outline:2px solid var(--lbn-attention-color); outline-offset:2px; }
                                        .match-board-surface [data-keyboard-current="true"] { outline:3px solid var(--lbn-attention-color); outline-offset:-3px; filter:drop-shadow(0 0 5px color-mix(in srgb,var(--lbn-attention-color) 72%,transparent)); }
                                        .backgammon-board-svg-fit > svg { height:auto !important; object-fit:contain; }
                                        .chess-game-info { margin-top:10px; padding:10px 12px; border:1px solid var(--lbn-border-soft); border-radius:8px; background:var(--lbn-bg-panel-alt); color:var(--lbn-text-main); }
                                        .chess-action-panel { margin-top:var(--lbn-space-4); font-family:var(--lbn-font-ui); }
                                        .chess-action-panel .lbn-button-group { display:flex; flex-wrap:wrap; gap:var(--lbn-space-2); }
                                        .match-player-status { display:flex; align-items:baseline; gap:var(--lbn-space-2); min-width:0; white-space:normal; flex-wrap:wrap; font-size:var(--lbn-text-sm); line-height:var(--lbn-leading-body); }
                                        .match-player-status > span { display:inline-flex; align-items:baseline; gap:var(--lbn-space-1); min-width:0; }
                                        .match-player-status > span::before { content:'·'; color:var(--lbn-text-muted); margin-right:var(--lbn-space-1); }
                                        .match-player-status small { color:var(--lbn-text-muted); font-size:var(--lbn-text-xs); }
                                        .match-player-status strong { font-size:var(--lbn-text-sm); overflow-wrap:anywhere; }
                                        .match-player-status__heading { font-size:var(--lbn-text-xs); text-transform:uppercase; letter-spacing:.04em; }
                                        .match-player-status__turn strong { color:var(--lbn-accent-gold); }
                                        .chess-game-info__top { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
                                        .chess-game-info__clocks { display:flex; gap:8px; }
                                        .chess-live-clocks { min-height:52px; margin-top:8px; padding:8px 10px; display:flex; justify-content:flex-end; align-items:center; gap:8px; border:1px solid var(--lbn-border-soft); border-radius:8px; background:var(--lbn-bg-panel-alt); }
                                        .chess-live-clocks__control { margin-right:auto; color:var(--lbn-text-muted); font-size:var(--lbn-text-xs); }
                                        .chess-clock { display:grid; gap:2px; min-width:92px; padding:7px 10px; border:1px solid var(--lbn-border-soft); border-radius:8px; background:var(--lbn-bg-panel); }
                                        .chess-clock span { color:var(--lbn-text-muted); font-size:var(--lbn-text-xs); }
                                        .chess-clock strong { width:5.5ch; font-family:var(--lbn-font-mono); font-size:var(--lbn-text-md); font-variant-numeric:tabular-nums; }
                                        .chess-clock.is-active { background:#f4d97a; color:#18202d; }
                                        .chess-clock.is-active span { color:#4d4633; }
                                        .chess-game-info h3 { margin:var(--lbn-space-4) 0 var(--lbn-space-2); font-size:var(--lbn-text-xs); text-transform:uppercase; letter-spacing:.06em; color:var(--lbn-text-muted); }
                                        .chess-move-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:6px; }
                                        .chess-move-row { display:grid; grid-template-columns:28px 1fr 1fr; gap:var(--lbn-space-2); padding:var(--lbn-space-2); border:1px solid var(--lbn-border-soft); border-radius:var(--lbn-radius-sm); background:var(--lbn-bg-panel); font-size:var(--lbn-text-sm); }
                                        .chess-move-row span, .chess-move-list__empty { color:var(--lbn-text-muted); }
                                        @media (max-width:640px) { .chess-game-info { padding:9px 10px; } .chess-live-clocks { justify-content:space-between; } .chess-live-clocks__control { display:none; } .chess-clock { min-width:84px; } }

.sopwith-order-select{display:block;width:100%;min-width:0;height:36px;box-sizing:border-box;border:1px solid rgba(148,163,184,.48);border-radius:var(--lbn-radius-sm);background:rgba(17,26,41,.88);color:#f7ead5;color-scheme:dark;font:600 var(--lbn-text-xs)/1.2 var(--lbn-font-ui);padding:0 28px 0 9px;cursor:pointer;pointer-events:auto;appearance:auto;-webkit-appearance:menulist;}
                         .sopwith-order-select:hover{border-color:#f5b83d;}
                         .sopwith-order-select:focus-visible{outline:var(--lbn-focus-ring);outline-offset:var(--lbn-focus-offset);}
                         .sopwith-order-select:disabled{cursor:not-allowed;opacity:.55;}
                         .sopwith-order-select option{background:#111a29;color:#f7ead5;font-size:var(--lbn-text-xs);font-weight:600;}
                         .sopwith-order-select option:disabled{color:#8290a3;}
                         .sopwith-pilot-name-input{display:block;width:100%;height:36px;box-sizing:border-box;border:1px solid rgba(148,163,184,.48);border-radius:var(--lbn-radius-sm);background:rgba(17,26,41,.88);color:#f7ead5;font:600 var(--lbn-text-xs)/1.2 var(--lbn-font-ui);padding:0 9px;pointer-events:auto;}
                         .sopwith-pilot-name-input:focus-visible{outline:var(--lbn-focus-ring);outline-offset:var(--lbn-focus-offset);}
                         @media(max-width:600px){.sopwith-order-panel{max-width:100%;overflow-x:hidden!important;padding-left:8px!important;padding-right:8px!important}.sopwith-order-panel *{box-sizing:border-box;min-width:0;max-width:100%}.sopwith-order-select,.sopwith-pilot-name-input{width:100%!important;height:34px;font-size:var(--lbn-text-xs)}.sopwith-order-grid{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr)!important;column-gap:5px!important;row-gap:6px!important}.sopwith-order-heading{display:none}.sopwith-order-step{grid-column:auto!important;margin-top:0!important;font-size:var(--lbn-text-xs)!important}.sopwith-order-submit{width:100%!important;height:38px!important;font-size:var(--lbn-text-xs)!important}.sopwith-pilot-editor{grid-template-columns:minmax(0,1fr) auto!important}.sopwith-pilot-editor button{width:auto;height:34px!important}}

.dip-shell{font-family:var(--lbn-font-ui);color:var(--lbn-color-text-primary)}
                .dip-section{min-width:0;font-family:var(--lbn-font-ui)}
                .dip-section h3,.dip-section summary{font-family:var(--lbn-font-display)}
                .dip-section-map svg{display:block;width:100%;height:auto}
                .dip-section button,.dip-section select,.dip-section input,.dip-section textarea{font-family:var(--lbn-font-ui)}
                .dip-section-info{line-height:var(--lbn-leading-normal)}
                .intimate-callout{display:flex;gap:10px;align-items:flex-start;margin:8px 0 12px;padding:10px 12px;border:1px solid rgba(194,156,89,.35);border-radius:9px;background:linear-gradient(135deg,rgba(83,57,37,.38),rgba(35,31,51,.52));color:#dfd3c0;font-size:var(--lbn-text-xs);line-height:1.5;}
                .intimate-seal{flex:none;padding:3px 7px;border:1px solid #bd8d57;border-radius:99px;color:#f4cc91;font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.12em;}
                .intimate-preference-overlay{position:absolute;z-index:58;top:44px;right:10px;width:min(360px,calc(100% - 20px));max-height:calc(100% - 56px);overflow:auto;padding:12px;border:1px solid rgba(213,174,105,.42);border-radius:12px;background:rgba(8,15,26,.94);box-shadow:0 14px 34px rgba(0,0,0,.42);backdrop-filter:blur(7px);box-sizing:border-box;pointer-events:auto;line-height:normal}
                .intimate-preference-overlay h3{margin:0 0 7px;color:#f7ead5;font-family:var(--lbn-font-display);font-size:var(--lbn-text-md);font-weight:700}.intimate-preference-help{margin:0 0 9px;color:#bdc9d8;font-size:var(--lbn-text-xs);line-height:1.4}
                .intimate-ranking{display:grid;gap:5px;}
                .intimate-rank-row{display:grid;grid-template-columns:32px 28px minmax(110px,1fr);gap:7px;align-items:center;padding:6px;border-radius:8px;background:rgba(4,10,19,.68);border:1px solid rgba(255,255,255,.11);}
                .intimate-rank-row.is-dragging{border-color:#d5ae69;background:rgba(63,47,28,.72)}.intimate-rank-handle{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#aebdd0;font-size:var(--lbn-text-lg);font-weight:700;text-align:center;letter-spacing:-3px;cursor:grab;touch-action:none}.intimate-rank-handle:active{cursor:grabbing;background:rgba(255,255,255,.08)}.intimate-rank-country{color:#f1f4f8;font-size:var(--lbn-text-xs);font-weight:700}
                .intimate-rank-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#25344a;color:#f4d49d;font-weight:700;}
                .intimate-bid-card input{height:36px;border:1px solid #45566e;border-radius:7px;background:#08111e;color:#f5f7fa;padding:0 10px;font-weight:700;}
                .intimate-auction-head{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.intimate-auction-head>div{min-width:145px;padding:9px 12px;border-radius:9px;background:#091321;border:1px solid rgba(255,255,255,.1)}.intimate-auction-head span{display:block;color:#93a4ba;font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.1em}.intimate-auction-head strong{display:block;margin-top:2px;color:#f2d291;font-size:22px}.intimate-auction-head strong.danger{color:#ff8b7b}
                .intimate-bid-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.intimate-bid-card{display:grid;grid-template-columns:10px 1fr 64px;gap:8px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.11);border-radius:9px;background:rgba(5,11,20,.55);color:#edf1f6;font-size:var(--lbn-text-xs)}.intimate-power-dot{width:9px;height:9px;border-radius:50%;background:var(--power-color);box-shadow:0 0 10px var(--power-color)}.intimate-bid-card input{width:64px;text-align:right}.intimate-submit{width:100%;margin-top:12px;min-height:40px;font-weight:700;letter-spacing:.02em}
                .intimate-command-board{margin:0 0 10px;padding:11px 12px;border:1px solid rgba(201,166,101,.3);border-radius:10px;background:linear-gradient(135deg,rgba(38,26,43,.94),rgba(9,19,32,.95));box-shadow:inset 0 1px rgba(255,255,255,.04)}.intimate-command-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.intimate-command-title>div:first-child span,.intimate-credit-chip span{display:block;color:#b79e77;font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.13em}.intimate-command-title>div:first-child strong{display:block;color:#f7ead5;font-family:var(--lbn-font-display);font-size:var(--lbn-text-md)}.intimate-credit-pair{display:flex;gap:6px}.intimate-credit-chip{min-width:70px;padding:5px 10px;text-align:center;border:1px solid rgba(221,183,111,.35);border-radius:8px;background:rgba(7,12,20,.55)}.intimate-credit-chip.opponent{border-color:rgba(134,154,183,.25)}.intimate-credit-chip strong{display:block;color:#f1cc87;font-size:var(--lbn-text-lg)}.intimate-credit-chip.opponent strong{color:#bac7d8}.intimate-control-strip{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:5px}.intimate-control-card{display:grid;grid-template-columns:9px 1fr;align-items:center;gap:5px;padding:6px;border:1px solid rgba(255,255,255,.09);border-radius:7px;background:rgba(4,9,17,.48);color:#dce4ef}.intimate-control-card.intimate-home{border-color:color-mix(in srgb,var(--power-color) 60%,transparent);box-shadow:inset 0 0 14px color-mix(in srgb,var(--power-color) 12%,transparent)}.intimate-control-card b{font-size:var(--lbn-text-xs)}.intimate-control-card small{grid-column:1/3;color:#94a3b8;font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.08em;white-space:nowrap}.intimate-auction-note{margin-top:8px;color:#aebdd0;font-size:var(--lbn-text-xs)}.intimate-auction-note.danger{color:#ff9c8e}
                .intimate-ledger{margin-top:8px;border-top:1px solid rgba(255,255,255,.08);padding-top:7px;color:#adbbcd;font-size:var(--lbn-text-xs)}.intimate-ledger summary{cursor:pointer;color:#d9c29a;font-weight:700}.intimate-ledger-head,.intimate-ledger-row{display:grid;grid-template-columns:minmax(90px,1fr) 48px 48px 72px;gap:6px;align-items:center;padding:4px 2px}.intimate-ledger-head{margin-top:5px;color:#718196;font-size:var(--lbn-text-xs);font-weight:700;letter-spacing:.08em}.intimate-ledger-row{border-top:1px solid rgba(255,255,255,.045)}.intimate-ledger-row strong{color:#e6ebf2}.intimate-ledger-row em{color:#c9ad7c;font-style:normal;font-weight:700}
                .intimate-tiebreak-notice{display:flex;gap:9px;align-items:center;margin-top:8px;padding:8px 10px;border:1px solid rgba(238,166,87,.38);border-radius:8px;background:rgba(103,55,28,.32);color:#ead8bf;font-size:var(--lbn-text-xs);line-height:1.4}.intimate-tiebreak-notice strong{flex:none;color:#ffbf72;font-size:var(--lbn-text-xs);letter-spacing:.08em}
                .mach-order-ledger{display:grid;gap:5px;margin:8px 0}.mach-order-row{display:grid;grid-template-columns:22px minmax(135px,1fr) minmax(120px,1fr) 58px 26px;gap:7px;align-items:center;padding:7px 8px;border:1px solid rgba(224,184,111,.18);border-radius:8px;background:rgba(6,12,21,.58);font-size:var(--lbn-text-xs)}.mach-order-row>span:first-child{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#302719;color:#efca82;font-weight:700}.mach-order-row strong{color:#f2e5ce}.mach-order-row em{color:#dbbc82;font-style:normal;font-weight:700;text-align:right}.mach-order-remove{border:0;background:none;color:#df8f8f;font-size:var(--lbn-text-lg);cursor:pointer}.mach-order-remove:disabled{opacity:.3;cursor:default}.mach-order-empty{margin:8px 0;padding:10px;border:1px dashed rgba(255,255,255,.14);border-radius:8px;color:#8797aa;text-align:center;font-size:var(--lbn-text-xs)}
                @media (max-width: 820px){
                    .intimate-preference-overlay{top:42px;right:7px;width:min(330px,calc(100% - 14px));max-height:calc(100% - 50px);padding:10px}.intimate-rank-row{grid-template-columns:28px 27px minmax(90px,1fr);gap:5px}.intimate-bid-grid{grid-template-columns:1fr}
                    .dip-concede{grid-template-columns:1fr!important}.dip-concede button{width:100%}
                    .intimate-control-strip{grid-template-columns:repeat(4,1fr)}
                    .mach-order-row{grid-template-columns:22px minmax(0,1fr) 54px 26px}.mach-order-row>span:nth-child(3){grid-column:2/5;color:#9eacbd;overflow-wrap:anywhere}.mach-order-row em{grid-column:3}.mach-order-row button{grid-column:4}
                }

.dip-order-select{height:32px;min-width:72px;border-radius:6px;border:1px solid rgba(246,224,180,0.24);background:#111a29;color:#f7ead5;font:650 var(--lbn-text-xs)/1 var(--lbn-font-ui);box-shadow:inset 0 1px 0 rgba(255,255,255,0.06);padding:0 24px 0 9px;color-scheme:dark;accent-color:#8fbeef;}
                        .dip-order-select-unit{min-width:88px;}
                        .dip-order-select-kind{min-width:74px;}
                        .dip-order-select-region{min-width:64px;}
                        .dip-order-select option{background:#111a29;color:#f7ead5;font-size:var(--lbn-text-xs);font-weight:600;}
                        .dip-order-select option:checked{background:#275b8d;color:#ffffff;}
                        .dip-order-select option:hover{background:#20354f;color:#ffffff;}
.dip-order-select:focus-visible{outline:var(--lbn-focus-ring);outline-offset:var(--lbn-focus-offset);border-color:var(--lbn-color-accent);}

.breaking-away-panel{width:100%;margin-top:var(--lbn-space-2);padding:12px;cursor:default}.breaking-away-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.breaking-away-help{margin:3px 0;color:var(--lbn-text-muted);font-size:var(--lbn-text-xs)}.breaking-away-teams{display:flex;gap:6px;flex-wrap:wrap}.breaking-away-team{padding:5px 8px;border-left:4px solid var(--breaking-away-team-color);border-radius:5px;background:var(--lbn-bg-panel-alt);font-size:var(--lbn-text-xs)}.breaking-away-team-1{--breaking-away-team-color:#ef4444}.breaking-away-team-2{--breaking-away-team-color:#3b82f6}.breaking-away-team-3{--breaking-away-team-color:#22c55e}.breaking-away-team-4{--breaking-away-team-color:#f59e0b}.breaking-away-team-5{--breaking-away-team-color:#a855f7}.breaking-away-team-6{--breaking-away-team-color:#14b8a6}.breaking-away-rider-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;margin-top:12px}.breaking-away-rider-card{display:grid;gap:5px;border:1px solid var(--lbn-border-soft);border-radius:8px;padding:8px}.breaking-away-values{display:flex;gap:4px}.breaking-away-submit{display:flex;justify-content:flex-end;margin-top:10px}.breaking-away-results{margin-top:10px}@media(max-width:760px){.breaking-away-rider-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:430px){.breaking-away-rider-grid{grid-template-columns:1fr}.breaking-away-values input{min-width:0;width:100%}}

.lexiturn-recoverable-error{width:100%;display:grid;gap:8px}.lexiturn-recoverable-error__actions{display:flex;flex-wrap:wrap;gap:8px}
/* Diplomacy microsite ------------------------------------------------------ */
.dip-site{--dip-ink:#14231e;--dip-paper:#f1eadc;--dip-gold:#b58a45;--dip-red:#923e32;min-height:100vh;background:var(--dip-paper);color:var(--dip-ink);font-family:Georgia,'Times New Roman',serif}
.dip-site *{box-sizing:border-box}.dip-header{min-height:82px;padding:14px clamp(20px,4vw,64px);display:flex;align-items:center;gap:30px;border-bottom:1px solid rgba(20,35,30,.2);background:rgba(241,234,220,.96);position:relative;z-index:5}.dip-brand{display:grid;line-height:1;text-decoration:none;color:var(--dip-ink);min-width:145px}.dip-brand-main{font-size:1.08rem;font-weight:800;letter-spacing:.17em}.dip-brand-sub{font-family:system-ui,sans-serif;font-size:.68rem;letter-spacing:.08em;margin-top:5px;color:#617069}.dip-nav{display:flex;align-items:center;justify-content:center;gap:clamp(15px,2.3vw,34px);flex:1}.dip-nav a,.dip-account a{color:var(--dip-ink);text-decoration:none;font-family:system-ui,sans-serif;font-size:.82rem;font-weight:650}.dip-nav a{padding:8px 0;border-bottom:2px solid transparent}.dip-nav a:hover,.dip-nav a.dip-nav-active{border-color:var(--dip-red)}.dip-sign-in,.dip-account button{border:1px solid var(--dip-ink);background:transparent;color:var(--dip-ink);padding:9px 14px;font:650 .78rem system-ui,sans-serif;cursor:pointer}.dip-account{display:flex;gap:12px;align-items:center}.dip-menu-button{display:none}
.dip-hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);overflow:hidden;background:radial-gradient(circle at 20% 15%,#fffaf0 0,transparent 36%),var(--dip-paper)}.dip-hero-copy{padding:clamp(70px,9vw,140px) clamp(28px,8vw,130px);padding-right:clamp(30px,5vw,80px);align-self:center}.dip-eyebrow{font:750 .72rem system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--dip-red);margin:0 0 18px}.dip-hero h1,.dip-inner h1{font-size:clamp(3rem,6vw,6.5rem);line-height:.94;letter-spacing:-.055em;margin:0 0 28px;max-width:860px}.dip-hero-copy>p:not(.dip-eyebrow){font:400 clamp(1rem,1.35vw,1.26rem)/1.65 system-ui,sans-serif;max-width:650px;color:#43504a}.dip-actions{display:flex;gap:12px;flex-wrap:wrap;margin:34px 0 22px}.dip-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid var(--dip-ink);font:750 .82rem system-ui,sans-serif;text-decoration:none;cursor:pointer}.dip-button-primary{background:var(--dip-ink);color:#fff}.dip-button-primary:hover{background:#29453a}.dip-button-secondary{color:var(--dip-ink);background:transparent}.dip-text-link{color:var(--dip-ink);font:650 .82rem system-ui,sans-serif;text-decoration:none;border-bottom:1px solid rgba(20,35,30,.35);padding-bottom:3px}.dip-hero-map{position:relative;background:#d9d0bf;min-height:580px;overflow:hidden}.dip-hero-map:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--dip-paper),transparent 20%),linear-gradient(0deg,rgba(20,35,30,.35),transparent 35%);pointer-events:none}.dip-hero-map img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) sepia(.15);transform:scale(1.05)}.dip-hero-map span{position:absolute;z-index:1;bottom:28px;left:34px;background:#f6f0e5;padding:10px 14px;font:700 .7rem system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.dip-section{padding:clamp(70px,9vw,130px) clamp(24px,8vw,130px);border-top:1px solid rgba(20,35,30,.16)}.dip-section-heading{display:grid;grid-template-columns:.65fr 1fr;column-gap:7vw;align-items:end;margin-bottom:56px}.dip-section-heading .dip-eyebrow{grid-column:1}.dip-section-heading h2{grid-column:1;font-size:clamp(2.2rem,4vw,4.4rem);line-height:1;margin:0}.dip-section-heading>p:last-child{grid-column:2;grid-row:1/3;font:400 1.05rem/1.7 system-ui,sans-serif;color:#526059;max-width:620px}.dip-turn{background:#182720;color:#f3ecdf}.dip-turn .dip-eyebrow{color:#d5aa69}.dip-turn .dip-section-heading>p:last-child{color:#b8c1bb}.dip-turn-steps{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;padding:0;margin:0 0 45px;border-top:1px solid #506159}.dip-turn-steps li{padding:18px 12px 18px 0;display:flex;gap:12px;font:600 .78rem/1.3 system-ui,sans-serif;color:#92a099}.dip-turn-steps b{color:#d5aa69}.dip-turn-steps .dip-turn-active{color:white;border-top:3px solid #d5aa69;margin-top:-2px}.dip-resolution{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;border:1px solid #55645d;padding:clamp(22px,4vw,48px)}.dip-resolution>div:not(.dip-resolution-mark){display:grid;gap:10px}.dip-resolution strong{font-size:clamp(1.5rem,3vw,2.8rem)}.dip-resolution small{font:400 .84rem system-ui,sans-serif;color:#b8c1bb}.dip-resolution-mark{font-size:2rem;color:#d5aa69}.dip-power{font:700 .65rem system-ui,sans-serif;letter-spacing:.14em}.dip-power-france{color:#8eb4df}.dip-power-germany{color:#c4c1b9}
.dip-feature-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(20,35,30,.25)}.dip-feature-grid article{padding:28px 24px 20px 0;border-right:1px solid rgba(20,35,30,.18);margin-right:24px}.dip-feature-grid article:last-child{border:0}.dip-feature-grid h3,.dip-feature-grid h2{font-size:1.25rem;margin:0 0 12px}.dip-feature-grid p,.dip-paths p,.dip-organizer p,.dip-inner .dip-lede,.dip-host-grid p,.dip-variant-grid p,.dip-note{font:400 .95rem/1.65 system-ui,sans-serif;color:#526059}.dip-paths{display:grid;grid-template-columns:1fr 1fr;padding:0}.dip-paths article{padding:clamp(60px,8vw,120px) clamp(28px,8vw,130px)}.dip-paths article+article{background:#dfd4c1}.dip-paths h2,.dip-organizer h2{font-size:clamp(2rem,3.5vw,3.8rem);line-height:1;margin:0 0 20px}.dip-organizer{background:#e3d7c4;display:grid;grid-template-columns:1.5fr .7fr;gap:8vw;align-items:center}.dip-organizer ul{font:650 .9rem/1.4 system-ui,sans-serif;list-style:none;padding:0}.dip-organizer li{padding:14px 0;border-bottom:1px solid rgba(20,35,30,.22)}
.dip-inner{min-height:calc(100vh - 220px);padding-top:clamp(70px,9vw,120px)}.dip-inner h1{font-size:clamp(3rem,6vw,5.8rem);max-width:1000px}.dip-inner .dip-lede{font-size:1.12rem;max-width:700px;margin-bottom:55px}.dip-table-card{border-top:3px solid var(--dip-red);background:#e7decd;padding:clamp(26px,4vw,46px);display:grid;grid-template-columns:1.2fr 1fr auto;gap:35px;align-items:center}.dip-table-card h2{font-size:1.8rem;margin:12px 0}.dip-table-card p{font:400 .9rem system-ui,sans-serif}.dip-status{font:750 .64rem system-ui,sans-serif;letter-spacing:.15em;color:var(--dip-red)}.dip-table-card dl{display:flex;gap:25px;margin:0}.dip-table-card dl div{display:grid;gap:5px}.dip-table-card dt{font:650 .64rem system-ui,sans-serif;text-transform:uppercase;color:#6d756f}.dip-table-card dd{font:650 .82rem system-ui,sans-serif;margin:0}.dip-empty-support{margin-top:55px}.dip-empty-support a,.dip-variant-grid a{color:var(--dip-ink);font:700 .85rem system-ui,sans-serif}.dip-host-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(20,35,30,.18);margin-bottom:40px}.dip-host-grid article{background:var(--dip-paper);padding:35px}.dip-host-grid b{color:var(--dip-red)}.dip-host-grid h2{font-size:1.6rem}.dip-learn-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.dip-lessons{margin:0;padding:0;list-style-position:inside;font:650 .95rem system-ui,sans-serif}.dip-lessons li{padding:16px 5px;border-bottom:1px solid rgba(20,35,30,.18)}.dip-lessons a{color:inherit;text-decoration:none}.dip-lesson-active{color:var(--dip-red)}.dip-practice{background:#182720;color:#fff;padding:clamp(30px,5vw,60px)}.dip-practice h2{font-size:2.3rem}.dip-practice p{font:400 .9rem/1.6 system-ui,sans-serif;color:#bbc5bf}.dip-practice .dip-text-link{color:#fff}.dip-order{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid #506159;font:600 .85rem system-ui,sans-serif}.dip-variant-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.dip-variant-grid article{padding:clamp(35px,6vw,70px);background:#e4dac8;border-top:3px solid var(--dip-red)}.dip-variant-grid span{font:700 .68rem system-ui,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:#6a756e}.dip-variant-grid h2{font-size:3rem;margin:16px 0}.dip-note{margin-top:50px;padding:22px;border-left:3px solid var(--dip-gold)}.dip-organizer-page{padding:40px;margin-bottom:35px}.dip-footer{padding:35px clamp(24px,8vw,130px);background:#101b17;color:#d8d4cb;display:grid;grid-template-columns:.35fr 1fr;gap:50px;align-items:start}.dip-footer strong{letter-spacing:.13em}.dip-footer p{font:400 .7rem/1.6 system-ui,sans-serif;color:#8e9b94;margin:0;max-width:800px}
@media(max-width:1000px){.dip-header{flex-wrap:wrap;gap:15px}.dip-menu-button{display:block;margin-left:auto;border:1px solid var(--dip-ink);background:transparent;padding:8px 12px}.dip-nav{display:none;order:4;flex-basis:100%;align-items:stretch;flex-direction:column;gap:0}.dip-nav--open{display:flex}.dip-nav a{padding:12px 0}.dip-sign-in,.dip-account{margin-left:8px}.dip-hero{grid-template-columns:1fr;min-height:auto}.dip-hero-map{min-height:440px;order:-1}.dip-hero-map:after{background:linear-gradient(0deg,var(--dip-paper),transparent 28%)}.dip-section-heading{display:block}.dip-section-heading>p:last-child{margin-top:24px}.dip-feature-grid{grid-template-columns:1fr 1fr}.dip-table-card{grid-template-columns:1fr}.dip-table-card dl{flex-wrap:wrap}.dip-organizer{grid-template-columns:1fr}.dip-host-grid{grid-template-columns:1fr}.dip-learn-layout{grid-template-columns:1fr}}
@media(max-width:640px){.dip-header{min-height:68px;padding:12px 16px}.dip-brand{min-width:120px}.dip-brand-main{font-size:.9rem}.dip-sign-in{padding:8px 10px}.dip-account a{display:none}.dip-hero-copy{padding:55px 22px 70px}.dip-hero h1,.dip-inner h1{font-size:2.85rem}.dip-hero-map{min-height:330px}.dip-section{padding:65px 22px}.dip-turn-steps{display:flex;overflow-x:auto}.dip-turn-steps li{min-width:145px}.dip-resolution{grid-template-columns:1fr}.dip-resolution-mark{transform:rotate(90deg)}.dip-feature-grid{grid-template-columns:1fr}.dip-feature-grid article{border-right:0;border-bottom:1px solid rgba(20,35,30,.18);margin:0}.dip-paths{grid-template-columns:1fr}.dip-paths article{padding:60px 22px}.dip-table-card dl{display:grid;grid-template-columns:1fr 1fr}.dip-variant-grid{grid-template-columns:1fr}.dip-footer{grid-template-columns:1fr;gap:18px}.dip-organizer-page{padding:28px}.dip-actions .dip-button{width:100%}}

/* Diplomacy live-campaign details */
.dip-hero-map .dip-map-phase{top:28px;bottom:auto}.dip-map-order{position:absolute;z-index:2;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.6);border-radius:3px;background:rgba(20,35,30,.92);box-shadow:0 8px 24px rgba(20,35,30,.22);color:#fff;font:700 .68rem system-ui,sans-serif}.dip-map-order i{color:#e1b76e;font-style:normal}.dip-map-order-one{left:19%;top:49%;transform:rotate(-4deg)}.dip-map-order-two{right:13%;top:39%;transform:rotate(3deg)}.dip-map-caption{position:absolute;z-index:2;right:28px;bottom:28px;width:min(330px,calc(100% - 56px));padding:18px 20px;background:rgba(246,240,229,.96);border-left:3px solid var(--dip-red);display:grid;gap:6px}.dip-map-caption b{font-size:1rem}.dip-map-caption small{font:400 .75rem/1.45 system-ui,sans-serif;color:#536159}.dip-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.dip-filter-row span{padding:8px 12px;border:1px solid rgba(20,35,30,.2);font:650 .7rem system-ui,sans-serif;color:#5f6964}.dip-filter-row .dip-filter-active{background:var(--dip-ink);border-color:var(--dip-ink);color:#fff}.dip-table-list{display:grid;gap:14px}.dip-table-loading,.dip-no-tables{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(20,35,30,.2);background:#e7decd;padding:35px}.dip-table-loading span{width:34px;height:34px;border:2px solid rgba(20,35,30,.2);border-top-color:var(--dip-red);border-radius:50%;animation:dip-spin .8s linear infinite}.dip-table-loading p{font:650 .75rem system-ui,sans-serif;color:#66716b}.dip-no-tables>span{font:750 .65rem system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--dip-red)}.dip-no-tables h2{font-size:clamp(1.8rem,3vw,3rem);max-width:680px;margin:14px 0}.dip-no-tables p{font:400 .9rem/1.6 system-ui,sans-serif;max-width:570px;color:#59655f;margin:0 0 24px}@keyframes dip-spin{to{transform:rotate(360deg)}}
.dip-filter-row button{padding:8px 12px;border:1px solid rgba(20,35,30,.2);background:transparent;font:650 .7rem system-ui,sans-serif;color:#5f6964;cursor:pointer}.dip-filter-row button:hover{border-color:var(--dip-ink);color:var(--dip-ink)}.dip-filter-row button.dip-filter-active{background:var(--dip-ink);border-color:var(--dip-ink);color:#fff}.dip-practice-board{height:150px;position:relative;margin:24px 0;background:radial-gradient(circle at 28% 42%,rgba(80,130,170,.18),transparent 22%),radial-gradient(circle at 75% 44%,rgba(170,80,65,.15),transparent 23%),#20342c;border:1px solid #506159;overflow:hidden}.dip-practice-board svg{position:absolute;inset:0;width:100%;height:100%}.dip-practice-board path{fill:none;stroke:#d9b26e;stroke-width:3;stroke-dasharray:7 5;marker-end:none}.dip-practice-board .dip-support-line{stroke:#8eb4df;stroke-width:2}.dip-unit{position:absolute;z-index:2;padding:7px 9px;border-radius:2px;color:#fff;font:750 .62rem system-ui,sans-serif;letter-spacing:.08em;box-shadow:0 3px 12px rgba(0,0,0,.3)}.dip-unit-fr{left:10%;top:30%;background:#426e99}.dip-unit-support{left:14%;bottom:12%;background:#426e99}.dip-unit-de{right:10%;top:32%;background:#696761}.dip-answer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.dip-answer-buttons button{padding:13px;border:1px solid #687971;background:transparent;color:#fff;font:700 .75rem system-ui,sans-serif;cursor:pointer}.dip-answer-buttons button:hover,.dip-answer-buttons .dip-answer-selected{border-color:#e1b76e;background:rgba(225,183,110,.1)}.dip-feedback{display:grid;gap:5px;margin:0 0 22px;padding:14px 16px;border-left:3px solid #c47765;background:rgba(255,255,255,.05);font:400 .78rem/1.5 system-ui,sans-serif}.dip-feedback-correct{border-color:#7fb38e}.dip-feedback span{color:#bbc5bf}
@media(max-width:640px){.dip-hero-map{min-height:390px}.dip-map-order-one{left:10%;top:48%}.dip-map-order-two{right:7%;top:34%}.dip-map-caption{right:18px;bottom:18px;width:calc(100% - 36px)}.dip-answer-buttons{grid-template-columns:1fr}}

/* Interactive match book */
.dip-hero-facts{display:flex;gap:0;margin:42px 0 0;border-top:1px solid rgba(20,35,30,.2);max-width:620px}.dip-hero-facts div{flex:1;display:grid;gap:5px;padding:17px 18px 0 0}.dip-hero-facts div+div{padding-left:18px;border-left:1px solid rgba(20,35,30,.15)}.dip-hero-facts dt{font:700 .6rem system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#78817c}.dip-hero-facts dd{margin:0;font:700 .78rem system-ui,sans-serif}.dip-turn-steps li{padding:0}.dip-turn-steps button{width:100%;min-height:72px;padding:18px 12px 18px 0;border:0;background:transparent;color:inherit;display:flex;align-items:flex-start;gap:12px;text-align:left;cursor:pointer}.dip-turn-steps button:hover{color:#fff}.dip-matchbook{display:grid;grid-template-columns:minmax(320px,1.15fr) minmax(340px,.85fr);min-height:480px;border:1px solid #55645d;background:#14221c}.dip-matchbook-map{position:relative;overflow:hidden;background:#d4caba}.dip-matchbook-map:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 65%,rgba(20,34,28,.32)),linear-gradient(0deg,rgba(20,34,28,.3),transparent 35%)}.dip-matchbook-map img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) sepia(.12);transform:scale(1.06)}.dip-matchbook-stamp{position:absolute;z-index:1;left:22px;bottom:22px;padding:9px 12px;background:#f4eddf;color:#203029;font:750 .66rem system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}.dip-matchbook-detail{padding:clamp(32px,5vw,65px);display:flex;flex-direction:column;justify-content:center}.dip-matchbook-detail .dip-status{color:#d5aa69}.dip-matchbook-detail h3{font-size:clamp(2rem,3.4vw,3.7rem);line-height:1;margin:15px 0 20px}.dip-matchbook-detail>p{font:400 .95rem/1.7 system-ui,sans-serif;color:#b8c1bb}.dip-resolution-compact{grid-template-columns:1fr;padding:22px;margin-top:22px;gap:16px;background:rgba(255,255,255,.025)}.dip-resolution-compact .dip-resolution-mark{transform:rotate(90deg);font-size:1rem}.dip-resolution-compact strong{font-size:1.25rem}.dip-record-lines{display:grid;gap:9px;margin-top:30px}.dip-record-lines span{display:block;height:1px;background:#506159}.dip-record-lines span:nth-child(2){width:82%}.dip-record-lines span:nth-child(3){width:58%}
.dip-header{position:sticky;top:0;box-shadow:0 1px 0 rgba(20,35,30,.08)}.dip-menu-button{color:var(--dip-ink);font:700 .76rem system-ui,sans-serif}
@media(max-width:900px){.dip-matchbook{grid-template-columns:1fr}.dip-matchbook-map{min-height:390px}.dip-matchbook-detail{min-height:390px}}
@media(max-width:640px){.dip-hero{display:flex;flex-direction:column}.dip-hero-copy{order:1;padding:48px 22px 54px}.dip-hero-map{order:2}.dip-hero h1{font-size:2.65rem;line-height:.96}.dip-hero-copy>p:not(.dip-eyebrow){font-size:.96rem;line-height:1.6}.dip-actions{margin-top:28px}.dip-hero-facts{margin-top:32px}.dip-hero-facts div{padding-right:10px}.dip-hero-facts div+div{padding-left:10px}.dip-hero-facts dd{font-size:.68rem}.dip-matchbook{min-height:0}.dip-matchbook-map{min-height:300px}.dip-matchbook-detail{min-height:350px;padding:30px 24px}.dip-turn-steps button{min-height:64px}.dip-practice-focused{order:-1}.dip-practice-focused+.dip-lessons{order:2}}

/* Host dossier and variant comparison */
.dip-host-composer{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:28px;align-items:stretch;margin-bottom:38px}.dip-host-composer .dip-host-grid{grid-template-columns:1fr;margin:0}.dip-host-composer .dip-host-grid article{display:grid;grid-template-columns:42px 1fr;column-gap:16px;align-items:start}.dip-host-composer .dip-host-grid article b{grid-row:1/3;font-size:.75rem;padding-top:6px}.dip-host-composer .dip-host-grid h2{margin:0 0 8px}.dip-host-composer .dip-host-grid p{margin:0}.dip-dossier{background:#17261f;color:#f1eadc;padding:clamp(28px,4vw,48px);box-shadow:inset 0 0 0 1px #46584f}.dip-dossier-head{display:grid;gap:10px;padding-bottom:24px;border-bottom:1px solid #52635b}.dip-dossier-head span{font:750 .62rem system-ui,sans-serif;letter-spacing:.16em;color:#d5aa69}.dip-dossier-head b{font-size:1.55rem;line-height:1.15}.dip-dossier dl{margin:0}.dip-dossier dl div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #405149;font:650 .74rem system-ui,sans-serif}.dip-dossier dt{color:#9eaaa4}.dip-dossier dd{margin:0;text-align:right}.dip-dossier>p{margin:22px 0 0;font:400 .75rem/1.55 system-ui,sans-serif;color:#aeb8b2}.dip-variant-grid article{padding:0;overflow:hidden;border-top:0;background:#e4dac8}.dip-variant-art{height:260px;position:relative;overflow:hidden;background:#cfccb9}.dip-variant-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,35,30,.45),transparent 50%)}.dip-variant-art img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) sepia(.15);transform:scale(1.08)}.dip-variant-gunboat .dip-variant-art img{filter:grayscale(.85) contrast(1.05);transform:scale(1.08) rotate(.4deg)}.dip-variant-art span{position:absolute;z-index:1;left:22px;bottom:20px;padding:8px 10px;background:#f4eddf;color:#25342e}.dip-variant-copy{padding:clamp(30px,5vw,58px)}.dip-variant-copy h2{margin:14px 0}.dip-variant-copy dl{margin:28px 0;display:grid;gap:0}.dip-variant-copy dl div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid rgba(20,35,30,.18);font:650 .72rem system-ui,sans-serif}.dip-variant-copy dt{color:#6d7772}.dip-variant-copy dd{margin:0;text-align:right}
@media(max-width:900px){.dip-host-composer{grid-template-columns:1fr}.dip-dossier{order:-1}}
@media(max-width:640px){.dip-variant-art{height:210px}.dip-variant-copy dl div{display:grid;gap:5px}.dip-variant-copy dd{text-align:left}.dip-dossier{padding:28px 24px}}
@media(prefers-reduced-motion:reduce){.dip-site *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.dip-campaign-pulse{padding-top:0}.dip-command-card{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(430px,1.15fr);min-height:540px;border:1px solid rgba(20,35,30,.22);background:#e8dfcf;box-shadow:0 28px 60px rgba(22,34,29,.1)}.dip-command-map{position:relative;min-height:420px;overflow:hidden;background:#cfc4b2}.dip-command-map:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(17,30,25,.2)),linear-gradient(0deg,rgba(17,30,25,.26),transparent 45%)}.dip-command-map img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.58) sepia(.12);transform:scale(1.045)}.dip-command-map>span{position:absolute;z-index:1;left:22px;top:22px;padding:8px 10px;background:rgba(244,237,223,.94);color:var(--dip-ink);font:750 .6rem system-ui,sans-serif;letter-spacing:.13em}.dip-command-detail{padding:clamp(32px,5vw,64px);display:flex;flex-direction:column;justify-content:center}.dip-command-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid rgba(20,35,30,.18)}.dip-command-head h3{margin:10px 0 6px;font-size:clamp(2rem,3.2vw,3.25rem);line-height:1}.dip-command-head p{margin:0;font:500 .78rem system-ui,sans-serif;color:#68746e}.dip-command-head>strong{font:700 1rem system-ui,sans-serif;color:var(--dip-red);white-space:nowrap}.dip-readiness{padding:24px 0 18px}.dip-readiness>div:first-child{display:flex;justify-content:space-between;gap:20px;font:650 .78rem system-ui,sans-serif}.dip-readiness-bar{height:5px;margin-top:11px;background:rgba(20,35,30,.13);overflow:hidden}.dip-readiness-bar i{display:block;width:85.7%;height:100%;background:var(--dip-red)}.dip-power-status{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.dip-power-status li{min-width:0;padding:10px 4px;text-align:center;border:1px solid rgba(20,35,30,.16);background:rgba(255,255,255,.24);font-family:system-ui,sans-serif}.dip-power-status li b{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 7px;border-radius:50%;background:#27463a;color:#fff;font-size:.66rem}.dip-power-status li span{display:block;overflow:hidden;text-overflow:ellipsis;font-size:.61rem;font-weight:700}.dip-power-status li small{display:block;margin-top:3px;color:#657169;font-size:.54rem}.dip-power-status li.dip-power-waiting{border-color:rgba(142,50,42,.4);background:rgba(142,50,42,.07)}.dip-power-status li.dip-power-waiting b{background:var(--dip-red)}.dip-power-status li.dip-power-waiting small{color:var(--dip-red);font-weight:750}.dip-command-note{display:grid;gap:3px;margin-top:24px;padding:14px 16px;border-left:3px solid var(--dip-gold);background:rgba(255,255,255,.25);font:600 .72rem/1.45 system-ui,sans-serif}.dip-command-note span{color:#647069;font-weight:400}@media(max-width:900px){.dip-command-card{grid-template-columns:1fr}.dip-command-map{min-height:380px}.dip-command-detail{padding:38px 30px}}@media(max-width:640px){.dip-command-card{min-height:0}.dip-command-map{min-height:280px}.dip-command-detail{padding:30px 20px}.dip-command-head{display:grid;gap:12px}.dip-command-head>strong{grid-row:1}.dip-power-status{grid-template-columns:repeat(4,minmax(0,1fr))}.dip-power-status li:last-child{grid-column:2}.dip-command-map>span{left:14px;top:14px}.dip-command-note{margin-top:18px}}

.dip-join-notice{margin:-28px 0 34px;padding:14px 17px;border-left:3px solid var(--dip-gold);background:#e5dac7;color:var(--dip-ink);font:650 .78rem/1.5 system-ui,sans-serif}.dip-table-card>.dip-button{font-family:system-ui,sans-serif;white-space:nowrap}.dip-table-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.dip-table-tags span{padding:5px 8px;border:1px solid rgba(20,35,30,.17);background:rgba(255,255,255,.24);color:#59655f;font:700 .58rem system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}.dip-campaign-briefs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,760px);margin:30px auto 0;text-align:left}.dip-campaign-briefs article{padding:24px;border:1px solid rgba(20,35,30,.18);background:rgba(255,255,255,.22)}.dip-campaign-briefs h3{margin:10px 0 18px;font-size:1.4rem}.dip-campaign-briefs dl{margin:0 0 20px}.dip-campaign-briefs dl div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid rgba(20,35,30,.14);font:650 .68rem system-ui,sans-serif}.dip-campaign-briefs dt{color:#69746e}.dip-campaign-briefs dd{margin:0;text-align:right}.dip-campaign-briefs a{color:var(--dip-ink);font:750 .72rem system-ui,sans-serif}@media(max-width:640px){.dip-campaign-briefs{grid-template-columns:1fr}.dip-no-tables{padding-inline:18px}}
.dip-lesson-panel{min-height:590px;padding:clamp(32px,5vw,62px);background:#182720;color:#f4eddf}.dip-lesson-panel>h2{max-width:650px;margin:14px 0 20px;font-size:clamp(2.35rem,4.6vw,4.8rem);line-height:.96}.dip-lesson-panel>p{max-width:650px;color:#b8c2bc;font:400 .94rem/1.7 system-ui,sans-serif}.dip-lesson-panel .dip-button{margin-top:28px}.dip-overview-lesson ol{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#4b5d54}.dip-overview-lesson li{display:grid;gap:5px;padding:18px;background:#20332a;font-family:system-ui,sans-serif}.dip-overview-lesson li b{font-size:.78rem}.dip-overview-lesson li span{color:#aeb9b3;font-size:.7rem}.dip-lesson-goal{display:flex;align-items:center;gap:16px;margin-top:24px;padding:18px;border:1px solid #53655c}.dip-lesson-goal strong{font-size:2.8rem;color:#d5aa69}.dip-lesson-goal span{max-width:190px;font:650 .72rem/1.4 system-ui,sans-serif}.dip-bounce-demo{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:42px 0 28px}.dip-bounce-demo>div{display:grid;gap:6px;padding:24px 18px;border:1px solid #52645b;text-align:center;font-family:system-ui,sans-serif}.dip-bounce-demo b{font-size:1.25rem}.dip-bounce-demo span{color:#d5aa69;font-weight:750}.dip-bounce-demo small{color:#9faca5}.dip-bounce-demo i{color:#d5aa69;font:800 .62rem system-ui,sans-serif;letter-spacing:.15em}.dip-lesson-rule{display:grid;gap:5px;padding:17px;border-left:3px solid var(--dip-gold);background:#20332a;font-family:system-ui,sans-serif}.dip-lesson-rule b{font-size:.82rem}.dip-lesson-rule span{color:#aeb9b3;font-size:.72rem}@media(max-width:640px){.dip-lesson-panel{min-height:0;padding:34px 23px}.dip-overview-lesson ol{grid-template-columns:1fr}.dip-bounce-demo{grid-template-columns:1fr}.dip-bounce-demo i{justify-self:center}.dip-bounce-demo>div:last-child{order:3}}
.dip-match-stage-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:34px 0 20px}.dip-match-stage-tabs button{border:1px solid rgba(20,35,30,.22);background:#e7decd;color:var(--dip-ink);padding:11px 14px;font:700 .68rem system-ui,sans-serif;cursor:pointer}.dip-match-stage-tabs button.dip-filter-active{border-color:var(--dip-red);background:var(--dip-red);color:#fff}.dip-public-match-card{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1fr);min-height:560px;background:#17261f;color:#f4eddf}.dip-public-map{position:relative;min-height:430px;overflow:hidden;background:#d2c8b8}.dip-public-map img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) sepia(.12);transform:scale(1.07)}.dip-public-map:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,34,28,.38),transparent 45%)}.dip-public-map span{position:absolute;z-index:1;left:22px;bottom:22px;padding:9px 12px;background:#f4eddf;color:var(--dip-ink);font:750 .63rem system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase}.dip-public-detail{padding:clamp(32px,5vw,62px);display:flex;flex-direction:column;justify-content:center}.dip-public-detail h2{margin:14px 0;font-size:clamp(2rem,4vw,4.2rem);line-height:.95}.dip-public-detail>p{color:#b8c2bc;font:400 .88rem/1.65 system-ui,sans-serif}.dip-order-ledger{display:grid;gap:1px;margin:24px 0;background:#53645b}.dip-order-ledger div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:13px;background:#20332a;font-family:system-ui,sans-serif}.dip-order-ledger b{color:#d5aa69;font-size:.63rem;letter-spacing:.08em}.dip-order-ledger code{font-size:.74rem}.dip-order-ledger small{grid-column:2;color:#aab6af;font-size:.65rem}.dip-public-note{padding-left:14px;border-left:2px solid #d5aa69}.dip-public-detail .dip-button{align-self:flex-start;margin-top:10px}@media(max-width:900px){.dip-public-match-card{grid-template-columns:1fr}.dip-public-map{min-height:350px}}@media(max-width:640px){.dip-public-map{min-height:280px}.dip-public-detail{padding:32px 22px}.dip-order-ledger div{grid-template-columns:76px 1fr}.dip-order-ledger small{grid-column:2}}

/* Rules and organizer surfaces */
.dip-footer nav{grid-column:2;display:flex;gap:22px;flex-wrap:wrap}.dip-footer nav a{color:#b9c0bc;text-decoration:none;font:650 .68rem system-ui,sans-serif}.dip-footer nav a:hover{color:#fff}.dip-rulebook{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;margin-bottom:70px}.dip-rule-orders,.dip-phase-cycle{padding:clamp(30px,5vw,60px);border:1px solid rgba(20,35,30,.2);background:#e6dcc9}.dip-rule-orders>h2,.dip-phase-cycle>h2{font-size:clamp(1.8rem,3vw,3.2rem);line-height:1;margin:14px 0 30px}.dip-rule-orders article{display:grid;grid-template-columns:minmax(145px,.55fr) 1fr;gap:24px;padding:17px 0;border-top:1px solid rgba(20,35,30,.18);align-items:center}.dip-rule-orders code{font:750 .78rem ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--dip-red)}.dip-rule-orders article b{font-size:1rem}.dip-rule-orders article p{margin:4px 0 0;font:400 .76rem/1.45 system-ui,sans-serif;color:#68716c}.dip-phase-cycle{background:#17261f;color:#f1eadc}.dip-phase-cycle .dip-status{color:#d5aa69}.dip-phase-cycle ol{list-style:none;padding:0;margin:0;counter-reset:phase}.dip-phase-cycle li{counter-increment:phase;display:grid;grid-template-columns:28px .6fr 1fr;gap:12px;padding:15px 0;border-top:1px solid #45564e;font:650 .76rem system-ui,sans-serif}.dip-phase-cycle li:before{content:counter(phase,decimal-leading-zero);color:#d5aa69}.dip-phase-cycle li span{color:#aab5af}.dip-rule-grid{grid-template-columns:repeat(4,1fr)}.dip-community-toolkit{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;margin-bottom:40px}.dip-community-toolkit>div{padding:clamp(32px,5vw,64px);background:#e3d7c4}.dip-community-toolkit h2{font-size:clamp(2rem,3.6vw,4rem);line-height:1;margin:14px 0 22px}.dip-community-toolkit>div>p{font:400 .95rem/1.65 system-ui,sans-serif;color:#56625c}.dip-community-toolkit ul{list-style:none;padding:0;margin:32px 0 0}.dip-community-toolkit li{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:15px 0;border-top:1px solid rgba(20,35,30,.2);font:650 .76rem/1.4 system-ui,sans-serif}.dip-community-toolkit li b{color:var(--dip-red)}.dip-community-toolkit li span{color:#59655f}.dip-report-preview{display:flex;flex-direction:column;background:#17261f;color:#f1eadc;padding:clamp(24px,4vw,42px)}.dip-report-head{display:grid;gap:7px}.dip-report-head>span{font:750 .62rem system-ui,sans-serif;letter-spacing:.15em;color:#d5aa69}.dip-report-head>b{font-size:1.55rem}.dip-report-head small{font:400 .7rem system-ui,sans-serif;color:#aab5af}.dip-report-map{height:260px;margin:24px 0;overflow:hidden;background:#d5cfbe}.dip-report-map img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) sepia(.1);transform:scale(1.06)}.dip-report-preview dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0}.dip-report-preview dl div{display:grid;gap:5px;padding-right:12px}.dip-report-preview dt{font:700 .58rem system-ui,sans-serif;text-transform:uppercase;color:#8f9c95}.dip-report-preview dd{margin:0;font:650 .72rem system-ui,sans-serif}.dip-report-preview>p{margin:24px 0 0;font:400 .74rem/1.5 system-ui,sans-serif;color:#aab5af}
@media(max-width:900px){.dip-rulebook,.dip-community-toolkit{grid-template-columns:1fr}.dip-rule-grid{grid-template-columns:1fr 1fr}.dip-footer nav{grid-column:1}}
@media(max-width:640px){.dip-rule-orders,.dip-phase-cycle{padding:28px 22px}.dip-rule-orders article{grid-template-columns:1fr;gap:6px}.dip-rule-grid{grid-template-columns:1fr}.dip-community-toolkit>div{padding:34px 24px}.dip-report-preview{padding:28px 22px}.dip-report-map{height:210px}.dip-report-preview dl{gap:12px}.dip-footer nav{gap:16px}}

/* Railway Rivals follows Diplomacy's full-width map and information grid. */
.rr-ledger { display:grid; gap:10px; margin-top:12px; color:var(--lbn-text-main); }
.rr-ledger__heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.rr-ledger__heading h3 { margin:0; font-size:var(--lbn-text-base); }
.rr-ledger__heading a { color:var(--lbn-accent-blue); font-size:var(--lbn-text-xs); }
.rr-ledger__grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:14px; }
.rr-ledger__card { min-width:0; padding:14px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(9,14,20,.56); }
.rr-ledger__card--bookkeeping { grid-column:1 / -1; }
.rr-ledger__card h4, .rr-ledger__card h5 { margin:0 0 10px; color:#f6e7c8; font-size:var(--lbn-text-sm); }
.rr-ledger__phase { display:block; margin-bottom:12px; font-size:var(--lbn-text-lg); color:var(--lbn-text-main); }
.rr-ledger__facts { display:grid; gap:8px; margin:0; }
.rr-ledger__facts--bookkeeping { grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); }
.rr-ledger__facts > div { display:grid; grid-template-columns:minmax(7rem,.5fr) minmax(0,1fr); gap:8px; padding:7px 9px; border:1px solid rgba(255,255,255,.08); border-radius:6px; background:rgba(255,255,255,.035); }
.rr-ledger__facts dt { color:var(--lbn-text-muted); font-size:var(--lbn-text-xs); }
.rr-ledger__facts dd { min-width:0; margin:0; overflow-wrap:anywhere; font-size:var(--lbn-text-xs); font-weight:700; }
.rr-ledger__instruction { margin:12px 0 0; color:var(--lbn-text-muted); font-size:var(--lbn-text-sm); }
.rr-ledger__actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.rr-ledger__table-wrap { overflow-x:auto; }
.rr-ledger__table { width:100%; border-collapse:collapse; font-size:var(--lbn-text-xs); text-align:left; }
.rr-ledger__table th, .rr-ledger__table td { padding:8px 7px; border-bottom:1px solid rgba(255,255,255,.12); white-space:nowrap; }
.rr-ledger__table thead th { color:var(--lbn-text-muted); font-weight:700; }
.rr-ledger__table tbody th { color:var(--lbn-text-main); font-weight:700; }
.rr-ledger__company-code { display:inline-block; margin-right:6px; color:var(--lbn-accent-gold); }
.rr-ledger__table td:not(:first-child) { font-variant-numeric:tabular-nums; }
.rr-ledger__results { margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.12); }
.rr-ledger__results h5 { margin-bottom:7px; }
.rr-ledger__results p { margin:0; color:var(--lbn-text-muted); font-size:var(--lbn-text-xs); }
.rr-ledger__results ul { margin:0; padding-left:20px; display:grid; gap:5px; font-size:var(--lbn-text-xs); }
.rr-ledger__financial-wrap { max-height:18rem; overflow:auto; }
.rr-ledger__financial-wrap .rr-ledger__table th:last-child, .rr-ledger__financial-wrap .rr-ledger__table td:last-child { white-space:normal; min-width:12rem; }
.rr-ledger__gain { color:#89d7a3; font-weight:700; }
.rr-ledger__loss { color:#ffb3a8; font-weight:700; }
.rr-review-backdrop { z-index:30; }
.rr-review { max-height:min(80vh,680px); overflow-y:auto; }
.rr-review__list { display:grid; gap:6px; max-height:40vh; overflow-y:auto; margin:14px 0; padding:0; list-style:none; }
.rr-review__list li { display:flex; justify-content:space-between; gap:16px; padding:8px 10px; border:1px solid var(--lbn-border-default); border-radius:6px; font-size:var(--lbn-text-sm); }
.rr-review__list strong { text-align:right; }
.rr-review__total { font-weight:700; font-size:var(--lbn-text-sm); }
.match-board-surface svg[role="dialog"] g[role="button"]:focus-visible rect { stroke:#fff5d7; stroke-width:3px; }
:root { --rr-company-fallback:#8c9aa2; --rr-preview-rival:#ef836d; --rr-preview-own:#77d8f1; }
.match-board-interaction-shell { width:100%; }
.rr-map-tools { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:10px 0 6px; }
.rr-map-tools button { min-height:38px; padding:7px 11px; border:1px solid var(--lbn-border-default); border-radius:7px; color:var(--lbn-text-primary); background:var(--lbn-bg-panel); cursor:pointer; }
.rr-map-tools button.active { border-color:var(--lbn-accent-gold); background:color-mix(in srgb,var(--lbn-accent-gold) 18%,var(--lbn-bg-panel)); font-weight:700; }
.rr-map-tools button:disabled { opacity:.5; cursor:not-allowed; }
.rr-map-tools__hint { color:var(--lbn-text-tertiary); font-size:var(--lbn-text-xs); }
.rr-company-legend { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 9px; }
.rr-company-legend__item { display:inline-flex; align-items:center; gap:5px; min-height:26px; padding:3px 7px; border:1px solid var(--lbn-border-default); border-radius:999px; color:var(--lbn-text-primary); font-size:var(--lbn-text-xs); }
.rr-company-legend__item strong { color:var(--lbn-accent-gold); }
.rr-company-legend__swatch { display:inline-block; width:16px; height:5px; border-radius:5px; box-shadow:0 0 0 1px rgba(255,255,255,.35); }
.rr-race-dialog-scroll { position:absolute; top:4%; left:50%; transform:translateX(-50%); width:min(94%,560px); max-height:92%; overflow-y:auto; overscroll-behavior:contain; z-index:20; border-radius:16px; box-shadow:0 14px 28px rgba(0,0,0,.6); touch-action:pan-y; }
.rr-race-dialog-scroll svg { min-width:0; }
@media (max-width:620px) { .rr-map-tools__hint { flex-basis:100%; } .rr-race-dialog-scroll { width:min(96%,360px); } }
@media (max-width:760px) { .rr-ledger__grid { grid-template-columns:minmax(0,1fr); } .rr-ledger__card--bookkeeping { grid-column:auto; } }
