/* /Components/AssembledView.razor.rz.scp.css */
/* ============================================================
   AssembledView — Read-only manuscript assembled view
   ============================================================ */

.assembled-scroll[b-a19qs86ls4] {
    height: 100%;
    overflow-y: auto;
    background-color: var(--bg3);
}

.assembled-view[b-a19qs86ls4] {
    max-width: 720px;
    margin: 0 auto;
    padding: 4px 40px;
    background-color: var(--bg);
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    font-family: var(--assembled-font, 'Garamond', 'EB Garamond', 'Georgia', serif);
    line-height: var(--assembled-line-height, 1.8);
    color: var(--ink);
}

.assembled-heading[b-a19qs86ls4] {
    margin: var(--heading-margin, 2em 0 0.75em);
    line-height: 1.3;
    text-align: var(--heading-align, center);
}

.assembled-heading--h1[b-a19qs86ls4] {
    font-size: 2rem;
    margin-bottom: 1.2rem;
    text-align: center;
}

.assembled-heading--h2[b-a19qs86ls4] {
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--accent);
    border-bottom: var(--heading-border, 1px solid var(--border));
    padding-bottom: 0.3em;
}

.assembled-heading--h3[b-a19qs86ls4] {
    font-size: 1.17em;
    font-weight: 600;
    color: var(--ink);
    margin-top: 1.2em;
    margin-bottom: var(--heading-bottom-margin, 0.4em);
    text-align: var(--heading-align, left);
}

.assembled-heading--h4[b-a19qs86ls4] {
    font-size: 1em;
    font-weight: 600;
    color: var(--ink2);
    margin-top: 1em;
    margin-bottom: var(--heading-bottom-margin, 0.4em);
    text-align: left;
}


.assembled-heading--clickable[b-a19qs86ls4] {
    cursor: pointer;
    transition: color 150ms ease-in-out;
}

.assembled-heading--clickable:hover[b-a19qs86ls4] {
    color: var(--accent);
}

.assembled-content[b-a19qs86ls4] {
    font-size: 1.25rem;
    text-align: var(--content-align, justify);
    text-indent: var(--content-indent, 2em);
}

/* Child element styles are in app.css (global) because MarkupString
   content is injected dynamically and Blazor scoped CSS cannot reach it. */

/* ---- Scene separator ---- */

.assembled-separator[b-a19qs86ls4] {
    text-align: center;
    color: var(--ink2);
    letter-spacing: 0.3em;
    margin: 1.5em 0;
    padding: 1em 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
/* /Components/BatchSummaryDialog.razor.rz.scp.css */
/* ============================================================
   BatchSummaryDialog — Collect one-sentence summaries for target
   entities before a full-board batch extraction (Flow 2b).
   ============================================================ */

.modal-backdrop[b-r4pginj175] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-dialog[b-r4pginj175] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 10px;
    width: min(560px, calc(100vw - 2rem));
    max-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    z-index: 1001;
}

.modal-header[b-r4pginj175] {
    padding: 1.25rem 1.5rem 0.75rem;
    border-bottom: 1px solid var(--border);
}

.modal-title[b-r4pginj175] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-body[b-r4pginj175] {
    padding: 1rem 1.5rem;
    flex: 1;
    overflow-y: auto;
}

.modal-message[b-r4pginj175] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin: 0;
    line-height: 1.5;
}

.modal-footer[b-r4pginj175] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0.875rem 1.5rem;
    border-top: 1px solid var(--border);
}

.btn-primary[b-r4pginj175] {
    padding: 6px 16px;
    background: var(--accent);
    border: 1px solid var(--accent);
    border-radius: 4px;
    color: #fff;
    font-size: 0.82rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.btn-primary:hover[b-r4pginj175] {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

.btn-primary:disabled[b-r4pginj175] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-cancel[b-r4pginj175] {
    padding: 6px 16px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.82rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, color 150ms ease-in-out;
}

.btn-cancel:hover[b-r4pginj175] {
    border-color: var(--ink2);
    color: var(--ink);
    background: var(--bg3);
}

.batch-summary-dialog[b-r4pginj175] {
    max-width: 560px;
}

.batch-summary-dialog-hint[b-r4pginj175] {
    margin-bottom: 16px;
}

/* ---- Entity list ---- */

.batch-summary-dialog-list[b-r4pginj175] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-height: 360px;
    overflow-y: auto;
    padding-right: 2px; /* keep scrollbar from clipping content */
}

.batch-summary-dialog-row[b-r4pginj175] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.batch-summary-dialog-label[b-r4pginj175] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}

.batch-summary-dialog-input[b-r4pginj175] {
    display: block;
    width: 100%;
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 9px 12px;
    font: 13px/1.5 var(--font-ui, inherit);
    color: var(--ink);
    outline: none;
    box-sizing: border-box;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.batch-summary-dialog-input:focus[b-r4pginj175] {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(43, 92, 230, 0.12);
}

.batch-summary-dialog-input[b-r4pginj175]::placeholder {
    color: var(--ink3);
}
/* /Components/BoardAdvancedSettingsDialog.razor.rz.scp.css */
/* ============================================================
   BoardAdvancedSettingsDialog — Staged settings dialog
   ============================================================ */

/* ---- Backdrop ---- */

.adv-backdrop[b-lr6cghu723] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: adv-backdrop-in-b-lr6cghu723 150ms ease-in-out both;
}

@keyframes adv-backdrop-in-b-lr6cghu723 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog box ---- */

.adv-dialog[b-lr6cghu723] {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    width: 440px;
    max-width: calc(100vw - 2rem);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    animation: adv-dialog-in-b-lr6cghu723 150ms ease-in-out both;
    outline: none;
}

@keyframes adv-dialog-in-b-lr6cghu723 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.adv-header[b-lr6cghu723] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.adv-title[b-lr6cghu723] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adv-close-btn[b-lr6cghu723] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: var(--r);
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.adv-close-btn:hover[b-lr6cghu723] {
    color: var(--ink);
    background: var(--bg3);
}

/* ---- Body ---- */

.adv-body[b-lr6cghu723] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ---- Section groups ---- */

.adv-section-group[b-lr6cghu723] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--r);
}

.adv-section-title[b-lr6cghu723] {
    margin: -10px -10px 0 -10px;
    padding: 6px 10px;
    background: var(--bg3);
    border-bottom: 1px solid var(--border);
    border-radius: var(--r) var(--r) 0 0;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

/* ---- Fields ---- */

.adv-field[b-lr6cghu723] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.adv-row[b-lr6cghu723] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.adv-label[b-lr6cghu723] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.adv-label--inline[b-lr6cghu723] {
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.85rem;
    color: var(--ink);
}

.adv-input[b-lr6cghu723] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.adv-input:focus[b-lr6cghu723] {
    outline: none;
    border-color: var(--accent);
}

.adv-helper-text[b-lr6cghu723] {
    font-size: 0.75rem;
    color: var(--ink2);
    margin: 0;
}

.adv-toggle-label-group[b-lr6cghu723] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
    padding-right: 12px;
}

/* ---- Toggle switch ---- */

.adv-toggle[b-lr6cghu723] {
    position: relative;
    width: 38px;
    height: 20px;
    background: var(--border);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    transition: background-color 150ms ease-in-out;
    flex-shrink: 0;
}

.adv-toggle--on[b-lr6cghu723] {
    background: var(--accent);
}

.adv-toggle-thumb[b-lr6cghu723] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 150ms ease-in-out;
}

.adv-toggle--on .adv-toggle-thumb[b-lr6cghu723] {
    transform: translateX(18px);
}

/* ---- Board type select ---- */

.adv-select[b-lr6cghu723] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
    cursor: pointer;
    appearance: auto;
}

.adv-select:focus[b-lr6cghu723] {
    outline: none;
    border-color: var(--accent);
}

/* ---- Footer ---- */

.adv-footer[b-lr6cghu723] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* ---- Save button ---- */

.btn-save[b-lr6cghu723] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: var(--ink);
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 80px;
    min-height: 38px;
}

.btn-save:hover:not(:disabled)[b-lr6cghu723] {
    background: var(--accent-hover);
}

.btn-save:disabled[b-lr6cghu723] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Cancel button (ghost) ---- */

.btn-cancel[b-lr6cghu723] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-lr6cghu723] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-lr6cghu723] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-lr6cghu723] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: adv-spin-b-lr6cghu723 0.7s linear infinite;
}

@keyframes adv-spin-b-lr6cghu723 {
    to { transform: rotate(360deg); }
}
/* /Components/BoardCell.razor.rz.scp.css */
/* ============================================================
   BoardCell — Individual grid cell (display-only; edit in Inspector)
   ============================================================ */

.board-cell[b-lbbapbbrdj] {
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    height: var(--board-cell-height);
    padding: 12px 14px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: background-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
    vertical-align: top;
    min-width: var(--board-cell-width);
    width: var(--board-cell-width);
    box-sizing: border-box;
}

/* ---- Empty cell ---- */

.board-cell--empty[b-lbbapbbrdj] {
    background-color: var(--board-cell-bg);
}

.board-cell--empty:hover[b-lbbapbbrdj] {
    background-color: var(--bg3);
}

/* ---- Filled cell ---- */

.board-cell--filled[b-lbbapbbrdj] {
    background-color: var(--board-node-bg);
}

.board-cell--filled:hover[b-lbbapbbrdj] {
    background-color: var(--board-header-bg);
}

/* ---- Related cell (node exists but has no content) ---- */

.board-cell--related[b-lbbapbbrdj] {
    background-color: var(--board-node-bg);
}

.board-cell--related:hover[b-lbbapbbrdj] {
    background-color: var(--board-header-bg);
}

/* ---- Selected cell ---- */

.board-cell--selected[b-lbbapbbrdj] {
    background-color: var(--accent-lt) !important;
    box-shadow: inset 0 0 0 2px var(--accent);
    /* Raise above all sticky headers (col: z-index 2, row: z-index 1) and adjacent cells
       so the inset box-shadow ring is fully visible on all four sides */
    z-index: 4;
}

/* ---- Display mode ---- */

/* height is already clipped by the parent .board-cell (overflow: hidden) */
.board-cell-display[b-lbbapbbrdj] {
    position: relative;
}

.board-cell-bullets[b-lbbapbbrdj] {
    list-style: none;
    margin: 0;
    padding: 0 0 12px 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.board-cell-bullet-item[b-lbbapbbrdj] {
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: 0.75rem;
    color: var(--ink);
    line-height: 1.4;
    min-width: 0;
}

.board-cell-bullet-item[b-lbbapbbrdj]::before {
    content: "•";
    font-size: 1rem;
    color: var(--accent);
    opacity: 0.9;
    flex-shrink: 0;
    line-height: 1.4;
}

.board-cell-bullet-text[b-lbbapbbrdj] {
    overflow-wrap: break-word;
    word-break: break-word;
    min-width: 0;
    flex: 1;
}

/* ---- Watermark for related-but-empty cells ---- */

.board-cell-watermark[b-lbbapbbrdj] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.72rem;
    font-style: italic;
    color: var(--ink2);
    opacity: 0.35;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
}

/* ---- Overflow ellipsis indicator ---- */
/* A small "..." at the bottom-right of filled cells signals clipped content.
   Always shown on filled cells — subtle enough to be harmless on short content. */

.board-cell--filled[b-lbbapbbrdj]::after {
    content: '...';
    position: absolute;
    bottom: 4px;
    right: 8px;
    font-size: 0.7rem;
    color: var(--ink2);
    background: var(--board-node-bg);
    padding: 0 4px;
    border-radius: 3px;
    line-height: 1;
    pointer-events: none;
}

.board-cell--filled:hover[b-lbbapbbrdj]::after {
    background: var(--board-header-bg);
}

.board-cell--selected.board-cell--filled[b-lbbapbbrdj]::after {
    background: var(--accent-lt);
}

/* ---- Action icons (relate / delete) ---- */

.board-cell-action[b-lbbapbbrdj] {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--r);
    background-color: color-mix(in srgb, var(--board-cell-bg) 80%, transparent);
    color: var(--ink3);
    cursor: pointer;
    opacity: 0;
    transition: opacity 150ms ease-in-out, color 150ms ease-in-out, background-color 150ms ease-in-out;
    padding: 0;
    line-height: 1;
}

.board-cell:hover .board-cell-action[b-lbbapbbrdj] {
    opacity: 1;
}

.board-cell-action--relate:hover[b-lbbapbbrdj] {
    color: var(--accent);
    background-color: color-mix(in srgb, var(--board-cell-bg) 90%, transparent);
}

.board-cell-action--delete:hover[b-lbbapbbrdj] {
    color: var(--accent);
    background-color: color-mix(in srgb, var(--board-cell-bg) 90%, transparent);
}

.board-cell-action--disabled[b-lbbapbbrdj] {
    opacity: 0.3 !important;
    cursor: not-allowed;
    pointer-events: none;
}

/* /Components/BoardChatPanel.razor.rz.scp.css */
/* ============================================================
   BoardChatPanel — AI chat panel replacing the board inspector
   ============================================================ */

.board-chat-panel[b-48l3cze8u4] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    outline: none;
}

/* ---- Header ---- */

.chat-header[b-48l3cze8u4] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.chat-back-btn[b-48l3cze8u4] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink2);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 120ms ease, border-color 120ms ease;
}

.chat-back-btn:hover[b-48l3cze8u4] {
    color: var(--ink);
    border-color: var(--border2);
}

.chat-board-name[b-48l3cze8u4] {
    flex: 1;
    min-width: 0;
    font-size: 0.75rem;
    color: var(--ink3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}

.chat-update-btn[b-48l3cze8u4] {
    background: transparent;
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink2);
    font-size: 0.7rem;
    font-family: inherit;
    padding: 4px 8px;
    cursor: pointer;
    flex-shrink: 0;
    transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
}

.chat-update-btn:hover:not(:disabled)[b-48l3cze8u4] {
    color: var(--ink);
    border-color: var(--accent);
    background: var(--accent-lt);
}

.chat-update-btn:disabled[b-48l3cze8u4] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Message area ---- */

.chat-messages[b-48l3cze8u4] {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.chat-bubble-row[b-48l3cze8u4] {
    display: flex;
}

.chat-bubble-row--ai[b-48l3cze8u4] {
    justify-content: flex-start;
}

.chat-bubble-row--user[b-48l3cze8u4] {
    justify-content: flex-end;
}

.chat-bubble[b-48l3cze8u4] {
    max-width: 88%;
    padding: 9px 12px;
    font-size: 0.85rem;
    line-height: 1.55;
    word-break: break-word;
}

.chat-bubble--ai[b-48l3cze8u4] {
    background: var(--accent-lt);
    color: var(--ink);
    border-radius: var(--r-lg) var(--r-lg) var(--r-lg) var(--r);
}

.chat-bubble--user[b-48l3cze8u4] {
    background: var(--bg3);
    color: var(--ink);
    border-radius: var(--r-lg) var(--r-lg) var(--r) var(--r-lg);
}

/* ---- Bubble body (markdown content) ---- */

.chat-bubble-body[b-48l3cze8u4] {
    min-width: 0;
}

.chat-bubble-body--markdown p[b-48l3cze8u4] {
    margin: 0 0 0.5em 0;
}

.chat-bubble-body--markdown p:last-child[b-48l3cze8u4] {
    margin-bottom: 0;
}

.chat-bubble-body--markdown ul[b-48l3cze8u4],
.chat-bubble-body--markdown ol[b-48l3cze8u4] {
    margin: 0.25em 0 0.5em 0;
    padding-left: 1.4em;
}

.chat-bubble-body--markdown li[b-48l3cze8u4] {
    margin-bottom: 0.2em;
}

.chat-bubble-body--markdown strong[b-48l3cze8u4] {
    font-weight: 600;
}

.chat-bubble-body--markdown em[b-48l3cze8u4] {
    font-style: italic;
}

.chat-bubble-body--markdown code[b-48l3cze8u4] {
    font-family: var(--font-editor);
    font-size: 0.8em;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    padding: 1px 4px;
}

.chat-bubble-body--markdown h1[b-48l3cze8u4],
.chat-bubble-body--markdown h2[b-48l3cze8u4],
.chat-bubble-body--markdown h3[b-48l3cze8u4] {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0.5em 0 0.25em 0;
}

.chat-bubble-body--markdown h1:first-child[b-48l3cze8u4],
.chat-bubble-body--markdown h2:first-child[b-48l3cze8u4],
.chat-bubble-body--markdown h3:first-child[b-48l3cze8u4] {
    margin-top: 0;
}

/* ---- Thinking bubble ---- */

.chat-bubble--thinking[b-48l3cze8u4] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
}

.thinking-dot[b-48l3cze8u4] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    animation: thinking-bounce-b-48l3cze8u4 0.9s ease-in-out infinite;
}

.thinking-dot--1[b-48l3cze8u4] {
    animation-delay: 0s;
}

.thinking-dot--2[b-48l3cze8u4] {
    animation-delay: 0.2s;
}

.thinking-dot--3[b-48l3cze8u4] {
    animation-delay: 0.4s;
}

@keyframes thinking-bounce-b-48l3cze8u4 {
    0%, 100% { transform: scale(0.8); opacity: 0.3; }
    50%       { transform: scale(1.0); opacity: 1.0; }
}

.thinking-label[b-48l3cze8u4] {
    font-size: 0.78rem;
    color: var(--ink3);
    font-style: italic;
}

/* ---- Input area ---- */

.chat-input-area[b-48l3cze8u4] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.chat-textarea[b-48l3cze8u4] {
    flex: 1;
    min-height: 72px;
    max-height: 240px;
    padding: 8px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink);
    font-size: 0.85rem;
    font-family: inherit;
    line-height: 1.5;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 150ms ease-in-out;
}

.chat-textarea:focus[b-48l3cze8u4] {
    outline: none;
    border-color: var(--accent);
}

.chat-textarea:disabled[b-48l3cze8u4] {
    opacity: 0.5;
    cursor: not-allowed;
    resize: none;
}

.chat-textarea[b-48l3cze8u4]::placeholder {
    color: var(--ink3);
}

.chat-send-btn[b-48l3cze8u4] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--accent);
    border: none;
    border-radius: var(--r);
    color: #fff;
    cursor: pointer;
    transition: background 120ms ease, opacity 120ms ease;
}

.chat-send-btn:hover:not(:disabled)[b-48l3cze8u4] {
    background: var(--accent-hover);
}

.chat-send-btn:disabled[b-48l3cze8u4] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ---- Send button spinner ---- */

.send-spinner[b-48l3cze8u4] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: send-spin-b-48l3cze8u4 0.7s linear infinite;
}

@keyframes send-spin-b-48l3cze8u4 {
    to { transform: rotate(360deg); }
}
/* /Components/BoardHistoryPanel.razor.rz.scp.css */
.board-history-panel[b-jazribb5g6] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.board-history-panel-header[b-jazribb5g6] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.board-history-panel-title[b-jazribb5g6] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--ink2);
    font-family: var(--font-ui);
    letter-spacing: 0.04em;
}

.board-history-panel-close-btn[b-jazribb5g6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    border-radius: var(--r);
    color: var(--ink2);
    cursor: pointer;
}

.board-history-panel-close-btn:hover[b-jazribb5g6] {
    background: var(--bg3);
    color: var(--ink);
}

.board-history-panel-body[b-jazribb5g6] {
    display: flex;
    flex-direction: row;
    flex: 1;
    overflow: hidden;
}

.board-history-panel-sidebar[b-jazribb5g6] {
    width: 220px;
    flex-shrink: 0;
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.board-history-panel-list[b-jazribb5g6] {
    flex: 1;
    overflow-y: auto;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.board-history-panel-sentinel[b-jazribb5g6] {
    height: 1px;
    flex-shrink: 0;
}

.board-history-panel-loading[b-jazribb5g6] {
    padding: 8px 12px;
    font-size: 0.75rem;
    color: var(--ink3);
    font-family: var(--font-ui);
}

.board-history-panel-content[b-jazribb5g6] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.board-history-panel-loading-content[b-jazribb5g6] {
    padding: 24px;
    font-size: 0.85rem;
    color: var(--ink3);
    font-family: var(--font-ui);
}

.board-preview-header[b-jazribb5g6] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 6px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    font-family: var(--font-ui);
}

.board-preview-header.blocked[b-jazribb5g6] {
    background: color-mix(in srgb, var(--status-warning) 12%, transparent);
}

.board-preview-header-left[b-jazribb5g6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.board-preview-header-label[b-jazribb5g6] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink3);
}

.board-preview-header-timestamp[b-jazribb5g6] {
    font-size: 0.8rem;
    color: var(--ink2);
}

.board-btn-restore[b-jazribb5g6] {
    padding: 5px 12px;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    transition: background 150ms ease-in-out;
    flex-shrink: 0;
}

.board-btn-restore:hover:not(:disabled)[b-jazribb5g6] {
    background: var(--accent-hover);
}

.board-btn-restore.restoring[b-jazribb5g6] {
    opacity: 0.6;
    cursor: not-allowed;
}

.board-btn-restore.restoring[b-jazribb5g6]::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 6px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: board-btn-restore-spin-b-jazribb5g6 0.7s linear infinite;
    vertical-align: middle;
}

@keyframes board-btn-restore-spin-b-jazribb5g6 {
    to { transform: rotate(360deg); }
}

.board-btn-restore.disabled[b-jazribb5g6] {
    background: var(--bg3);
    color: var(--ink3);
    border: 1px solid var(--border);
    cursor: not-allowed;
}

.board-restore-confirm-timestamp[b-jazribb5g6] {
    font-size: 0.9rem;
    color: var(--ink2);
    font-family: var(--font-ui);
    margin-bottom: 12px;
}

.board-restore-confirm-callout[b-jazribb5g6] {
    padding: 10px 12px;
    border-radius: var(--r);
    background: color-mix(in srgb, var(--status-warning) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--status-warning) 40%, transparent);
    font-size: 0.85rem;
    font-family: var(--font-ui);
    color: var(--ink);
    line-height: 1.5;
}
/* /Components/BoardHistoryPreview.razor.rz.scp.css */
/* ============================================================
   BoardHistoryPreview — Static read-only board grid for history previews
   ============================================================ */

/* ---- Container & scroll ---- */

.bhp-container[b-5874hck8rq] {
    --bhp-row-header-width: 160px;
    --bhp-cell-width: 200px;
    --bhp-cell-min-height: 56px;
    --bhp-cell-max-height: 140px;
    --bhp-header-min-height: 48px;
    --bhp-header-max-lines: 2;
    --bhp-cell-max-lines: 6;

    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: var(--bg2);
    font-family: var(--font-ui);
}

.bhp-scroll-area[b-5874hck8rq] {
    width: 100%;
    height: 100%;
    overflow: auto;
}

/* ---- Empty state ---- */

.bhp-empty[b-5874hck8rq] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--ink2);
    font-size: 0.875rem;
}

/* ---- Grid layout ---- */

.bhp-grid[b-5874hck8rq] {
    display: grid;
    border-top: 1px solid var(--border);
    border-left: 1px solid var(--border);
}

/* ---- Corner cell ---- */

.bhp-corner-cell[b-5874hck8rq] {
    background-color: var(--bg3);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: var(--bhp-header-min-height);
    box-sizing: border-box;
}

/* ---- Column headers (X axis) ---- */

.bhp-col-header[b-5874hck8rq] {
    background-color: var(--bg3);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: var(--bhp-header-min-height);
    min-width: var(--bhp-cell-width);
    width: var(--bhp-cell-width);
    display: flex;
    align-items: center;
    padding: 8px 12px;
    box-sizing: border-box;
}

/* ---- Row headers (Y axis) ---- */

.bhp-row-header[b-5874hck8rq] {
    background-color: var(--bg3);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: var(--bhp-cell-min-height);
    max-height: var(--bhp-cell-max-height);
    width: var(--bhp-row-header-width);
    display: flex;
    align-items: center;
    padding: 8px 12px;
    box-sizing: border-box;
    overflow: hidden;
}

/* ---- Header label text ---- */

.bhp-header-name[b-5874hck8rq] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
    user-select: none;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--bhp-header-max-lines);
    line-clamp: var(--bhp-header-max-lines);
}

/* ---- Content cells ---- */

.bhp-cell[b-5874hck8rq] {
    background-color: var(--bg2);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: var(--bhp-cell-min-height);
    max-height: var(--bhp-cell-max-height);
    min-width: var(--bhp-cell-width);
    width: var(--bhp-cell-width);
    padding: 8px 12px;
    box-sizing: border-box;
    vertical-align: top;
    overflow: hidden;
}

.bhp-cell--has-content[b-5874hck8rq] {
    background-color: var(--bg);
}

/* ---- Cell content text ---- */

.bhp-cell-text[b-5874hck8rq] {
    font-size: 0.8125rem;
    color: var(--ink);
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--bhp-cell-max-lines);
    line-clamp: var(--bhp-cell-max-lines);
}
/* /Components/BoardInspector.razor.rz.scp.css */
/* ============================================================
   BoardInspector — Right pane inspector for boards
   ============================================================ */

.board-inspector[b-miv83g6voc] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 16px;
}

/* Reuse existing inspector patterns from DimensionInspector */

.inspector-section-group[b-miv83g6voc] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}

.inspector-section-group:first-child[b-miv83g6voc] {
    padding-top: 0;
    border-top: none;
}

.inspector-section-title[b-miv83g6voc] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.inspector-section[b-miv83g6voc] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.inspector-label[b-miv83g6voc] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inspector-input[b-miv83g6voc] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.inspector-input:focus[b-miv83g6voc] {
    outline: none;
    border-color: var(--accent);
}

.inspector-input:disabled[b-miv83g6voc] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Cell content notes editor ---- */

.inspector-notes-label-row[b-miv83g6voc] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
}

.inspector-notes-hint[b-miv83g6voc] {
    font-size: 0.65rem;
    color: var(--ink2);
    opacity: 0.7;
    font-style: italic;
    letter-spacing: 0.2px;
    flex-shrink: 0;
}

.inspector-notes-editor[b-miv83g6voc] {
    display: flex;
    align-items: stretch;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    transition: border-color 150ms ease-in-out;
    min-height: 400px;
    max-height: 500px;
    overflow-y: auto;
}

.inspector-notes-editor:focus-within[b-miv83g6voc] {
    border-color: var(--accent);
}

.board-cell-textarea[b-miv83g6voc] {
    flex: 1;
    padding: 8px 10px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    line-height: 1.6;
    resize: none;
    box-sizing: border-box;
    min-height: 400px;
    white-space: pre-wrap;
    overflow-y: auto;
}

.board-cell-textarea:focus[b-miv83g6voc] {
    outline: none;
}

.board-cell-textarea[b-miv83g6voc]::placeholder {
    color: var(--ink2);
    opacity: 0.45;
    white-space: pre;
}

/* ---- Cell context (axis item names + optional images) ---- */

.inspector-cell-context[b-miv83g6voc] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inspector-cell-context-card[b-miv83g6voc] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: var(--board-cell-bg);
    border: 1px solid var(--border);
    border-radius: 6px;
}

.inspector-cell-context-image[b-miv83g6voc] {
    width: 130px;
    height: 130px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
}

.inspector-cell-context-image--logo[b-miv83g6voc] {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.inspector-cell-context-info[b-miv83g6voc] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    padding-top: 2px;
}

.inspector-cell-context-axis[b-miv83g6voc] {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    flex-shrink: 0;
}

.inspector-cell-context-value[b-miv83g6voc] {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--ink);
    word-break: break-word;
}

/* ---- Axis item entity image ---- */

.inspector-axis-item-image[b-miv83g6voc] {
    max-width: 100%;
    max-height: 400px;
    border-radius: 6px;
    display: block;
}

/* ---- Custom axis entity dropdown ---- */

.inspector-axis-dropdown-wrapper[b-miv83g6voc] {
    position: relative;
}

.inspector-axis-dropdown-trigger[b-miv83g6voc] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 6px 10px;
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink);
    font-size: 0.85rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
}

.inspector-axis-dropdown-trigger:hover[b-miv83g6voc] {
    border-color: var(--accent);
}

.inspector-axis-dropdown-trigger:disabled[b-miv83g6voc] {
    opacity: 0.5;
    cursor: not-allowed;
}

.inspector-axis-dropdown-label[b-miv83g6voc] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inspector-axis-dropdown-chevron[b-miv83g6voc] {
    flex-shrink: 0;
    color: var(--ink2);
}

.inspector-axis-dropdown-icon[b-miv83g6voc] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    object-fit: contain;
    border-radius: 3px;
}

.inspector-axis-dropdown-menu[b-miv83g6voc] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 10;
    max-height: 200px;
    overflow-y: auto;
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: var(--r);
    margin-top: 2px;
    box-shadow: var(--shadow);
}

.inspector-axis-dropdown-item[b-miv83g6voc] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 6px 10px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.85rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
}

.inspector-axis-dropdown-item:hover[b-miv83g6voc] {
    background: var(--accent-lt);
}

.inspector-axis-dropdown-item--selected[b-miv83g6voc] {
    color: var(--accent);
    font-weight: 500;
}

/* ---- Entity navigation link button ---- */

.board-inspector-entity-link[b-miv83g6voc] {
    background: transparent;
    border: none;
    padding: 0;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: color 150ms ease-in-out;
}

.board-inspector-entity-link:hover[b-miv83g6voc] {
    color: var(--accent-hover);
}

/* ---- Extraction icon button (source boards) — shared class ---- */

.extraction-icon-btn[b-miv83g6voc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 120ms ease, background-color 120ms ease, border-color 120ms ease;
}

.extraction-icon-btn:hover:not(:disabled)[b-miv83g6voc] {
    color: var(--accent);
    background-color: var(--accent-lt);
    border-color: var(--accent-lt);
}

.extraction-icon-btn:disabled[b-miv83g6voc] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Full-width variant used in the node inspector panel */
.inspector-node-extract-btn[b-miv83g6voc] {
    width: 100%;
    height: 32px;
    border: 1px solid var(--border);
    color: var(--ink2);
}

.inspector-node-extract-btn:hover:not(:disabled)[b-miv83g6voc] {
    color: var(--accent);
    background-color: var(--accent-lt);
    border-color: var(--accent);
}

.extraction-icon-btn-spinner[b-miv83g6voc] {
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 2px solid rgba(43, 92, 230, 0.25);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: extraction-icon-spin-b-miv83g6voc 0.7s linear infinite;
}

@keyframes extraction-icon-spin-b-miv83g6voc {
    to { transform: rotate(360deg); }
}

/* ---- Advanced Settings link ---- */

.advanced-settings-link[b-miv83g6voc] {
    align-self: flex-start;
    background: none;
    border: none;
    padding: 0;
    font-size: 11px;
    color: var(--ink3);
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: transparent;
    transition: color 150ms ease-in-out, text-decoration-color 150ms ease-in-out;
}

.advanced-settings-link:hover[b-miv83g6voc] {
    color: var(--ink2);
    text-decoration-color: var(--ink2);
}

/* /Components/BoardView.razor.rz.scp.css */
/* ============================================================
   BoardView — Plot Board 2D grid with frozen headers
   ============================================================ */

.board-empty[b-i2mkbf9hp4] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.board-empty-text[b-i2mkbf9hp4] {
    color: var(--ink2);
    font-size: 0.9rem;
}

/* ---- Container & scroll ---- */

.board-container[b-i2mkbf9hp4] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background-color: var(--bg);
}

.board-scroll-area[b-i2mkbf9hp4] {
    flex: 1;
    overflow: auto;
    position: relative;
}

/* ---- Grid layout ---- */

.board-grid[b-i2mkbf9hp4] {
    display: grid;
    position: relative;
    border-collapse: collapse;
}

/* ---- Corner cell (z-index 3: above both row and col headers) ---- */

.board-corner-cell[b-i2mkbf9hp4] {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 3;
    background-color: var(--board-header-bg);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 8px 12px;
    min-height: 56px;
    width: var(--board-row-header-width);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 2px;
    cursor: pointer;
    box-sizing: border-box;
}

/* ---- Column headers (z-index 2: sticky top, scroll left, same tinted background as corner) ---- */

.board-col-header[b-i2mkbf9hp4] {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: var(--board-header-bg);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: 56px;
    min-width: var(--board-cell-width);
    width: var(--board-cell-width);
    cursor: grab;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.board-col-header:active[b-i2mkbf9hp4] {
    cursor: grabbing;
}

/* ---- Row headers (z-index 1: scroll top, sticky left) ---- */

.board-row-header[b-i2mkbf9hp4] {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: var(--board-header-bg);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: var(--board-cell-height);
    width: var(--board-row-header-width);
    cursor: grab;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.board-row-header:active[b-i2mkbf9hp4] {
    cursor: grabbing;
}

/* ---- Header inner content ---- */

.board-header-inner[b-i2mkbf9hp4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 12px 10px 16px;
    width: 100%;
    position: relative;
    transition: background-color 150ms ease-in-out;
}

.board-col-header .board-header-inner[b-i2mkbf9hp4] {
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

.board-col-header .board-header-name[b-i2mkbf9hp4],
.board-row-header .board-header-name[b-i2mkbf9hp4] {
    white-space: normal;
    word-break: break-word;
    text-align: center;
}

/* ---- Drop indicator lines ---- */

/* Column headers: vertical line on left or right edge */
.board-col-header.board-header--drop-before[b-i2mkbf9hp4],
.board-col-header.board-header--drop-after[b-i2mkbf9hp4] {
    position: relative;
}

.board-col-header.board-header--drop-before[b-i2mkbf9hp4]::before,
.board-col-header.board-header--drop-after[b-i2mkbf9hp4]::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: var(--accent);
    pointer-events: none;
    z-index: 10;
    box-shadow: 0 0 6px var(--accent-lt);
}

.board-col-header.board-header--drop-before[b-i2mkbf9hp4]::before {
    left: 0;
}

.board-col-header.board-header--drop-after[b-i2mkbf9hp4]::after {
    right: 0;
}

/* Row headers: horizontal line on top or bottom edge */
.board-row-header.board-header--drop-before[b-i2mkbf9hp4],
.board-row-header.board-header--drop-after[b-i2mkbf9hp4] {
    position: relative;
}

.board-row-header.board-header--drop-before[b-i2mkbf9hp4]::before,
.board-row-header.board-header--drop-after[b-i2mkbf9hp4]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--accent);
    pointer-events: none;
    z-index: 10;
    box-shadow: 0 0 6px var(--accent-lt);
}

.board-row-header.board-header--drop-before[b-i2mkbf9hp4]::before {
    top: 0;
}

.board-row-header.board-header--drop-after[b-i2mkbf9hp4]::after {
    bottom: 0;
}

.board-header--selected[b-i2mkbf9hp4] {
    background-color: var(--accent-lt);
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

/* ---- Thumbnail ---- */

.board-header-thumbnail[b-i2mkbf9hp4] {
    width: 72px;
    height: 72px;
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
}

.board-header-thumbnail--logo[b-i2mkbf9hp4] {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

/* ---- Header name & edit ---- */

.board-header-name[b-i2mkbf9hp4] {
    font-size: 0.875rem;
    color: var(--ink);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
    cursor: default;
    user-select: none;
}

.board-header-edit-input[b-i2mkbf9hp4] {
    flex: 1;
    min-width: 0;
    background: var(--bg3);
    border: 1px solid var(--accent);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    padding: 2px 6px;
    outline: none;
    width: 100%;
    box-sizing: border-box;
}

/* ---- Add column cell ---- */

.board-add-col-cell[b-i2mkbf9hp4] {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: var(--board-header-bg);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    width: var(--board-add-col-width);
    box-sizing: border-box;
}

/* ---- Add row cell ---- */

.board-add-row-cell[b-i2mkbf9hp4] {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: var(--board-header-bg);
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    width: var(--board-row-header-width);
    box-sizing: border-box;
}

/* ---- Add button ---- */

.board-add-btn[b-i2mkbf9hp4] {
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background-color 150ms ease-in-out;
}

.board-add-btn:hover[b-i2mkbf9hp4] {
    color: var(--ink);
    border-color: var(--accent);
    background-color: var(--accent-lt);
}

/* ---- Filler cell at end of each row ---- */

.board-cell--filler[b-i2mkbf9hp4] {
    background-color: var(--bg);
}

/* ---- Entity picker item logo ---- */

.entity-picker-item-btn[b-i2mkbf9hp4] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.entity-picker-item-logo[b-i2mkbf9hp4] {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    object-fit: contain;
}

/* /Components/ConfirmDialog.razor.rz.scp.css */
/* ============================================================
   ConfirmDialog — Generic action confirmation dialog
   ============================================================ */

.modal-backdrop[b-6ush45poh9] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-6ush45poh9 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-6ush45poh9 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-6ush45poh9] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 440px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-6ush45poh9 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-6ush45poh9 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-6ush45poh9] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-6ush45poh9] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ---- Body ---- */

.modal-body[b-6ush45poh9] {
    padding: 1rem 1.5rem;
}

.modal-message[b-6ush45poh9] {
    font-size: 0.9rem;
    color: var(--ink2);
    line-height: 1.6;
    margin: 0;
}

.modal-message strong[b-6ush45poh9] {
    color: var(--ink);
    font-weight: 600;
}

/* ---- Footer ---- */

.modal-footer[b-6ush45poh9] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Buttons ---- */

.btn-confirm[b-6ush45poh9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
}

.btn-confirm:hover:not(:disabled)[b-6ush45poh9] {
    background: var(--accent-hover);
}

.btn-confirm:disabled[b-6ush45poh9] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-delete[b-6ush45poh9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--status-error);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
}

.btn-delete:hover:not(:disabled)[b-6ush45poh9] {
    background: var(--status-error);
    opacity: 0.85;
}

.btn-delete:disabled[b-6ush45poh9] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-cancel[b-6ush45poh9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-6ush45poh9] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-6ush45poh9] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-6ush45poh9] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-6ush45poh9 0.7s linear infinite;
}

@keyframes btn-spin-b-6ush45poh9 {
    to { transform: rotate(360deg); }
}
/* /Components/ContentWarningDialog.razor.rz.scp.css */
/* ============================================================
   ContentWarningDialog — Warns before replacing entity content
   ============================================================ */

.modal-backdrop[b-o3iefi2ham] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: cw-backdrop-fade-in-b-o3iefi2ham 150ms ease-in-out both;
}

@keyframes cw-backdrop-fade-in-b-o3iefi2ham {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-dialog[b-o3iefi2ham] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 440px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: cw-dialog-slide-in-b-o3iefi2ham 150ms ease-in-out both;
}

@keyframes cw-dialog-slide-in-b-o3iefi2ham {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-o3iefi2ham] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-o3iefi2ham] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-body[b-o3iefi2ham] {
    padding: 1rem 1.5rem;
}

.modal-message[b-o3iefi2ham] {
    font-size: 0.9rem;
    color: var(--ink2);
    line-height: 1.6;
    margin: 0;
}

.modal-footer[b-o3iefi2ham] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Buttons ---- */

.btn-cancel[b-o3iefi2ham] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover[b-o3iefi2ham] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-destructive[b-o3iefi2ham] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--status-error);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
}

.btn-destructive:hover[b-o3iefi2ham] {
    opacity: 0.85;
}
/* /Components/ContextMenu.razor.rz.scp.css */
/* ============================================================
   ContextMenu — Right-click / ellipsis floating menu
   ============================================================ */

.context-menu-backdrop[b-1vey8k29wu] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: transparent;
}

.context-menu[b-1vey8k29wu] {
    position: fixed;
    z-index: 901;
    background-color: var(--pane-bg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    min-width: 160px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
    overflow: hidden;
    animation: menu-pop-in-b-1vey8k29wu 120ms ease-out both;
}

@keyframes menu-pop-in-b-1vey8k29wu {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.context-menu-item[b-1vey8k29wu] {
    display: block;
    width: 100%;
    padding: 8px 14px;
    background: none;
    border: none;
    color: var(--text-primary);
    font-size: 0.85rem;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.context-menu-item:hover[b-1vey8k29wu] {
    background-color: rgba(75, 0, 130, 0.2);
    color: var(--text-primary);
}
/* /Components/CreateProjectModal.razor.rz.scp.css */
/* ============================================================
   CreateProjectModal — New project creation dialog
   ============================================================ */

.modal-backdrop[b-y6bv1i1kn9] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-y6bv1i1kn9 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-y6bv1i1kn9 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-y6bv1i1kn9] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: fit-content;
    min-width: 420px;
    max-width: 680px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-y6bv1i1kn9 150ms ease-in-out both;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

@keyframes dialog-slide-in-b-y6bv1i1kn9 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-y6bv1i1kn9] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-y6bv1i1kn9] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ---- Body ---- */

.modal-body[b-y6bv1i1kn9] {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ---- Field inputs ---- */

.field-label[b-y6bv1i1kn9] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--ink2);
    display: block;
    margin-bottom: 0.35rem;
}

.field-input[b-y6bv1i1kn9] {
    width: 100%;
    padding: 0.6rem 0.75rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.field-input:focus[b-y6bv1i1kn9] {
    outline: none;
    border-color: var(--accent);
}

.field-input:disabled[b-y6bv1i1kn9] {
    opacity: 0.5;
    cursor: not-allowed;
}

.field-input[b-y6bv1i1kn9]::placeholder {
    color: var(--ink2);
    opacity: 0.7;
}

/* ---- Footer ---- */

.modal-footer[b-y6bv1i1kn9] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Buttons ---- */

.btn-primary-action[b-y6bv1i1kn9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.5rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 100px;
    min-height: 38px;
}

.btn-primary-action:hover:not(:disabled)[b-y6bv1i1kn9] {
    background: var(--accent-hover);
}

.btn-primary-action:disabled[b-y6bv1i1kn9] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-secondary[b-y6bv1i1kn9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    width: auto;
    min-width: 100px;
    min-height: 38px;
}

.btn-secondary:hover:not(:disabled)[b-y6bv1i1kn9] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-secondary:disabled[b-y6bv1i1kn9] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-y6bv1i1kn9] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-y6bv1i1kn9 0.7s linear infinite;
}

@keyframes btn-spin-b-y6bv1i1kn9 {
    to { transform: rotate(360deg); }
}

/* ---- Compact writing mode selector ---- */

.mode-cards[b-y6bv1i1kn9] {
    display: flex;
    gap: 0.75rem;
}

.mode-cards--compact .mode-card[b-y6bv1i1kn9] {
    flex: 1;
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 0.75rem;
    cursor: pointer;
    text-align: center;
    outline: none;
    user-select: none;
    transition: border-color 150ms ease-in-out,
                box-shadow 150ms ease-in-out;
}

.mode-cards--compact .mode-card:hover[b-y6bv1i1kn9] {
    border-color: var(--border2);
}

.mode-cards--compact .mode-card.selected[b-y6bv1i1kn9] {
    border-color: var(--accent-hover);
    box-shadow: 0 0 0 2px var(--accent-lt);
}

.mode-cards--compact .mode-card:focus-visible[b-y6bv1i1kn9] {
    outline: 2px solid var(--accent-hover);
    outline-offset: 2px;
}

.mode-card-illustration[b-y6bv1i1kn9] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 64px;
}

.mode-card-title[b-y6bv1i1kn9] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--ink);
    margin-top: 0.5rem;
}

/* ---- Template loading state ---- */

.template-loading[b-y6bv1i1kn9] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
}

.template-spinner[b-y6bv1i1kn9] {
    display: inline-block;
    width: 22px;
    height: 22px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: template-spin-b-y6bv1i1kn9 0.7s linear infinite;
}

@keyframes template-spin-b-y6bv1i1kn9 {
    to { transform: rotate(360deg); }
}

/* ---- Template section ---- */

.template-section[b-y6bv1i1kn9] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.template-grid[b-y6bv1i1kn9] {
    display: grid;
    grid-template-columns: repeat(var(--col-count, 3), 190px);
    gap: 8px;
}

/* ---- Error notices ---- */

.template-error-notice[b-y6bv1i1kn9] {
    font-size: 0.8rem;
    color: var(--ink2);
    background: rgba(229, 57, 53, 0.08);
    border: 1px solid rgba(229, 57, 53, 0.2);
    border-radius: 4px;
    padding: 0.5rem 0.75rem;
    margin: 0;
    line-height: 1.4;
}

.create-error-notice[b-y6bv1i1kn9] {
    font-size: 0.8rem;
    color: var(--status-error);
    margin: 0;
    line-height: 1.4;
}

/* ---- Name section ---- */

.name-section[b-y6bv1i1kn9] {
    display: flex;
    flex-direction: column;
}
/* /Components/DimensionAdvancedSettingsDialog.razor.rz.scp.css */
/* ============================================================
   DimensionAdvancedSettingsDialog — Staged settings dialog
   ============================================================ */

/* ---- Backdrop ---- */

.adv-backdrop[b-4zc3qvzz35] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: adv-backdrop-in-b-4zc3qvzz35 150ms ease-in-out both;
}

@keyframes adv-backdrop-in-b-4zc3qvzz35 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog box ---- */

.adv-dialog[b-4zc3qvzz35] {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    width: 460px;
    max-width: calc(100vw - 2rem);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    animation: adv-dialog-in-b-4zc3qvzz35 150ms ease-in-out both;
    outline: none;
}

@keyframes adv-dialog-in-b-4zc3qvzz35 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.adv-header[b-4zc3qvzz35] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.adv-title[b-4zc3qvzz35] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adv-close-btn[b-4zc3qvzz35] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: var(--r);
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.adv-close-btn:hover[b-4zc3qvzz35] {
    color: var(--ink);
    background: var(--bg3);
}

/* ---- Body ---- */

.adv-body[b-4zc3qvzz35] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ---- Section groups ---- */

.adv-section-group[b-4zc3qvzz35] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--r);
}

.adv-section-title[b-4zc3qvzz35] {
    margin: -10px -10px 0 -10px;
    padding: 6px 10px;
    background: var(--bg3);
    border-bottom: 1px solid var(--border);
    border-radius: var(--r) var(--r) 0 0;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

/* ---- Fields ---- */

.adv-field[b-4zc3qvzz35] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.adv-row[b-4zc3qvzz35] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.adv-label[b-4zc3qvzz35] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.adv-label--inline[b-4zc3qvzz35] {
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.85rem;
    color: var(--ink);
}

.adv-input[b-4zc3qvzz35] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.adv-input:focus[b-4zc3qvzz35] {
    outline: none;
    border-color: var(--accent);
}

/* ---- Description textarea ---- */

.adv-textarea[b-4zc3qvzz35] {
    width: 100%;
    resize: vertical;
    background: var(--bg3);
    color: var(--ink);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 6px 10px;
    font-family: var(--font-ui);
    font-size: 0.85rem;
    line-height: 1.4;
    box-sizing: border-box;
    transition: border-color 150ms ease-in-out;
}

.adv-textarea:focus[b-4zc3qvzz35] {
    outline: none;
    border-color: var(--accent);
}

.adv-textarea[b-4zc3qvzz35]::placeholder {
    color: var(--ink3);
}

.adv-char-count[b-4zc3qvzz35] {
    display: block;
    text-align: right;
    font-size: 0.7rem;
    color: var(--ink3);
}

/* ---- Icon trigger ---- */

.adv-icon-trigger-row[b-4zc3qvzz35] {
    display: flex;
    position: relative;
}

.adv-icon-trigger-btn[b-4zc3qvzz35] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    cursor: pointer;
    transition: border-color 150ms ease-in-out;
}

.adv-icon-trigger-btn:hover[b-4zc3qvzz35] {
    border-color: var(--accent);
}

.adv-icon-svg[b-4zc3qvzz35] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--accent);
}

.adv-icon-svg svg[b-4zc3qvzz35] {
    width: 20px;
    height: 20px;
}

/* ---- Segmented control ---- */

.adv-segmented-control[b-4zc3qvzz35] {
    display: flex;
    background: var(--border);
    border-radius: 6px;
    padding: 2px;
    gap: 2px;
}

.adv-segment[b-4zc3qvzz35] {
    flex: 1;
    padding: 6px 12px;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.8rem;
    font-family: inherit;
    cursor: pointer;
    transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
    white-space: nowrap;
}

.adv-segment:hover:not(.adv-segment--active)[b-4zc3qvzz35] {
    background: var(--bg3);
    color: var(--ink);
}

.adv-segment--active[b-4zc3qvzz35] {
    background: var(--accent);
    color: var(--ink);
}

/* ---- Toggle switch ---- */

.adv-toggle[b-4zc3qvzz35] {
    position: relative;
    width: 38px;
    height: 20px;
    background: var(--border);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    transition: background-color 150ms ease-in-out;
    flex-shrink: 0;
}

.adv-toggle--on[b-4zc3qvzz35] {
    background: var(--accent);
}

.adv-toggle-thumb[b-4zc3qvzz35] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 150ms ease-in-out;
}

.adv-toggle--on .adv-toggle-thumb[b-4zc3qvzz35] {
    transform: translateX(18px);
}

/* ---- Footer ---- */

.adv-footer[b-4zc3qvzz35] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* ---- Save button ---- */

.btn-save[b-4zc3qvzz35] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: var(--ink);
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 80px;
    min-height: 38px;
}

.btn-save:hover:not(:disabled)[b-4zc3qvzz35] {
    background: var(--accent-hover);
}

.btn-save:disabled[b-4zc3qvzz35] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Cancel button (ghost, local override since ConfirmDialog CSS is scoped) ---- */

.btn-cancel[b-4zc3qvzz35] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-4zc3qvzz35] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-4zc3qvzz35] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-4zc3qvzz35] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: adv-spin-b-4zc3qvzz35 0.7s linear infinite;
}

@keyframes adv-spin-b-4zc3qvzz35 {
    to { transform: rotate(360deg); }
}
/* /Components/DimensionHistoryPanel.razor.rz.scp.css */
.dim-history-panel[b-esrqp5cljh] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.dim-history-panel-header[b-esrqp5cljh] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.dim-history-panel-title[b-esrqp5cljh] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--ink2);
    font-family: var(--font-ui);
    letter-spacing: 0.04em;
}

.dim-history-panel-close-btn[b-esrqp5cljh] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    border-radius: var(--r);
    color: var(--ink2);
    cursor: pointer;
}

.dim-history-panel-close-btn:hover[b-esrqp5cljh] {
    background: var(--bg3);
    color: var(--ink);
}

.dim-history-panel-body[b-esrqp5cljh] {
    display: flex;
    flex-direction: row;
    flex: 1;
    overflow: hidden;
}

.dim-history-panel-sidebar[b-esrqp5cljh] {
    width: 220px;
    flex-shrink: 0;
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.dim-history-panel-list[b-esrqp5cljh] {
    flex: 1;
    overflow-y: auto;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dim-history-panel-sentinel[b-esrqp5cljh] {
    height: 1px;
    flex-shrink: 0;
}

.dim-history-panel-loading[b-esrqp5cljh] {
    padding: 8px 12px;
    font-size: 0.75rem;
    color: var(--ink3);
    font-family: var(--font-ui);
}

.dim-history-panel-content[b-esrqp5cljh] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.dim-history-panel-loading-content[b-esrqp5cljh] {
    padding: 24px;
    font-size: 0.85rem;
    color: var(--ink3);
    font-family: var(--font-ui);
}

.dim-preview-header[b-esrqp5cljh] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 6px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    font-family: var(--font-ui);
}

.dim-preview-header.blocked[b-esrqp5cljh] {
    background: color-mix(in srgb, var(--status-warning) 12%, transparent);
}

.dim-preview-header-left[b-esrqp5cljh] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dim-preview-header-label[b-esrqp5cljh] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink3);
}

.dim-preview-header-timestamp[b-esrqp5cljh] {
    font-size: 0.8rem;
    color: var(--ink2);
}

.dim-btn-restore[b-esrqp5cljh] {
    padding: 5px 12px;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    transition: background 150ms ease-in-out;
    flex-shrink: 0;
}

.dim-btn-restore:hover:not(:disabled)[b-esrqp5cljh] {
    background: var(--accent-hover);
}

.dim-btn-restore.restoring[b-esrqp5cljh] {
    opacity: 0.6;
    cursor: not-allowed;
}

.dim-btn-restore.restoring[b-esrqp5cljh]::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 6px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: dim-btn-restore-spin-b-esrqp5cljh 0.7s linear infinite;
    vertical-align: middle;
}

@keyframes dim-btn-restore-spin-b-esrqp5cljh {
    to { transform: rotate(360deg); }
}

.dim-btn-restore.disabled[b-esrqp5cljh] {
    background: var(--bg3);
    color: var(--ink3);
    border: 1px solid var(--border);
    cursor: not-allowed;
}

.dim-restore-confirm-timestamp[b-esrqp5cljh] {
    font-size: 0.9rem;
    color: var(--ink2);
    font-family: var(--font-ui);
    margin-bottom: 12px;
}

.dim-restore-confirm-callout[b-esrqp5cljh] {
    padding: 10px 12px;
    border-radius: var(--r);
    background: color-mix(in srgb, var(--status-warning) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--status-warning) 40%, transparent);
    font-size: 0.85rem;
    font-family: var(--font-ui);
    color: var(--ink);
    line-height: 1.5;
}

.dim-history-past-scroll[b-esrqp5cljh] {
    height: 100%;
    overflow-y: auto;
    background-color: var(--bg3);
}

.dim-history-past-view[b-esrqp5cljh] {
    max-width: 720px;
    margin: 0 auto;
    padding: 4px 40px;
    background-color: var(--bg);
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    font-family: var(--assembled-font, 'Garamond', 'EB Garamond', 'Georgia', serif);
    line-height: var(--assembled-line-height, 1.8);
    color: var(--ink);
    font-size: 1.25rem;
    text-align: var(--content-align, justify);
    text-indent: var(--content-indent, 2em);
}
/* /Components/DimensionInspector.razor.rz.scp.css */
/* ============================================================
   DimensionInspector — Right pane inspector for dimensions
   ============================================================ */

.dimension-inspector[b-hirotaw15a] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 16px;
}

.inspector-section[b-hirotaw15a] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.inspector-label[b-hirotaw15a] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inspector-input[b-hirotaw15a] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.inspector-input:focus[b-hirotaw15a] {
    outline: none;
    border-color: var(--accent);
}

.inspector-input:disabled[b-hirotaw15a] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Generate section ---- */

.generate-section[b-hirotaw15a] {
    padding-top: 4px;
}

/* ---- Advanced Settings link ---- */

.advanced-settings-link[b-hirotaw15a] {
    align-self: flex-start;
    background: none;
    border: none;
    padding: 0;
    font-size: 11px;
    color: var(--ink3);
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: transparent;
    transition: color 150ms ease-in-out, text-decoration-color 150ms ease-in-out;
}

.advanced-settings-link:hover[b-hirotaw15a] {
    color: var(--ink2);
    text-decoration-color: var(--ink2);
}
/* /Components/EditProjectModal.razor.rz.scp.css */
/* ============================================================
   EditProjectModal — Project name and writing mode editing dialog
   ============================================================ */

.modal-backdrop[b-t0ftvr2efg] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-t0ftvr2efg 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-t0ftvr2efg {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-t0ftvr2efg] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-t0ftvr2efg 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-t0ftvr2efg {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-t0ftvr2efg] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-t0ftvr2efg] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ---- Body ---- */

.modal-body[b-t0ftvr2efg] {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.field-label[b-t0ftvr2efg] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--ink2);
}

.field-input[b-t0ftvr2efg] {
    width: 100%;
    padding: 0.6rem 0.75rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.field-input:focus[b-t0ftvr2efg] {
    outline: none;
    border-color: var(--accent);
}

.field-input:disabled[b-t0ftvr2efg] {
    opacity: 0.5;
    cursor: not-allowed;
}

.field-input[b-t0ftvr2efg]::placeholder {
    color: var(--ink2);
    opacity: 0.7;
}

/* ---- Mode selector label ---- */

.mode-selector-label[b-t0ftvr2efg] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--ink2);
    margin-top: 0.5rem;
}

/* ---- Compact writing mode selector ---- */

.mode-cards[b-t0ftvr2efg] {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.mode-cards--compact .mode-card[b-t0ftvr2efg] {
    flex: 1;
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 0.75rem;
    cursor: pointer;
    text-align: center;
    outline: none;
    user-select: none;
    transition: border-color 150ms ease-in-out,
                box-shadow 150ms ease-in-out;
}

.mode-cards--compact .mode-card:hover[b-t0ftvr2efg] {
    border-color: var(--border2);
}

.mode-cards--compact .mode-card.selected[b-t0ftvr2efg] {
    border-color: var(--accent-hover);
    box-shadow: 0 0 0 2px var(--accent-lt);
}

.mode-cards--compact .mode-card:focus-visible[b-t0ftvr2efg] {
    outline: 2px solid var(--accent-hover);
    outline-offset: 2px;
}

.mode-card-illustration[b-t0ftvr2efg] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 64px;
}

.mode-card-title[b-t0ftvr2efg] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--ink);
    margin-top: 0.5rem;
}

/* ---- Footer ---- */

.modal-footer[b-t0ftvr2efg] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Buttons ---- */

.btn-primary-action[b-t0ftvr2efg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.5rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 100px;
    min-height: 38px;
}

.btn-primary-action:hover:not(:disabled)[b-t0ftvr2efg] {
    background: var(--accent-hover);
}

.btn-primary-action:disabled[b-t0ftvr2efg] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-secondary[b-t0ftvr2efg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-secondary:hover:not(:disabled)[b-t0ftvr2efg] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-secondary:disabled[b-t0ftvr2efg] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-t0ftvr2efg] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-t0ftvr2efg 0.7s linear infinite;
}

@keyframes btn-spin-b-t0ftvr2efg {
    to { transform: rotate(360deg); }
}
/* /Components/EmptyState.razor.rz.scp.css */
/* ============================================================
   EmptyState — Placeholder when nothing is selected
   ============================================================ */

.empty-state-panel[b-xn9q7rziib] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 48px 24px;
    text-align: center;
    gap: 12px;
}

.empty-icon[b-xn9q7rziib] {
    color: var(--border);
    margin-bottom: 8px;
}

.empty-title[b-xn9q7rziib] {
    font-size: 0.95rem;
    color: var(--ink2);
    margin: 0;
}

.empty-subtitle[b-xn9q7rziib] {
    font-size: 0.8rem;
    color: var(--ink2);
    opacity: 0.7;
    margin: 0;
}
/* /Components/EntityChatPanel.razor.rz.scp.css */
/* ============================================================
   EntityChatPanel — AI chat panel replacing the entity inspector
   ============================================================ */

.board-chat-panel[b-y2i1ouoouk] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    outline: none;
}

/* ---- Header ---- */

.chat-header[b-y2i1ouoouk] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.chat-back-btn[b-y2i1ouoouk] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink2);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 120ms ease, border-color 120ms ease;
}

.chat-back-btn:hover[b-y2i1ouoouk] {
    color: var(--ink);
    border-color: var(--border2);
}

.chat-board-name[b-y2i1ouoouk] {
    flex: 1;
    min-width: 0;
    font-size: 0.75rem;
    color: var(--ink3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}

/* ---- Message area ---- */

.chat-messages[b-y2i1ouoouk] {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.chat-bubble-row[b-y2i1ouoouk] {
    display: flex;
}

.chat-bubble-row--ai[b-y2i1ouoouk] {
    justify-content: flex-start;
}

.chat-bubble-row--user[b-y2i1ouoouk] {
    justify-content: flex-end;
}

.chat-bubble[b-y2i1ouoouk] {
    max-width: 88%;
    padding: 9px 12px;
    font-size: 0.85rem;
    line-height: 1.55;
    word-break: break-word;
}

.chat-bubble--ai[b-y2i1ouoouk] {
    background: var(--accent-lt);
    color: var(--ink);
    border-radius: var(--r-lg) var(--r-lg) var(--r-lg) var(--r);
}

.chat-bubble--user[b-y2i1ouoouk] {
    background: var(--bg3);
    color: var(--ink);
    border-radius: var(--r-lg) var(--r-lg) var(--r) var(--r-lg);
}

/* ---- Bubble body (markdown content) ---- */

.chat-bubble-body[b-y2i1ouoouk] {
    min-width: 0;
}

.chat-bubble-body--markdown p[b-y2i1ouoouk] {
    margin: 0 0 0.5em 0;
}

.chat-bubble-body--markdown p:last-child[b-y2i1ouoouk] {
    margin-bottom: 0;
}

.chat-bubble-body--markdown ul[b-y2i1ouoouk],
.chat-bubble-body--markdown ol[b-y2i1ouoouk] {
    margin: 0.25em 0 0.5em 0;
    padding-left: 1.4em;
}

.chat-bubble-body--markdown li[b-y2i1ouoouk] {
    margin-bottom: 0.2em;
}

.chat-bubble-body--markdown strong[b-y2i1ouoouk] {
    font-weight: 600;
}

.chat-bubble-body--markdown em[b-y2i1ouoouk] {
    font-style: italic;
}

.chat-bubble-body--markdown code[b-y2i1ouoouk] {
    font-family: var(--font-editor);
    font-size: 0.8em;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    padding: 1px 4px;
}

.chat-bubble-body--markdown h1[b-y2i1ouoouk],
.chat-bubble-body--markdown h2[b-y2i1ouoouk],
.chat-bubble-body--markdown h3[b-y2i1ouoouk] {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0.5em 0 0.25em 0;
}

.chat-bubble-body--markdown h1:first-child[b-y2i1ouoouk],
.chat-bubble-body--markdown h2:first-child[b-y2i1ouoouk],
.chat-bubble-body--markdown h3:first-child[b-y2i1ouoouk] {
    margin-top: 0;
}

/* ---- Thinking bubble ---- */

.chat-bubble--thinking[b-y2i1ouoouk] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
}

.thinking-dot[b-y2i1ouoouk] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    animation: thinking-bounce-b-y2i1ouoouk 0.9s ease-in-out infinite;
}

.thinking-dot--1[b-y2i1ouoouk] {
    animation-delay: 0s;
}

.thinking-dot--2[b-y2i1ouoouk] {
    animation-delay: 0.2s;
}

.thinking-dot--3[b-y2i1ouoouk] {
    animation-delay: 0.4s;
}

@keyframes thinking-bounce-b-y2i1ouoouk {
    0%, 100% { transform: scale(0.8); opacity: 0.3; }
    50%       { transform: scale(1.0); opacity: 1.0; }
}

.thinking-label[b-y2i1ouoouk] {
    font-size: 0.78rem;
    color: var(--ink3);
    font-style: italic;
}

/* ---- Input area ---- */

.chat-input-area[b-y2i1ouoouk] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.chat-textarea[b-y2i1ouoouk] {
    flex: 1;
    min-height: 72px;
    max-height: 240px;
    padding: 8px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink);
    font-size: 0.85rem;
    font-family: inherit;
    line-height: 1.5;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 150ms ease-in-out;
}

.chat-textarea:focus[b-y2i1ouoouk] {
    outline: none;
    border-color: var(--accent);
}

.chat-textarea:disabled[b-y2i1ouoouk] {
    opacity: 0.5;
    cursor: not-allowed;
    resize: none;
}

.chat-textarea[b-y2i1ouoouk]::placeholder {
    color: var(--ink3);
}

.chat-send-btn[b-y2i1ouoouk] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--accent);
    border: none;
    border-radius: var(--r);
    color: #fff;
    cursor: pointer;
    transition: background 120ms ease, opacity 120ms ease;
}

.chat-send-btn:hover:not(:disabled)[b-y2i1ouoouk] {
    background: var(--accent-hover);
}

.chat-send-btn:disabled[b-y2i1ouoouk] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ---- Send button spinner ---- */

.send-spinner[b-y2i1ouoouk] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: send-spin-b-y2i1ouoouk 0.7s linear infinite;
}

@keyframes send-spin-b-y2i1ouoouk {
    to { transform: rotate(360deg); }
}
/* /Components/EntityHistoryPanel.razor.rz.scp.css */
.history-panel[b-k305j9rozj] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.history-panel-header[b-k305j9rozj] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.history-panel-title[b-k305j9rozj] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--ink2);
    font-family: var(--font-ui);
    letter-spacing: 0.04em;
}

.history-panel-close-btn[b-k305j9rozj] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    border-radius: var(--r);
    color: var(--ink2);
    cursor: pointer;
}

.history-panel-close-btn:hover[b-k305j9rozj] {
    background: var(--bg3);
    color: var(--ink);
}

.history-panel-body[b-k305j9rozj] {
    display: flex;
    flex-direction: row;
    flex: 1;
    overflow: hidden;
}

.history-panel-sidebar[b-k305j9rozj] {
    width: 220px;
    flex-shrink: 0;
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.history-panel-list[b-k305j9rozj] {
    flex: 1;
    overflow-y: auto;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.history-panel-sentinel[b-k305j9rozj] {
    height: 1px;
    flex-shrink: 0;
}

.history-panel-loading[b-k305j9rozj] {
    padding: 8px 12px;
    font-size: 0.75rem;
    color: var(--ink3);
    font-family: var(--font-ui);
}

.history-panel-content[b-k305j9rozj] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.preview-header[b-k305j9rozj] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 6px 12px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    font-family: var(--font-ui);
}

.preview-header.blocked[b-k305j9rozj] {
    background: color-mix(in srgb, var(--status-warning) 12%, transparent);
}

.preview-header-left[b-k305j9rozj] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.preview-header-label[b-k305j9rozj] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink3);
}

.preview-header-timestamp[b-k305j9rozj] {
    font-size: 0.8rem;
    color: var(--ink2);
}

.btn-restore[b-k305j9rozj] {
    padding: 5px 12px;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: 0.8rem;
    font-weight: 600;
    transition: background 150ms ease-in-out;
    flex-shrink: 0;
}

.btn-restore:hover:not(:disabled)[b-k305j9rozj] {
    background: var(--accent-hover);
}

.btn-restore.restoring[b-k305j9rozj] {
    opacity: 0.6;
    cursor: not-allowed;
}

.btn-restore.restoring[b-k305j9rozj]::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 6px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-restore-spin-b-k305j9rozj 0.7s linear infinite;
    vertical-align: middle;
}

@keyframes btn-restore-spin-b-k305j9rozj {
    to { transform: rotate(360deg); }
}

.btn-restore.disabled[b-k305j9rozj] {
    background: var(--bg3);
    color: var(--ink3);
    border: 1px solid var(--border);
    cursor: not-allowed;
}
/* /Components/EntityInspector.razor.rz.scp.css */
/* ============================================================
   EntityInspector — Right pane inspector for entities
   ============================================================ */

.entity-inspector-wrapper[b-olbp8fxl3l] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    margin: -16px;
}

.entity-inspector[b-olbp8fxl3l] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 16px;
    flex-shrink: 0;
}

.entity-inspector-related[b-olbp8fxl3l] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.inspector-section[b-olbp8fxl3l] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.inspector-label[b-olbp8fxl3l] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inspector-input[b-olbp8fxl3l] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.inspector-input:focus[b-olbp8fxl3l] {
    outline: none;
    border-color: var(--accent);
}

.inspector-input:disabled[b-olbp8fxl3l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Read-only name (when entity has a source link) ---- */

/* ---- Reference image: empty state ---- */

.ref-image-empty[b-olbp8fxl3l] {
    width: 100%;
    aspect-ratio: 1 / 1;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 2px dashed var(--border);
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
    transition: border-color 150ms ease-in-out, background-color 150ms ease-in-out;
    box-sizing: border-box;
    padding: 16px;
}

.ref-image-empty:hover[b-olbp8fxl3l],
.ref-image-empty--drag-over[b-olbp8fxl3l] {
    border-color: var(--accent);
    background: var(--accent-lt);
}

.ref-image-upload-icon[b-olbp8fxl3l] {
    color: var(--ink2);
}

.ref-image-empty-text[b-olbp8fxl3l] {
    font-size: 0.8rem;
    color: var(--ink2);
    text-align: center;
    line-height: 1.4;
}

.ref-image-uploading-text[b-olbp8fxl3l] {
    font-size: 0.85rem;
    color: var(--ink2);
}

/* ---- Reference image: populated state ---- */

.ref-image-populated[b-olbp8fxl3l] {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 400px;
    cursor: pointer;
}

.ref-image-img[b-olbp8fxl3l] {
    max-width: 100%;
    max-height: 400px;
    display: block;
    border-radius: 6px;
}

.ref-image-delete-btn[b-olbp8fxl3l] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--ink);
    opacity: 0;
    transition: opacity 150ms ease-in-out;
    padding: 0;
}

.ref-image-populated:hover .ref-image-delete-btn[b-olbp8fxl3l] {
    opacity: 1;
}

.ref-image-delete-btn:hover[b-olbp8fxl3l] {
    background: var(--status-error);
    color: var(--ink);
    opacity: 1;
}

/* ---- Error text ---- */

.ref-image-error[b-olbp8fxl3l] {
    font-size: 0.75rem;
    color: var(--status-error);
    margin: 0;
}

/* ---- Hidden file input ---- */

.ref-image-file-input[b-olbp8fxl3l] {
    display: none;
}


/* ---- Source linked section (State B: source link exists) ---- */

.source-linked-section[b-olbp8fxl3l] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.source-linked-info[b-olbp8fxl3l] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.source-linked-icon[b-olbp8fxl3l] {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 3px;
}

.source-linked-details[b-olbp8fxl3l] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.source-linked-title[b-olbp8fxl3l] {
    font-size: 0.85rem;
    color: var(--ink);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.source-linked-date[b-olbp8fxl3l] {
    font-size: 0.75rem;
    color: var(--ink2);
}

.source-refresh-btn[b-olbp8fxl3l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.8rem;
    font-family: inherit;
    cursor: pointer;
    transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out;
    align-self: flex-start;
}

.source-refresh-btn:hover:not(:disabled)[b-olbp8fxl3l] {
    background: var(--border);
    border-color: var(--border2);
}

.source-refresh-btn:disabled[b-olbp8fxl3l],
.source-refresh-btn--disabled[b-olbp8fxl3l] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.source-import-error[b-olbp8fxl3l] {
    font-size: 0.75rem;
    color: var(--status-error);
    margin: 0;
}

.source-import-hint[b-olbp8fxl3l] {
    font-size: 0.75rem;
    color: var(--ink2);
    line-height: 1.4;
}

/* ---- Spinner for async operations ---- */

.source-btn-spinner[b-olbp8fxl3l] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid var(--border2);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: source-spin-b-olbp8fxl3l 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes source-spin-b-olbp8fxl3l {
    to { transform: rotate(360deg); }
}

/* ---- Generate button ---- */

.generate-section[b-olbp8fxl3l] {
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
/* /Components/EntityListView.razor.rz.scp.css */
/* ============================================================
   EntityListView — Flat list of entities for individual export mode
   ============================================================ */

.entity-list-view[b-r063ekljog] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

/* ---- Loading ---- */

.entity-list-loading[b-r063ekljog] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px;
    flex: 1;
}

.entity-list-loading-text[b-r063ekljog] {
    color: var(--ink2);
    font-size: 0.9rem;
}

/* ---- Empty state ---- */

.entity-list-empty[b-r063ekljog] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 48px;
    flex: 1;
}

.entity-list-empty-icon[b-r063ekljog] {
    color: var(--ink2);
    opacity: 0.5;
}

.entity-list-empty-text[b-r063ekljog] {
    color: var(--ink2);
    font-size: 0.9rem;
}

/* ---- Content list ---- */

.entity-list-content[b-r063ekljog] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

/* ---- Folder header ---- */

.entity-list-folder-header[b-r063ekljog] {
    padding: 8px 16px 4px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    border-bottom: 1px solid var(--border);
    background: var(--bg2);
    position: sticky;
    top: 0;
    z-index: 1;
}

/* ---- Entity row ---- */

.entity-list-row[b-r063ekljog] {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 2px;
    padding: 10px 16px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--border);
    color: var(--ink);
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: background-color 150ms ease-in-out;
    width: 100%;
}

.entity-list-row:hover[b-r063ekljog] {
    background: var(--border);
}

.entity-list-row-name[b-r063ekljog] {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    grid-column: 1;
    grid-row: 1;
}

.entity-list-row-preview[b-r063ekljog] {
    font-size: 0.78rem;
    color: var(--ink2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    grid-column: 1;
    grid-row: 2;
}

.entity-list-row-date[b-r063ekljog] {
    font-size: 0.72rem;
    color: var(--ink2);
    white-space: nowrap;
    grid-column: 2;
    grid-row: 1;
    align-self: center;
}
/* /Components/EntityReferencePanel.razor.rz.scp.css */
/* ============================================================
   EntityReferencePanel -- Read-only reference content viewer
   within the split-pane workspace
   ============================================================ */

.ref-panel[b-tg4mrj7wdq] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: var(--bg);
    overflow: hidden;
}

/* ---- Header ---- */

.ref-panel-header[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 6px 8px 6px 14px;
    background-color: var(--bg2);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ref-panel-header-center[b-tg4mrj7wdq] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    gap: 3px;
}

.ref-panel-dimension-label[b-tg4mrj7wdq] {
    font-size: 0.68rem;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Single-entity label (no dropdown) ---- */

.ref-panel-entity-single[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.ref-panel-entity-label[b-tg4mrj7wdq] {
    font-size: 0.82rem;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Custom entity dropdown ---- */

.ref-panel-custom-dropdown[b-tg4mrj7wdq] {
    position: relative;
}

.ref-panel-dropdown-trigger[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 2px 6px 2px 4px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.82rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: border-color 150ms ease-in-out, background-color 150ms ease-in-out;
    box-sizing: border-box;
}

.ref-panel-dropdown-trigger:hover[b-tg4mrj7wdq] {
    background-color: rgba(255, 255, 255, 0.05);
    border-color: var(--border);
}

.ref-panel-dropdown-trigger:focus[b-tg4mrj7wdq] {
    border-color: var(--accent);
    outline: none;
}

.ref-panel-dropdown-trigger-text[b-tg4mrj7wdq] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ref-panel-dropdown-chevron[b-tg4mrj7wdq] {
    flex-shrink: 0;
    color: var(--ink2);
    transition: transform 150ms ease-in-out;
}

.ref-panel-dropdown-chevron--open[b-tg4mrj7wdq] {
    transform: rotate(180deg);
}

.ref-panel-dropdown-backdrop[b-tg4mrj7wdq] {
    position: fixed;
    inset: 0;
    z-index: 49;
}

.ref-panel-dropdown-list[b-tg4mrj7wdq] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 50;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    max-height: 200px;
    overflow-y: auto;
    padding: 4px 0;
}

.ref-panel-dropdown-item[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 6px 10px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.82rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: background-color 100ms ease-in-out;
    box-sizing: border-box;
}

.ref-panel-dropdown-item:hover[b-tg4mrj7wdq] {
    background-color: var(--accent-lt);
}

.ref-panel-dropdown-item--selected[b-tg4mrj7wdq] {
    background-color: var(--accent-lt);
}

.ref-panel-dropdown-item-img[b-tg4mrj7wdq] {
    width: 20px;
    height: 20px;
    border-radius: 3px;
    object-fit: cover;
    flex-shrink: 0;
}

.ref-panel-dropdown-item-name[b-tg4mrj7wdq] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Header action buttons ---- */

.ref-panel-header-actions[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.ref-panel-icon-btn[b-tg4mrj7wdq] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
}

.ref-panel-icon-btn:hover[b-tg4mrj7wdq] {
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--ink);
}

.ref-panel-close-btn:hover[b-tg4mrj7wdq] {
    color: var(--status-error);
}

/* ---- Content area ---- */

.ref-panel-content[b-tg4mrj7wdq] {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.ref-panel-loading[b-tg4mrj7wdq] {
    text-align: center;
    color: var(--ink2);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
    padding: 48px 32px 0;
}

.ref-panel-error[b-tg4mrj7wdq] {
    text-align: center;
    color: var(--status-error);
    font-size: 0.9rem;
    margin: 0;
    padding: 48px 32px 0;
}

.ref-panel-empty[b-tg4mrj7wdq] {
    text-align: center;
    color: var(--ink2);
    font-size: 0.9rem;
    font-style: italic;
    margin: 0;
    padding: 48px 32px 0;
}
/* /Components/EntityThumbnailImage.razor.rz.scp.css */
/* ============================================================
   EntityThumbnailImage — Reusable entity reference image thumbnail
   ============================================================ */

.entity-thumbnail-image[b-jfnwxkv0p2] {
    border-radius: 6px;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}

.entity-thumbnail-logo[b-jfnwxkv0p2] {
    border-radius: 4px;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
}
/* /Components/Export/DriveFolderPicker.razor.rz.scp.css */
/* ============================================================
   DriveFolderPicker — Google Drive folder browser modal
   ============================================================ */

.folder-picker-backdrop[b-xee715j9wi] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-xee715j9wi 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-xee715j9wi {
    from { opacity: 0; }
    to { opacity: 1; }
}

.folder-picker-dialog[b-xee715j9wi] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    max-height: 80vh;
    animation: dialog-slide-in-b-xee715j9wi 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-xee715j9wi {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.folder-picker-header[b-xee715j9wi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem 0.75rem;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.folder-picker-title[b-xee715j9wi] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
}

.folder-picker-close-btn[b-xee715j9wi] {
    background: none;
    border: none;
    color: var(--ink2);
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.folder-picker-close-btn:hover[b-xee715j9wi] {
    color: var(--ink);
    background: var(--border);
}

/* ---- Breadcrumb ---- */

.folder-picker-breadcrumb[b-xee715j9wi] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
    padding: 6px 1.25rem;
    border-bottom: 1px solid var(--border);
    background: var(--bg);
    flex-shrink: 0;
}

.breadcrumb-item[b-xee715j9wi] {
    background: none;
    border: none;
    color: #1a73e8;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
    transition: background 150ms ease-in-out;
}

.breadcrumb-item:hover[b-xee715j9wi] {
    background: rgba(26, 115, 232, 0.1);
}

.breadcrumb-item--current[b-xee715j9wi] {
    color: var(--ink2);
    cursor: default;
}

.breadcrumb-item--current:hover[b-xee715j9wi] {
    background: none;
}

.breadcrumb-sep[b-xee715j9wi] {
    color: var(--ink2);
    font-size: 0.8rem;
    user-select: none;
}

/* ---- Body / folder list ---- */

.folder-picker-body[b-xee715j9wi] {
    flex: 1;
    overflow-y: auto;
    min-height: 120px;
    max-height: 340px;
}

.folder-picker-loading[b-xee715j9wi],
.folder-picker-empty[b-xee715j9wi],
.folder-picker-error[b-xee715j9wi] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 1.5rem 1.25rem;
    font-size: 0.85rem;
    color: var(--ink2);
}

.folder-picker-error[b-xee715j9wi] {
    color: var(--status-error);
}

.folder-picker-spinner[b-xee715j9wi] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--border);
    border-top-color: #1a73e8;
    border-radius: 50%;
    animation: spin-b-xee715j9wi 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes spin-b-xee715j9wi {
    to { transform: rotate(360deg); }
}

.folder-list[b-xee715j9wi] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.folder-item[b-xee715j9wi] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 1.25rem;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    color: var(--ink);
    font-size: 0.875rem;
}

.folder-item:hover[b-xee715j9wi] {
    background: var(--border);
}

.folder-item--selected[b-xee715j9wi] {
    background: rgba(26, 115, 232, 0.15);
    color: #1a73e8;
}

.folder-icon[b-xee715j9wi] {
    color: var(--status-warning);
    flex-shrink: 0;
}

.folder-name[b-xee715j9wi] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folder-nav-btn[b-xee715j9wi] {
    background: none;
    border: none;
    color: var(--ink2);
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    opacity: 0;
    transition: opacity 150ms ease-in-out, color 150ms ease-in-out;
}

.folder-item:hover .folder-nav-btn[b-xee715j9wi] {
    opacity: 1;
}

.folder-nav-btn:hover[b-xee715j9wi] {
    color: var(--ink);
}

/* ---- Create folder section ---- */

.folder-picker-create[b-xee715j9wi] {
    padding: 8px 1.25rem;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.btn-new-folder[b-xee715j9wi] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: #1a73e8;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    padding: 4px 0;
    transition: opacity 150ms ease-in-out;
}

.btn-new-folder:hover[b-xee715j9wi] {
    opacity: 0.8;
}

.create-folder-row[b-xee715j9wi] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.create-folder-input[b-xee715j9wi] {
    flex: 1;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.85rem;
    padding: 5px 8px;
    outline: none;
    transition: border-color 150ms ease-in-out;
}

.create-folder-input:focus[b-xee715j9wi] {
    border-color: #1a73e8;
}

.btn-create-confirm[b-xee715j9wi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 12px;
    background: #1a73e8;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    min-width: 60px;
    min-height: 30px;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
}

.btn-create-confirm:hover:not(:disabled)[b-xee715j9wi] {
    background: #1557b0;
}

.btn-create-confirm:disabled[b-xee715j9wi] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-create-cancel[b-xee715j9wi] {
    background: none;
    border: none;
    color: var(--ink2);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 5px 8px;
    transition: color 150ms ease-in-out;
}

.btn-create-cancel:hover[b-xee715j9wi] {
    color: var(--ink);
}

.btn-spinner-small[b-xee715j9wi] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin-b-xee715j9wi 0.7s linear infinite;
}

/* ---- Footer ---- */

.folder-picker-footer[b-xee715j9wi] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.btn-cancel[b-xee715j9wi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.btn-cancel:hover[b-xee715j9wi] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-select[b-xee715j9wi] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    background: #1a73e8;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
}

.btn-select:hover:not(:disabled)[b-xee715j9wi] {
    background: #1557b0;
}

.btn-select:disabled[b-xee715j9wi] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /Components/Export/ExportDialog.razor.rz.scp.css */
/* ============================================================
   ExportDialog — Google Docs export settings / progress / complete
   ============================================================ */

.export-backdrop[b-njfm0e35qp] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-njfm0e35qp 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-njfm0e35qp {
    from { opacity: 0; }
    to { opacity: 1; }
}

.export-dialog[b-njfm0e35qp] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 10px;
    width: 100%;
    max-width: 580px;
    margin: 1rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    animation: dialog-slide-in-b-njfm0e35qp 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-njfm0e35qp {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.export-header[b-njfm0e35qp] {
    padding: 1.25rem 1.5rem 1rem;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.export-header-title[b-njfm0e35qp] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gdocs-icon[b-njfm0e35qp] {
    flex-shrink: 0;
}

.export-title[b-njfm0e35qp] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.export-subtitle[b-njfm0e35qp] {
    font-size: 0.8rem;
    color: var(--ink2);
    margin: 4px 0 0 32px;
}

/* ---- Body ---- */

.export-body[b-njfm0e35qp] {
    flex: 1;
    overflow-y: auto;
    min-height: 80px;
}

/* Loading state */

.export-loading[b-njfm0e35qp],
.export-load-error[b-njfm0e35qp],
.export-auth-error[b-njfm0e35qp],
.export-empty-state[b-njfm0e35qp] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 1.5rem;
    font-size: 0.875rem;
    color: var(--ink2);
    flex-direction: column;
}

.export-auth-error[b-njfm0e35qp] {
    color: var(--status-error);
}

.export-loading[b-njfm0e35qp] {
    flex-direction: row;
    align-items: center;
}

.export-spinner[b-njfm0e35qp] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--border);
    border-top-color: #1a73e8;
    border-radius: 50%;
    animation: spin-b-njfm0e35qp 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes spin-b-njfm0e35qp {
    to { transform: rotate(360deg); }
}

.btn-retry[b-njfm0e35qp] {
    display: inline-flex;
    align-items: center;
    padding: 5px 14px;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
}

.btn-retry:hover[b-njfm0e35qp] {
    opacity: 0.85;
}

/* Dimension list */

.dimension-list[b-njfm0e35qp] {
    padding: 0 1.5rem;
}

/* ---- Progress view ---- */

.export-progress-view[b-njfm0e35qp] {
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}

.progress-bar-track[b-njfm0e35qp] {
    width: 100%;
    height: 10px;
    background: var(--bg);
    border-radius: 5px;
    overflow: hidden;
    border: 1px solid var(--border);
}

.progress-bar-fill[b-njfm0e35qp] {
    height: 100%;
    background: var(--accent);
    border-radius: 5px;
    transition: width 300ms ease-in-out;
}

.progress-label[b-njfm0e35qp] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin: 0;
    text-align: center;
}

/* ---- Complete view ---- */

.export-complete-view[b-njfm0e35qp] {
    padding: 1.5rem;
}

.complete-empty-message[b-njfm0e35qp] {
    font-size: 0.875rem;
    color: var(--ink2);
    margin: 0;
}

.complete-header[b-njfm0e35qp] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 1rem;
}

.complete-title[b-njfm0e35qp] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
}

.complete-list[b-njfm0e35qp] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.complete-item[b-njfm0e35qp] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.complete-item-link[b-njfm0e35qp] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #1a73e8;
    font-size: 0.875rem;
    text-decoration: none;
    padding: 5px 8px;
    border-radius: 5px;
    transition: background 150ms ease-in-out;
}

.complete-item-link:hover[b-njfm0e35qp] {
    background: rgba(26, 115, 232, 0.1);
    text-decoration: underline;
}

.external-link-icon[b-njfm0e35qp] {
    color: var(--ink2);
    flex-shrink: 0;
}

.complete-item-error[b-njfm0e35qp] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    padding: 5px 8px;
    flex-wrap: wrap;
}

.complete-item-skipped[b-njfm0e35qp] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 5px 8px;
}

.complete-item-name[b-njfm0e35qp] {
    font-size: 0.875rem;
    color: var(--ink);
    font-weight: 500;
}

.complete-item-error-msg[b-njfm0e35qp] {
    font-size: 0.8rem;
    color: var(--status-error);
}

.complete-item-skip-msg[b-njfm0e35qp] {
    font-size: 0.8rem;
    color: var(--status-warning);
}

/* ---- Footer ---- */

.export-footer[b-njfm0e35qp] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* ---- Buttons ---- */

.btn-cancel[b-njfm0e35qp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-njfm0e35qp] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-njfm0e35qp] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-export[b-njfm0e35qp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.6rem 1.5rem;
    background: #1a73e8;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    min-width: 100px;
    min-height: 38px;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
}

.btn-export:hover:not(:disabled)[b-njfm0e35qp] {
    background: #1557b0;
}

.btn-export:disabled[b-njfm0e35qp] {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-close[b-njfm0e35qp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.5rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 38px;
    transition: opacity 150ms ease-in-out;
}

.btn-close:hover[b-njfm0e35qp] {
    opacity: 0.85;
}

/* ---- Button spinner ---- */

.btn-spinner[b-njfm0e35qp] {
    display: inline-block;
    width: 15px;
    height: 15px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin-b-njfm0e35qp 0.7s linear infinite;
}
/* /Components/Export/ExportDimensionRow.razor.rz.scp.css */
/* ============================================================
   ExportDimensionRow — one row in the export settings list
   ============================================================ */

.dimension-row[b-oxoxe9sosm] {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    transition: opacity 200ms ease-in-out;
}

.dimension-row:last-child[b-oxoxe9sosm] {
    border-bottom: none;
}

.dimension-row--dimmed[b-oxoxe9sosm] {
    opacity: 0.45;
}

/* ---- Main row layout ---- */

.row-main[b-oxoxe9sosm] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

/* ---- Checkbox ---- */

.row-checkbox-label[b-oxoxe9sosm] {
    display: flex;
    align-items: center;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px;
}

.row-checkbox[b-oxoxe9sosm] {
    width: 16px;
    height: 16px;
    accent-color: #1a73e8;
    cursor: pointer;
}

/* ---- Info column ---- */

.row-info[b-oxoxe9sosm] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ---- Name line (label + badge + link status) ---- */

.row-name-line[b-oxoxe9sosm] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.row-label[b-oxoxe9sosm] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ink);
}

.row-mode-badge[b-oxoxe9sosm] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--ink2);
    white-space: nowrap;
}

/* ---- Link status indicators ---- */

.row-link-status[b-oxoxe9sosm] {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.link-indicator[b-oxoxe9sosm] {
    display: inline-flex;
    align-items: center;
}

.link-indicator--linked[b-oxoxe9sosm] {
    color: var(--status-success);
}

.link-indicator--uncertain[b-oxoxe9sosm] {
    color: var(--status-warning);
}

.link-count[b-oxoxe9sosm] {
    font-size: 0.7rem;
    font-weight: 500;
    padding: 2px 6px;
    border-radius: 10px;
}

.link-count--full[b-oxoxe9sosm] {
    background: rgba(76, 175, 80, 0.15);
    color: var(--status-success);
}

.link-count--partial[b-oxoxe9sosm] {
    background: rgba(255, 152, 0, 0.15);
    color: var(--status-warning);
}

/* ---- Field row ---- */

.row-fields[b-oxoxe9sosm] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* ---- Field labels ---- */

.row-field-label[b-oxoxe9sosm] {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* ---- Document name field ---- */

.row-doc-name[b-oxoxe9sosm] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

/* ---- Folder field ---- */

.row-folder[b-oxoxe9sosm] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.doc-name-input[b-oxoxe9sosm] {
    width: 100%;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.85rem;
    padding: 6px 10px;
    outline: none;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.doc-name-input:focus[b-oxoxe9sosm] {
    border-color: #1a73e8;
}

.doc-name-input:disabled[b-oxoxe9sosm] {
    opacity: 0.5;
    cursor: not-allowed;
}

.doc-name-hint[b-oxoxe9sosm] {
    font-size: 0.72rem;
    color: var(--ink2);
    margin: 0;
    font-style: italic;
}

/* ---- Folder picker button ---- */

.folder-picker-btn[b-oxoxe9sosm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.8rem;
    padding: 5px 10px;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    text-align: left;
    max-width: 100%;
    overflow: hidden;
}

.folder-picker-btn:hover:not(:disabled)[b-oxoxe9sosm] {
    color: var(--ink);
    border-color: #1a73e8;
    background: rgba(26, 115, 232, 0.08);
}

.folder-picker-btn:disabled[b-oxoxe9sosm],
.folder-picker-btn--disabled[b-oxoxe9sosm] {
    opacity: 0.5;
    cursor: not-allowed;
}

.folder-path-text[b-oxoxe9sosm] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
}
/* /Components/ExtractionProgress.razor.rz.scp.css */
/* ============================================================
   ExtractionProgress — Thin progress bar below board toolbar
   ============================================================ */

.extraction-progress[b-9mss3prwup] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    height: 28px;
    background: var(--board-header-bg);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.extraction-progress-bar-track[b-9mss3prwup] {
    flex: 1;
    height: 4px;
    background: var(--border);
    border-radius: 99px;
    overflow: hidden;
}

.extraction-progress-bar-fill[b-9mss3prwup] {
    height: 100%;
    background: var(--accent);
    border-radius: 99px;
    transition: width 200ms ease;
    min-width: 4px;
}

.extraction-progress-label[b-9mss3prwup] {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--ink2);
    white-space: nowrap;
    flex-shrink: 0;
}
/* /Components/FolderInspector.razor.rz.scp.css */
/* ============================================================
   FolderInspector — Right pane inspector for folders
   ============================================================ */

.folder-inspector[b-7iu0yddcl6] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 16px;
}

.inspector-section[b-7iu0yddcl6] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.inspector-row[b-7iu0yddcl6] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.inspector-label[b-7iu0yddcl6] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.inspector-label--inline[b-7iu0yddcl6] {
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.85rem;
    color: var(--ink);
}

.inspector-input[b-7iu0yddcl6] {
    width: 100%;
    padding: 6px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.inspector-input:focus[b-7iu0yddcl6] {
    outline: none;
    border-color: var(--accent);
}

.inspector-input:disabled[b-7iu0yddcl6] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Toggle switch ---- */

.toggle-btn[b-7iu0yddcl6] {
    position: relative;
    width: 38px;
    height: 20px;
    background: var(--border);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    transition: background-color 150ms ease-in-out;
    flex-shrink: 0;
}

.toggle-btn--on[b-7iu0yddcl6] {
    background: var(--accent);
}

.toggle-btn:disabled[b-7iu0yddcl6] {
    opacity: 0.4;
    cursor: not-allowed;
}

.toggle-thumb[b-7iu0yddcl6] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 150ms ease-in-out;
}

.toggle-btn--on .toggle-thumb[b-7iu0yddcl6] {
    transform: translateX(18px);
}
/* /Components/GenerationBatchSummaryDialog.razor.rz.scp.css */
/* ============================================================
   GenerationBatchSummaryDialog — Summary after batch generation
   ============================================================ */

.modal-backdrop[b-wvfg4yujwq] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: gbs-backdrop-fade-in-b-wvfg4yujwq 150ms ease-in-out both;
}

@keyframes gbs-backdrop-fade-in-b-wvfg4yujwq {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-dialog[b-wvfg4yujwq] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: gbs-dialog-slide-in-b-wvfg4yujwq 150ms ease-in-out both;
}

@keyframes gbs-dialog-slide-in-b-wvfg4yujwq {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-wvfg4yujwq] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-wvfg4yujwq] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-body[b-wvfg4yujwq] {
    padding: 1rem 1.5rem;
    max-height: 400px;
    overflow-y: auto;
}

.modal-message[b-wvfg4yujwq] {
    font-size: 0.9rem;
    color: var(--ink2);
    line-height: 1.6;
    margin: 0;
}

.modal-footer[b-wvfg4yujwq] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Summary sections ---- */

.gen-summary-section[b-wvfg4yujwq] {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border);
}

.gen-summary-section-title[b-wvfg4yujwq] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 6px;
}

.gen-summary-failed .gen-summary-section-title[b-wvfg4yujwq] {
    color: var(--status-error);
}

.gen-summary-skipped .gen-summary-section-title[b-wvfg4yujwq] {
    color: var(--status-warning);
}

.gen-summary-list[b-wvfg4yujwq] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gen-summary-list li[b-wvfg4yujwq] {
    font-size: 0.85rem;
    color: var(--ink);
    padding: 3px 0 3px 12px;
    position: relative;
}

.gen-summary-list li[b-wvfg4yujwq]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 4px;
    height: 4px;
    background: var(--ink3);
    border-radius: 50%;
    transform: translateY(-50%);
}

.gen-summary-entity-name[b-wvfg4yujwq] {
    font-weight: 500;
}

.gen-summary-detail[b-wvfg4yujwq] {
    color: var(--ink2);
    font-weight: 400;
}

/* ---- Button ---- */

.btn-primary[b-wvfg4yujwq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
}

.btn-primary:hover[b-wvfg4yujwq] {
    opacity: 0.88;
}
/* /Components/GenerationProgress.razor.rz.scp.css */
/* ============================================================
   GenerationProgress — Prominent progress bar for batch generation
   More visually prominent than ExtractionProgress per requirements
   ============================================================ */

.generation-progress[b-j09nozgck7] {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 900;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 20px;
    background: var(--bg2);
    border: 1px solid var(--accent);
    border-radius: 10px;
    width: 380px;
    max-width: calc(100vw - 48px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    animation: gen-progress-slide-up-b-j09nozgck7 200ms ease-out both;
}

@keyframes gen-progress-slide-up-b-j09nozgck7 {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

.generation-progress-header[b-j09nozgck7] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent);
}

.generation-progress-icon[b-j09nozgck7] {
    flex-shrink: 0;
    animation: gen-progress-pulse-b-j09nozgck7 1.5s ease-in-out infinite;
}

@keyframes gen-progress-pulse-b-j09nozgck7 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.generation-progress-bar-track[b-j09nozgck7] {
    width: 100%;
    height: 6px;
    background: var(--border);
    border-radius: 99px;
    overflow: hidden;
}

.generation-progress-bar-fill[b-j09nozgck7] {
    height: 100%;
    background: var(--accent);
    border-radius: 99px;
    transition: width 300ms ease;
    min-width: 6px;
}

.generation-progress-bar-fill--indeterminate[b-j09nozgck7] {
    width: 40%;
    animation: gen-progress-indeterminate-b-j09nozgck7 1.5s ease-in-out infinite;
}

@keyframes gen-progress-indeterminate-b-j09nozgck7 {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(350%);
    }
}

.generation-progress-label[b-j09nozgck7] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--ink2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* /Components/HistoryVersionItem.razor.rz.scp.css */
.history-version-item[b-steekx0p9s] {
    display: block;
    width: 100%;
    padding: 8px 12px;
    background: none;
    border: none;
    border-radius: var(--r);
    text-align: left;
    cursor: pointer;
    color: var(--ink2);
    font-size: 0.8rem;
    font-family: var(--font-ui);
    transition: background 0.1s, color 0.1s;
}

.history-version-item:hover[b-steekx0p9s] {
    background: var(--bg3);
    color: var(--ink);
}

.history-version-item--selected[b-steekx0p9s] {
    background: var(--accent-lt);
    color: var(--accent);
}

.history-version-item--selected:hover[b-steekx0p9s] {
    background: var(--accent-lt);
    color: var(--accent-hover);
}

.history-version-label[b-steekx0p9s] {
    font-weight: 600;
    font-size: 0.8rem;
}

.history-version-timestamp[b-steekx0p9s] {
    font-size: 0.8rem;
}
/* /Components/IconPicker.razor.rz.scp.css */
/* ============================================================
   IconPicker — Popover for choosing a dimension icon
   ============================================================ */

.icon-picker-backdrop[b-8zs1fpnela] {
    position: fixed;
    inset: 0;
    z-index: 500;
}

.icon-picker-popover[b-8zs1fpnela] {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px;
    width: 260px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    z-index: 501;
}

/* ---- Search ---- */

.icon-picker-search[b-8zs1fpnela] {
    padding: 8px;
    border-bottom: 1px solid var(--border);
}

.icon-picker-search-input[b-8zs1fpnela] {
    width: 100%;
    padding: 6px 10px;
    background: var(--border2);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.85rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.icon-picker-search-input:focus[b-8zs1fpnela] {
    outline: none;
    border-color: var(--accent);
}

.icon-picker-search-input[b-8zs1fpnela]::placeholder {
    color: var(--ink2);
}

/* ---- Grid ---- */

.icon-picker-grid[b-8zs1fpnela] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    padding: 8px;
    max-height: 240px;
    overflow-y: auto;
}

.icon-picker-item[b-8zs1fpnela] {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    color: var(--ink);
    transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out;
    padding: 0;
}

.icon-picker-item:hover[b-8zs1fpnela] {
    background: var(--border2);
}

.icon-picker-item--selected[b-8zs1fpnela] {
    border-color: var(--accent);
    background: var(--accent-lt);
}

.icon-picker-svg[b-8zs1fpnela] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    pointer-events: none;
}

.icon-picker-svg svg[b-8zs1fpnela] {
    width: 24px;
    height: 24px;
}

/* ---- Empty state ---- */

.icon-picker-empty[b-8zs1fpnela] {
    padding: 24px;
    text-align: center;
}

.icon-picker-empty-text[b-8zs1fpnela] {
    color: var(--ink2);
    font-size: 0.85rem;
}
/* /Components/ImplicitBoardCreationDialog.razor.rz.scp.css */
/* ============================================================
   ImplicitBoardCreationDialog — Streamlined board creation from Related panel
   z-index 1000 (standalone dialog, not layered on another modal)
   ============================================================ */

.modal-backdrop[b-hzl3d4b3i7] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-hzl3d4b3i7 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-hzl3d4b3i7 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-hzl3d4b3i7] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 420px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
    animation: dialog-slide-in-b-hzl3d4b3i7 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-hzl3d4b3i7 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-hzl3d4b3i7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border);
}

.modal-title[b-hzl3d4b3i7] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-close-btn[b-hzl3d4b3i7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    padding: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.modal-close-btn:hover:not(:disabled)[b-hzl3d4b3i7] {
    color: var(--ink);
    background: var(--border);
}

.modal-close-btn:disabled[b-hzl3d4b3i7] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Body ---- */

.modal-body[b-hzl3d4b3i7] {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* ---- Context summary ---- */

.context-summary[b-hzl3d4b3i7] {
    font-size: 0.875rem;
    color: var(--ink2);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

.context-summary strong[b-hzl3d4b3i7] {
    color: var(--ink);
    font-weight: 600;
}

/* ---- Form groups ---- */

.form-group[b-hzl3d4b3i7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 0;
}

.form-label[b-hzl3d4b3i7] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--ink2);
}

/* ---- Inputs ---- */

.form-input[b-hzl3d4b3i7] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.form-input:focus[b-hzl3d4b3i7] {
    outline: none;
    border-color: var(--accent);
}

.form-input:disabled[b-hzl3d4b3i7] {
    opacity: 0.5;
    cursor: not-allowed;
}

.form-input[b-hzl3d4b3i7]::placeholder {
    color: var(--ink2);
    opacity: 0.6;
}

.form-value[b-hzl3d4b3i7] {
    font-size: 0.9rem;
    color: var(--ink);
    padding: 0.5rem 0;
}

/* ---- Entity dropdown ---- */

.entity-dropdown[b-hzl3d4b3i7] {
    position: relative;
}

.entity-dropdown-trigger[b-hzl3d4b3i7] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.entity-dropdown-trigger:focus[b-hzl3d4b3i7] {
    border-color: var(--accent);
    outline: none;
}

.entity-dropdown-trigger:disabled[b-hzl3d4b3i7] {
    opacity: 0.5;
    cursor: not-allowed;
}

.entity-dropdown-trigger-text[b-hzl3d4b3i7] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.entity-dropdown-chevron[b-hzl3d4b3i7] {
    flex-shrink: 0;
    color: var(--ink2);
    transition: transform 150ms ease-in-out;
}

.entity-dropdown-chevron--open[b-hzl3d4b3i7] {
    transform: rotate(180deg);
}

.entity-dropdown-list[b-hzl3d4b3i7] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 50;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    max-height: 200px;
    overflow-y: auto;
    padding: 4px 0;
}

.entity-dropdown-item[b-hzl3d4b3i7] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 12px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.82rem;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: background-color 100ms ease-in-out;
    box-sizing: border-box;
}

.entity-dropdown-item:hover[b-hzl3d4b3i7] {
    background-color: var(--accent-lt);
}

.entity-dropdown-item--selected[b-hzl3d4b3i7] {
    background-color: var(--accent-lt);
}

.entity-dropdown-item-name[b-hzl3d4b3i7] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Footer ---- */

.modal-footer[b-hzl3d4b3i7] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--border);
}

/* ---- Buttons ---- */

.btn-create[b-hzl3d4b3i7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.5rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 100px;
    min-height: 38px;
}

.btn-create:hover:not(:disabled)[b-hzl3d4b3i7] {
    background: var(--accent-hover);
}

.btn-create:disabled[b-hzl3d4b3i7] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-cancel[b-hzl3d4b3i7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-hzl3d4b3i7] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-hzl3d4b3i7] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-hzl3d4b3i7] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-hzl3d4b3i7 0.7s linear infinite;
}

@keyframes btn-spin-b-hzl3d4b3i7 {
    to { transform: rotate(360deg); }
}
/* /Components/ImportEntityDialog.razor.rz.scp.css */
/* ============================================================
   ImportEntityDialog — Dialog for importing an entity from a Google Doc
   ============================================================ */

.modal-backdrop[b-esjway1258] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-esjway1258 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-esjway1258 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-esjway1258] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-esjway1258 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-esjway1258 {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-esjway1258] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-esjway1258] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ---- Body ---- */

.modal-body[b-esjway1258] {
    padding: 1rem 1.5rem;
}

/* ---- Import URL input ---- */

.import-field[b-esjway1258] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.import-url-input[b-esjway1258] {
    width: 100%;
    padding: 8px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.import-url-input:focus[b-esjway1258] {
    outline: none;
    border-color: var(--accent);
}

.import-url-input--error[b-esjway1258] {
    border-color: var(--status-error);
}

.import-url-input:disabled[b-esjway1258] {
    opacity: 0.5;
    cursor: not-allowed;
}

.import-field-error[b-esjway1258] {
    font-size: 0.8rem;
    color: var(--status-error);
    margin: 0;
}

.import-loading[b-esjway1258] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: var(--ink2);
}

/* ---- Divider ---- */

.import-divider[b-esjway1258] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0.75rem 0 0.5rem;
    color: var(--ink3);
    font-size: 0.8rem;
}

.import-divider[b-esjway1258]::before,
.import-divider[b-esjway1258]::after {
    content: '';
    flex: 1;
    border-top: 1px solid var(--border);
}

/* ---- File picker area ---- */

.import-file-area[b-esjway1258] {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px dashed transparent;
    border-radius: 6px;
    padding: 6px;
    margin: -6px;
    transition: border-color 100ms ease-in-out, background 100ms ease-in-out;
}

.import-file-area--drag-over[b-esjway1258] {
    border-color: var(--accent);
    background: var(--accent-lt);
}

.import-file-area--error[b-esjway1258] {
    border-color: var(--status-error);
}

.import-file-name--error[b-esjway1258] {
    color: var(--status-error);
}

.btn-browse[b-esjway1258] {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background: var(--bg3);
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    white-space: nowrap;
    flex-shrink: 0;
    user-select: none;
}

.btn-browse:hover:not(.btn-browse--disabled)[b-esjway1258] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg2);
}

.btn-browse--disabled[b-esjway1258] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.import-file-name[b-esjway1258] {
    font-size: 0.85rem;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Footer ---- */

.modal-footer[b-esjway1258] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Buttons ---- */

.btn-import[b-esjway1258] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: var(--ink);
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
}

.btn-import:hover:not(:disabled)[b-esjway1258] {
    background: var(--accent-hover);
}

.btn-import:disabled[b-esjway1258] {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-cancel[b-esjway1258] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-esjway1258] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-esjway1258] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Spinner ---- */

.import-spinner[b-esjway1258] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid var(--border2);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: import-spin-b-esjway1258 0.7s linear infinite;
    flex-shrink: 0;
}

.import-spinner--btn[b-esjway1258] {
    border-color: rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    width: 16px;
    height: 16px;
}

@keyframes import-spin-b-esjway1258 {
    to { transform: rotate(360deg); }
}
/* /Components/ImportFromTextDialog.razor.rz.scp.css */
/* ============================================================
   ImportFromTextDialog — AI import review flow
   ============================================================ */

/* ---- Backdrop ---- */

.ift-backdrop[b-0g5kdlnwsk] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: ift-backdrop-in-b-0g5kdlnwsk 150ms ease-in-out both;
}

@keyframes ift-backdrop-in-b-0g5kdlnwsk {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog base ---- */

.ift-dialog[b-0g5kdlnwsk] {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 10px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
    max-width: calc(100vw - 2rem);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    animation: ift-dialog-in-b-0g5kdlnwsk 150ms ease-in-out both;
    outline: none;
}

@keyframes ift-dialog-in-b-0g5kdlnwsk {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Width variants ---- */

.ift-dialog--input[b-0g5kdlnwsk]  { width: 540px; }
.ift-dialog--edit[b-0g5kdlnwsk]   { width: 800px; }
.ift-dialog--delete[b-0g5kdlnwsk] { width: 520px; }
.ift-dialog--summary[b-0g5kdlnwsk] { width: 460px; }

/* ---- Header ---- */

.ift-header[b-0g5kdlnwsk] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ift-header-text[b-0g5kdlnwsk] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ift-title[b-0g5kdlnwsk] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ift-subtitle[b-0g5kdlnwsk] {
    font-size: 0.8rem;
    color: var(--ink2);
    margin: 0;
}

/* ---- Header right cluster (step counter) ---- */

.ift-header-right[b-0g5kdlnwsk] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.ift-close-btn[b-0g5kdlnwsk] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: var(--r);
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.ift-close-btn:hover:not(:disabled)[b-0g5kdlnwsk] {
    color: var(--ink);
    background: var(--bg3);
}

.ift-close-btn:disabled[b-0g5kdlnwsk] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ---- Step counter chip ---- */

.ift-step-counter[b-0g5kdlnwsk] {
    flex-shrink: 0;
    padding: 3px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--ink2);
    white-space: nowrap;
    align-self: center;
}

/* ---- Additions banner ---- */

.ift-additions-banner[b-0g5kdlnwsk] {
    padding: 9px 20px;
    background: var(--accent-lt);
    border-bottom: 1px solid var(--accent);
    font-size: 0.82rem;
    color: var(--ink);
    flex-shrink: 0;
}

/* ---- Body (generic) ---- */

.ift-body[b-0g5kdlnwsk] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ift-helper[b-0g5kdlnwsk] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin: 0;
    line-height: 1.5;
}

/* ---- Textarea ---- */

.ift-textarea[b-0g5kdlnwsk] {
    width: 100%;
    min-height: 220px;
    padding: 10px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
    color: var(--ink);
    font-size: 0.875rem;
    font-family: inherit;
    line-height: 1.6;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 150ms ease-in-out;
}

.ift-textarea:focus[b-0g5kdlnwsk] {
    outline: none;
    border-color: var(--accent);
}

.ift-textarea--dimmed[b-0g5kdlnwsk] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Analyzing status ---- */

.ift-analyzing-status[b-0g5kdlnwsk] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    color: var(--ink2);
}

.ift-spinner[b-0g5kdlnwsk] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ift-spin-b-0g5kdlnwsk 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes ift-spin-b-0g5kdlnwsk {
    to { transform: rotate(360deg); }
}

/* ---- Review body (side-by-side) ---- */

.ift-review-body[b-0g5kdlnwsk] {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 280px;
}

.ift-review-panel[b-0g5kdlnwsk] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 20px;
    overflow-y: auto;
    min-width: 0;
}

.ift-panel-divider[b-0g5kdlnwsk] {
    width: 1px;
    background: var(--border);
    flex-shrink: 0;
}

.ift-panel-label[b-0g5kdlnwsk] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--ink2);
    flex-shrink: 0;
}

.ift-panel-label--proposed[b-0g5kdlnwsk] {
    color: var(--accent);
}

/* ---- Location chips ---- */

.ift-location-chips[b-0g5kdlnwsk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ift-chip[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 4px 8px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
    font-size: 0.8rem;
    color: var(--ink);
    line-height: 1.4;
}

.ift-chip-axis[b-0g5kdlnwsk] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink2);
    flex-shrink: 0;
}

/* ---- Bullet lists ---- */

.ift-bullets[b-0g5kdlnwsk] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ift-bullet-item[b-0g5kdlnwsk] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--ink);
    line-height: 1.5;
}

.ift-bullet-item[b-0g5kdlnwsk]::before {
    content: "•";
    font-size: 0.9rem;
    color: var(--accent);
    opacity: 0.8;
    flex-shrink: 0;
}

.ift-bullet-item--added[b-0g5kdlnwsk] {
    color: var(--status-success);
}

.ift-bullet-item--added[b-0g5kdlnwsk]::before {
    color: var(--status-success);
    opacity: 1;
}

.ift-bullet-item--removed[b-0g5kdlnwsk] {
    color: var(--status-error);
    opacity: 0.8;
}

.ift-bullet-item--removed[b-0g5kdlnwsk]::before {
    color: var(--status-error);
    opacity: 1;
}

.ift-diff-prefix[b-0g5kdlnwsk] {
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
    font-family: monospace;
}

/* ---- Warning callout (delete phase) ---- */

.ift-warning-callout[b-0g5kdlnwsk] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--status-error) 10%, var(--bg2));
    border: 1px solid var(--status-error);
    border-radius: var(--r);
    font-size: 0.85rem;
    color: var(--ink);
    line-height: 1.5;
}

.ift-warning-icon[b-0g5kdlnwsk] {
    color: var(--status-error);
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---- Notes section label ---- */

.ift-notes-section-label[b-0g5kdlnwsk] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink2);
    margin: 0;
}

/* ---- Notes preview card ---- */

.ift-notes-preview[b-0g5kdlnwsk] {
    padding: 12px 14px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
}

/* ---- Summary grid ---- */

.ift-summary-grid[b-0g5kdlnwsk] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.ift-summary-card[b-0g5kdlnwsk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 16px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
}

.ift-summary-count[b-0g5kdlnwsk] {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
}

.ift-summary-label[b-0g5kdlnwsk] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink2);
}

.ift-summary-grid--four[b-0g5kdlnwsk] {
    grid-template-columns: repeat(2, 1fr);
}

.ift-summary-card--additions .ift-summary-count[b-0g5kdlnwsk] { color: var(--status-success); }
.ift-summary-card--edits     .ift-summary-count[b-0g5kdlnwsk] { color: var(--accent); }
.ift-summary-card--removals  .ift-summary-count[b-0g5kdlnwsk] { color: var(--status-error); }
.ift-summary-card--reorders  .ift-summary-count[b-0g5kdlnwsk] { color: var(--ink2); }

/* ---- Skipped chip ---- */

.ift-skipped-chip[b-0g5kdlnwsk] {
    align-self: flex-start;
    padding: 4px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: 0.75rem;
    color: var(--ink2);
}

/* ---- Footer ---- */

.ift-footer[b-0g5kdlnwsk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.ift-footer-hint[b-0g5kdlnwsk] {
    font-size: 0.78rem;
    color: var(--ink3);
}

.ift-footer-btns[b-0g5kdlnwsk] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* ---- Buttons ---- */

.btn-cancel[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.15rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 36px;
}

.btn-cancel:hover:not(:disabled)[b-0g5kdlnwsk] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-0g5kdlnwsk] {
    opacity: 0.4;
    cursor: not-allowed;
}

.ift-btn-analyze[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.55rem 1.15rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-height: 36px;
    min-width: 110px;
}

.ift-btn-analyze:hover:not(:disabled)[b-0g5kdlnwsk] {
    background: var(--accent-hover);
}

.ift-btn-analyze:disabled[b-0g5kdlnwsk] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ift-btn-skip[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-skip:hover[b-0g5kdlnwsk] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.ift-btn-accept[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.5rem 1rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-accept:hover[b-0g5kdlnwsk] {
    background: var(--accent-hover);
}

.ift-btn-remove[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.5rem 1rem;
    background: var(--status-error);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-remove:hover[b-0g5kdlnwsk] {
    opacity: 0.88;
}

.ift-btn-apply[b-0g5kdlnwsk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.55rem 1.15rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-height: 36px;
    min-width: 100px;
}

.ift-btn-apply:hover:not(:disabled)[b-0g5kdlnwsk] {
    background: var(--accent-hover);
}

.ift-btn-apply:disabled[b-0g5kdlnwsk] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.ift-btn-spinner[b-0g5kdlnwsk] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ift-spin-b-0g5kdlnwsk 0.7s linear infinite;
    flex-shrink: 0;
}
/* /Components/KeepOrReplaceDialog.razor.rz.scp.css */
/* ============================================================
   KeepOrReplaceDialog — Side-by-side extraction review
   ============================================================ */

.modal-backdrop[b-0z74mycjx6] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.kor-dialog[b-0z74mycjx6] {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 1001;
    transform: translate(-50%, -50%);
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 10px;
    width: min(860px, calc(100vw - 2rem));
    max-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-0z74mycjx6 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-0z74mycjx6 {
    from {
        opacity: 0;
        transform: translate(-50%, calc(-50% - 8px));
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

/* ---- Header ---- */

.kor-header[b-0z74mycjx6] {
    padding: 1.25rem 1.5rem 0.75rem;
    border-bottom: 1px solid var(--border);
}

.kor-title[b-0z74mycjx6] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Body (side-by-side panels) ---- */

.kor-body[b-0z74mycjx6] {
    display: flex;
    flex: 1;
    overflow: hidden;
    min-height: 260px;
}

.kor-panel[b-0z74mycjx6] {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1rem 1.25rem;
    overflow-y: auto;
    min-width: 0;
}

.kor-divider[b-0z74mycjx6] {
    width: 1px;
    background: var(--border);
    flex-shrink: 0;
}

.kor-panel-label[b-0z74mycjx6] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--ink2);
    margin-bottom: 10px;
    flex-shrink: 0;
}

.kor-panel-label--new[b-0z74mycjx6] {
    color: var(--accent);
}

/* ---- Bullets ---- */

.kor-bullets[b-0z74mycjx6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.kor-bullet-item[b-0z74mycjx6] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--ink);
    line-height: 1.5;
}

.kor-bullet-item[b-0z74mycjx6]::before {
    content: "•";
    font-size: 0.9rem;
    color: var(--accent);
    opacity: 0.8;
    flex-shrink: 0;
}

/* ---- Footer ---- */

.kor-footer[b-0z74mycjx6] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0.875rem 1.5rem;
    border-top: 1px solid var(--border);
}

.btn-primary[b-0z74mycjx6] {
    padding: 6px 16px;
    background: var(--accent);
    border: 1px solid var(--accent);
    border-radius: 4px;
    color: #fff;
    font-size: 0.82rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.btn-primary:hover[b-0z74mycjx6] {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

.btn-cancel[b-0z74mycjx6] {
    padding: 6px 16px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.82rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, color 150ms ease-in-out;
}

.btn-cancel:hover[b-0z74mycjx6] {
    border-color: var(--ink2);
    color: var(--ink);
    background: var(--bg3);
}
/* /Components/Lightbox.razor.rz.scp.css */
/* ============================================================
   Lightbox — Full-viewport image overlay
   ============================================================ */

.lightbox-backdrop[b-3xxpuyvxgb] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.667);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.lightbox-content[b-3xxpuyvxgb] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 90vw;
    max-height: 90vh;
}

.lightbox-image[b-3xxpuyvxgb] {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    display: block;
}

.lightbox-close[b-3xxpuyvxgb] {
    position: absolute;
    top: -40px;
    right: 0;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    transition: background-color 150ms ease-in-out;
    padding: 0;
}

.lightbox-close:hover[b-3xxpuyvxgb] {
    background: rgba(255, 255, 255, 0.2);
}
/* /Components/Navigator.razor.rz.scp.css */
/* ============================================================
   Navigator — Left pane hierarchical tree
   ============================================================ */

.navigator-root[b-vels69vd7l] {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    height: 100%;
    user-select: none;
}

.empty-state[b-vels69vd7l] {
    padding: 16px;
}

.empty-text[b-vels69vd7l] {
    color: var(--ink2);
    font-size: 0.85rem;
    margin: 0;
}

/* ---- Dimension section ---- */

.dimension-section[b-vels69vd7l] {
    display: flex;
    flex-direction: column;
}

.dimension-header[b-vels69vd7l] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    cursor: pointer;
    border-radius: 4px;
    margin: 0 4px;
    transition: background-color 150ms ease-in-out;
    position: relative;
}

.dimension-header:hover[b-vels69vd7l] {
    background-color: var(--border);
}

.dimension-header--selected[b-vels69vd7l] {
    background-color: var(--accent-lt);
}

.dimension-header--drop-target[b-vels69vd7l] {
    background-color: var(--accent-lt);
    outline: 1px solid var(--accent);
    outline-offset: -1px;
}

.dimension-header--selected[b-vels69vd7l]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background-color: var(--accent);
    border-radius: 0 2px 2px 0;
}

.dimension-name[b-vels69vd7l] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dimension-icon[b-vels69vd7l] {
    color: var(--accent);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    width: 20px;
    height: 20px;
}

.dimension-icon[b-vels69vd7l]  svg {
    width: 100%;
    height: 100%;
}

/* ---- Expand/collapse button ---- */

.expand-btn[b-vels69vd7l] {
    background: none;
    border: none;
    padding: 2px;
    cursor: pointer;
    color: var(--ink2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 2px;
    transition: color 150ms ease-in-out;
}

.expand-btn:hover[b-vels69vd7l] {
    color: var(--ink);
}

/* ---- Context menu trigger ---- */

.context-menu-btn[b-vels69vd7l] {
    background: none;
    border: none;
    padding: 2px 4px;
    cursor: pointer;
    color: var(--ink2);
    display: flex;
    align-items: center;
    border-radius: 3px;
    opacity: 0;
    transition: opacity 150ms ease-in-out, color 150ms ease-in-out;
}

.dimension-header:hover .context-menu-btn[b-vels69vd7l],
.dimension-header--selected .context-menu-btn[b-vels69vd7l],
.board-row:hover .context-menu-btn[b-vels69vd7l],
.board-row--selected .context-menu-btn[b-vels69vd7l] {
    opacity: 1;
}

.context-menu-btn:hover[b-vels69vd7l] {
    color: var(--ink);
    background-color: rgba(255, 255, 255, 0.08);
}

/* ---- Children container ---- */

.dimension-children[b-vels69vd7l] {
    display: flex;
    flex-direction: column;
}

/* ---- Tail drop zone (root level) ---- */

.tail-drop-zone[b-vels69vd7l] {
    position: relative;
    min-height: 4px;
}

.root-tail-drop-indicator[b-vels69vd7l] {
    position: absolute;
    top: -1px;
    left: 8px;
    right: 8px;
    height: 3px;
    background-color: var(--accent);
    border-radius: 2px;
    pointer-events: none;
    box-shadow: 0 0 4px var(--accent-lt);
    opacity: 0;
}

.root-tail-drop-indicator--visible[b-vels69vd7l] {
    opacity: 1;
}

/* ---- Board rows (intermingled with dimensions) ---- */

.board-row[b-vels69vd7l] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    cursor: pointer;
    border-radius: 4px;
    margin: 0 4px;
    transition: background-color 150ms ease-in-out;
    position: relative;
}

.board-row:hover[b-vels69vd7l] {
    background-color: var(--border);
}

.board-row--selected[b-vels69vd7l] {
    background-color: var(--accent-lt);
}

.board-row--selected[b-vels69vd7l]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background-color: var(--accent);
    border-radius: 0 2px 2px 0;
}

/* Dash in the chevron slot — same dimensions as .expand-btn to maintain alignment */
.board-row-dash[b-vels69vd7l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--ink2);
    font-size: 11px;
    line-height: 1;
    /* Optionally nudge down 1 px to visually center the box-drawing character */
    padding-bottom: 1px;
}

.board-row-icon[b-vels69vd7l] {
    color: var(--accent);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    width: 20px;
    height: 20px;
}

.board-row-name[b-vels69vd7l] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink);
    /* Normal case — no text-transform — to subtly distinguish from dimension headers */
    letter-spacing: 0.2px;
    line-height: 1;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/NewBoardDialog.razor.rz.scp.css */
/* ============================================================
   NewBoardDialog — Board creation form dialog
   Layered on top of TemplatePickerModal (z-index 1100)
   ============================================================ */

.modal-backdrop[b-2if3u9vlxk] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    /* Lighter alpha than TemplatePickerModal (0.6) because this always layers on top of it */
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-2if3u9vlxk 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-2if3u9vlxk {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-2if3u9vlxk] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 460px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
    animation: dialog-slide-in-b-2if3u9vlxk 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-2if3u9vlxk {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-2if3u9vlxk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border);
}

.modal-title[b-2if3u9vlxk] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-close-btn[b-2if3u9vlxk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    padding: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.modal-close-btn:hover:not(:disabled)[b-2if3u9vlxk] {
    color: var(--ink);
    background: var(--border);
}

.modal-close-btn:disabled[b-2if3u9vlxk] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Body ---- */

.modal-body[b-2if3u9vlxk] {
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* ---- Form sections ---- */

.form-section[b-2if3u9vlxk] {
    margin-top: 1.25rem;
}

.form-section-title[b-2if3u9vlxk] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin: 0 0 0.75rem;
}

/* ---- Form groups ---- */

.form-group[b-2if3u9vlxk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 0.75rem;
}

.form-group:last-child[b-2if3u9vlxk] {
    margin-bottom: 0;
}

.form-label[b-2if3u9vlxk] {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--ink2);
}

/* ---- Inputs ---- */

.form-input[b-2if3u9vlxk] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
}

.form-input:focus[b-2if3u9vlxk] {
    outline: none;
    border-color: var(--accent);
}

.form-input:disabled[b-2if3u9vlxk] {
    opacity: 0.5;
    cursor: not-allowed;
}

.form-input[b-2if3u9vlxk]::placeholder {
    color: var(--ink2);
    opacity: 0.6;
}

/* ---- Selects ---- */

.form-select[b-2if3u9vlxk] {
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--ink);
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 150ms ease-in-out;
    box-sizing: border-box;
    cursor: pointer;
    appearance: auto;
}

.form-select:focus[b-2if3u9vlxk] {
    outline: none;
    border-color: var(--accent);
}

.form-select:disabled[b-2if3u9vlxk] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Footer ---- */

.modal-footer[b-2if3u9vlxk] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--border);
}

/* ---- Buttons ---- */

.btn-create[b-2if3u9vlxk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.5rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 100px;
    min-height: 38px;
}

.btn-create:hover:not(:disabled)[b-2if3u9vlxk] {
    background: var(--accent-hover);
}

.btn-create:disabled[b-2if3u9vlxk] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-cancel[b-2if3u9vlxk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-2if3u9vlxk] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-2if3u9vlxk] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.btn-spinner[b-2if3u9vlxk] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-2if3u9vlxk 0.7s linear infinite;
}

@keyframes btn-spin-b-2if3u9vlxk {
    to { transform: rotate(360deg); }
}
/* /Components/PrerequisiteExtractionDialog.razor.rz.scp.css */
/* ============================================================
   PrerequisiteExtractionDialog — Lists sources needing extraction
   ============================================================ */

.modal-backdrop[b-c3dksbczmd] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: prereq-backdrop-fade-in-b-c3dksbczmd 150ms ease-in-out both;
}

@keyframes prereq-backdrop-fade-in-b-c3dksbczmd {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-dialog[b-c3dksbczmd] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: prereq-dialog-slide-in-b-c3dksbczmd 150ms ease-in-out both;
}

@keyframes prereq-dialog-slide-in-b-c3dksbczmd {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-c3dksbczmd] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-c3dksbczmd] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-body[b-c3dksbczmd] {
    padding: 1rem 1.5rem;
    max-height: 400px;
    overflow-y: auto;
}

.modal-message[b-c3dksbczmd] {
    font-size: 0.9rem;
    color: var(--ink2);
    line-height: 1.6;
    margin: 0 0 1rem;
}

.modal-footer[b-c3dksbczmd] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

/* ---- Board groups ---- */

.prerequisite-board-group[b-c3dksbczmd] {
    margin-bottom: 0.75rem;
}

.prerequisite-board-name[b-c3dksbczmd] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 4px;
}

.prerequisite-source-list[b-c3dksbczmd] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.prerequisite-source-list li[b-c3dksbczmd] {
    font-size: 0.85rem;
    color: var(--ink);
    padding: 4px 0 4px 12px;
    position: relative;
}

.prerequisite-source-list li[b-c3dksbczmd]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 4px;
    height: 4px;
    background: var(--ink3);
    border-radius: 50%;
    transform: translateY(-50%);
}

/* ---- Extracting indicator ---- */

.prerequisite-extracting-indicator[b-c3dksbczmd] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--accent);
}

.prerequisite-spinner[b-c3dksbczmd] {
    animation: prereq-spin-b-c3dksbczmd 1s linear infinite;
}

@keyframes prereq-spin-b-c3dksbczmd {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ---- Buttons ---- */

.btn-cancel[b-c3dksbczmd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover[b-c3dksbczmd] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-primary[b-c3dksbczmd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
    min-width: 90px;
    min-height: 38px;
    white-space: nowrap;
}

.btn-primary:hover[b-c3dksbczmd] {
    opacity: 0.88;
}
/* /Components/ProjectTemplateCard.razor.rz.scp.css */
/* ============================================================
   ProjectTemplateCard — Selectable project template card
   ============================================================ */

.project-template-card[b-8z76c0cpl5] {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 14px 14px 16px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    outline: none;
    user-select: none;
    position: relative;
    transition: border-color 150ms ease-in-out,
                box-shadow 150ms ease-in-out,
                background 150ms ease-in-out;
    min-height: 80px;
}

.project-template-card:hover[b-8z76c0cpl5] {
    border-color: var(--accent);
    background: var(--accent-lt);
}

.project-template-card--selected[b-8z76c0cpl5] {
    border-color: var(--accent-hover);
    box-shadow: 0 0 0 2px var(--accent-lt);
}

.project-template-card:focus-visible[b-8z76c0cpl5] {
    outline: 2px solid var(--accent-hover);
    outline-offset: 2px;
}

/* ---- Icon ---- */

.ptc-icon[b-8z76c0cpl5] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--ink2);
    width: 36px;
    height: 36px;
    margin-top: 2px;
}

.ptc-icon[b-8z76c0cpl5]  svg {
    width: 32px;
    height: 32px;
}

/* ---- Body ---- */

.ptc-body[b-8z76c0cpl5] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.ptc-title[b-8z76c0cpl5] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}

.ptc-description[b-8z76c0cpl5] {
    font-size: 0.775rem;
    color: var(--ink2);
    line-height: 1.45;
}

/* ---- Checkmark badge ---- */

.ptc-checkmark[b-8z76c0cpl5] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: var(--accent-hover);
    border-radius: 50%;
    color: #ffffff;
    margin-left: 4px;
    margin-top: 2px;
}
/* /Components/RelatedEntitiesPanel.razor.rz.scp.css */
/* ============================================================
   RelatedEntitiesPanel — Related entities section within
   the Entity Inspector pane
   ============================================================ */

.related-entities-panel[b-f0gonan9tg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px 16px;
    border-top: 1px solid var(--border);
}

.related-entities-heading[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.related-entities-title[b-f0gonan9tg] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--ink2);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.related-entities-loading[b-f0gonan9tg] {
    padding: 12px 16px;
    font-size: 0.82rem;
    color: var(--ink2);
    margin: 0;
}

/* ---- Collapsible section ---- */

.related-section[b-f0gonan9tg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.related-section-header-row[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.related-section-header[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
    padding: 4px 0;
    background: transparent;
    border: none;
    color: var(--ink2);
    font-size: 0.75rem;
    font-weight: 600;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    cursor: pointer;
    text-align: left;
    transition: color 150ms ease-in-out;
}

.related-section-header:hover[b-f0gonan9tg] {
    color: var(--ink);
}

/* ---- Add button + picker ---- */

.related-section-add-wrapper[b-f0gonan9tg] {
    position: relative;
    flex-shrink: 0;
}

.related-section-add-btn[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, color 150ms ease-in-out;
}

.related-section-add-btn:hover:not(:disabled)[b-f0gonan9tg] {
    background-color: var(--accent-lt);
    border-color: var(--accent);
    color: var(--accent);
}

.related-section-add-btn:disabled[b-f0gonan9tg] {
    opacity: 0.4;
    cursor: not-allowed;
}

.related-section-picker[b-f0gonan9tg] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 50;
    min-width: 180px;
    max-width: 260px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    max-height: 280px;
    overflow-y: auto;
}

.related-section-picker-empty[b-f0gonan9tg] {
    margin: 0;
    padding: 10px 12px;
    font-size: 0.78rem;
    color: var(--ink2);
    font-style: italic;
}

.related-section-picker-list[b-f0gonan9tg] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.related-section-picker-item[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 12px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.82rem;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color 100ms ease-in-out;
    box-sizing: border-box;
}

.related-section-picker-item:hover[b-f0gonan9tg] {
    background-color: var(--accent-lt);
}

.related-section-picker-item-name[b-f0gonan9tg] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.related-section-chevron[b-f0gonan9tg] {
    flex-shrink: 0;
    color: inherit;
    transition: transform 150ms ease-in-out;
}

.related-section-chevron--collapsed[b-f0gonan9tg] {
    transform: rotate(-90deg);
}

.related-section-title[b-f0gonan9tg] {
    color: inherit;
}

.related-section-body[b-f0gonan9tg] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 0;
}

/* ---- Related node row with optional extraction icon ---- */

.related-node-row[b-f0gonan9tg] {
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.related-node-card-wrapper[b-f0gonan9tg] {
    flex: 1;
    min-width: 0;
}

.related-node-extract-btn[b-f0gonan9tg] {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    margin-top: 4px;
}

/* ---- Extraction icon button (must be defined here — CSS isolation scopes BoardInspector styles) ---- */

.extraction-icon-btn[b-f0gonan9tg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 120ms ease, background-color 120ms ease, border-color 120ms ease;
}

.extraction-icon-btn:hover:not(:disabled)[b-f0gonan9tg] {
    color: var(--accent);
    background-color: var(--accent-lt);
    border-color: var(--accent-lt);
}

.extraction-icon-btn:disabled[b-f0gonan9tg] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ---- Action toolbar row (above section content) ---- */

.related-entities-action-toolbar[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}

.related-entities-toolbar-btn[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 8px;
    height: 28px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-family: inherit;
    font-weight: 500;
}

.related-entities-toolbar-label[b-f0gonan9tg] {
    color: inherit;
    font-size: inherit;
    line-height: 1;
}

/* ---- Connect to... section ---- */

.connect-btn[b-f0gonan9tg] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: color 150ms ease-in-out, background-color 150ms ease-in-out, border-color 150ms ease-in-out;
}

.connect-btn:hover[b-f0gonan9tg] {
    color: var(--ink);
    background-color: var(--bg3);
    border-color: var(--border);
}
/* /Components/RelatedEntityCard.razor.rz.scp.css */
/* ============================================================
   RelatedEntityCard — A single related entity card within
   the RelatedEntitiesPanel
   ============================================================ */

.related-entity-card[b-zq2ihnf8yb] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
}

/* ---- Toolbar: action icons above the title ---- */

.related-entity-card-toolbar[b-zq2ihnf8yb] {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ---- Header: image + name row ---- */

.related-entity-card-header[b-zq2ihnf8yb] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.related-entity-card-name-row[b-zq2ihnf8yb] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.related-entity-card-source-icon[b-zq2ihnf8yb] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    object-fit: contain;
}

.related-entity-card-name[b-zq2ihnf8yb] {
    flex: 1;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--ink);
    word-break: break-word;
    line-height: 1.3;
    min-width: 0;
}

.related-entity-card-name--link[b-zq2ihnf8yb] {
    background: transparent;
    border: none;
    padding: 0;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: color 150ms ease-in-out;
}

.related-entity-card-name--link:hover[b-zq2ihnf8yb] {
    color: var(--accent-hover);
}

.related-entity-card-icon-btn[b-zq2ihnf8yb] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
}

.related-entity-card-icon-btn--edit[b-zq2ihnf8yb] {
    color: var(--accent);
}

.related-entity-card-icon-btn--edit:hover[b-zq2ihnf8yb] {
    background-color: var(--accent-lt);
    color: var(--accent-hover);
}

.related-entity-card-icon-btn--view-alongside[b-zq2ihnf8yb] {
    color: var(--ink2);
}

.related-entity-card-icon-btn--view-alongside:hover[b-zq2ihnf8yb] {
    background-color: var(--accent-lt);
    color: var(--accent);
}

.related-entity-card-icon-btn--view-alongside-active[b-zq2ihnf8yb] {
    color: var(--accent);
    background-color: var(--accent-lt);
    border: 1px solid var(--accent-lt);
}

.related-entity-card-icon-btn--extract[b-zq2ihnf8yb] {
    color: var(--accent);
}

.related-entity-card-icon-btn--extract:hover[b-zq2ihnf8yb] {
    background-color: var(--accent-lt);
    color: var(--accent-hover);
}

.related-entity-card-icon-btn--delete[b-zq2ihnf8yb] {
    color: var(--status-error);
}

.related-entity-card-icon-btn--delete:hover[b-zq2ihnf8yb] {
    background-color: rgba(229, 57, 53, 0.1);
}

/* ---- Bullet list ---- */

.related-entity-card-bullets[b-zq2ihnf8yb] {
    margin: 0;
    padding: 0 0 0 16px;
    list-style-type: disc;
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 240px;
    overflow-y: auto;
}

.related-entity-card-bullets li[b-zq2ihnf8yb] {
    font-size: 0.82rem;
    color: var(--ink);
    line-height: 1.5;
    word-break: break-word;
}

/* ---- Empty state ---- */

.related-entity-card-empty[b-zq2ihnf8yb] {
    margin: 0;
    font-size: 0.82rem;
    font-style: italic;
    color: var(--ink2);
    opacity: 0.6;
}

/* ---- Inline bullet editor ---- */

.related-entity-card-editor[b-zq2ihnf8yb] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.related-entity-card-notes-editor[b-zq2ihnf8yb] {
    display: flex;
    align-items: stretch;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 4px;
    transition: border-color 150ms ease-in-out;
    min-height: 120px;
    max-height: 240px;
    overflow-y: auto;
}

.related-entity-card-notes-editor:focus-within[b-zq2ihnf8yb] {
    border-color: var(--accent);
}

.related-entity-card-notes-gutter[b-zq2ihnf8yb] {
    display: flex;
    flex-direction: column;
    padding: 7px 0 7px 8px;
    gap: 0;
    min-width: 16px;
    flex-shrink: 0;
    pointer-events: none;
    user-select: none;
    overflow: hidden;
}

.related-entity-card-notes-gutter-bullet[b-zq2ihnf8yb] {
    font-size: 1rem;
    color: var(--accent);
    line-height: 1.5;
    height: calc(0.82rem * 1.5);
    display: flex;
    align-items: center;
}

.related-entity-card-textarea[b-zq2ihnf8yb] {
    flex: 1;
    width: 100%;
    padding: 7px 8px;
    background: transparent;
    border: none;
    color: var(--ink);
    font-size: 0.82rem;
    font-family: inherit;
    line-height: 1.5;
    resize: none;
    box-sizing: border-box;
    white-space: pre-wrap;
    field-sizing: content;
}

.related-entity-card-textarea:focus[b-zq2ihnf8yb] {
    outline: none;
}

.related-entity-card-textarea[b-zq2ihnf8yb]::placeholder {
    color: var(--ink2);
    opacity: 0.45;
}

.related-entity-card-done-btn[b-zq2ihnf8yb] {
    align-self: flex-end;
    padding: 4px 12px;
    background: var(--accent);
    border: none;
    border-radius: 4px;
    color: var(--ink);
    font-size: 0.78rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.related-entity-card-done-btn:hover[b-zq2ihnf8yb] {
    background: var(--accent-hover);
}
/* /Components/SummaryDialog.razor.rz.scp.css */
/* ============================================================
   SummaryDialog — Entity type summary prompt for AI extraction
   ============================================================ */

/* ---- Modal overlay (must be defined here — CSS isolation scopes ConfirmDialog styles) ---- */

.modal-backdrop[b-geglhd7ikk] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: summary-backdrop-fade-in-b-geglhd7ikk 150ms ease-in-out both;
}

@keyframes summary-backdrop-fade-in-b-geglhd7ikk {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-dialog[b-geglhd7ikk] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 440px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: summary-dialog-slide-in-b-geglhd7ikk 150ms ease-in-out both;
}

@keyframes summary-dialog-slide-in-b-geglhd7ikk {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-geglhd7ikk] {
    padding: 1.25rem 1.5rem 0;
}

.modal-title[b-geglhd7ikk] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-body[b-geglhd7ikk] {
    padding: 1rem 1.5rem;
}

.modal-message[b-geglhd7ikk] {
    font-size: 0.9rem;
    color: var(--ink2);
    line-height: 1.6;
    margin: 0;
}

.modal-footer[b-geglhd7ikk] {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 0 1.5rem 1.25rem;
}

.summary-dialog[b-geglhd7ikk] {
    max-width: 480px;
}

.summary-dialog-hint[b-geglhd7ikk] {
    margin-bottom: 12px;
}

.summary-dialog-input[b-geglhd7ikk] {
    display: block;
    width: 100%;
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 9px 12px;
    font: 13px/1.5 var(--font-ui, inherit);
    color: var(--ink);
    outline: none;
    box-sizing: border-box;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.summary-dialog-input:focus[b-geglhd7ikk] {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(43, 92, 230, 0.12);
}

/* ---- Buttons ---- */

.btn-cancel[b-geglhd7ikk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 38px;
}

.btn-cancel:hover:not(:disabled)[b-geglhd7ikk] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-geglhd7ikk] {
    opacity: 0.4;
    cursor: not-allowed;
}

.btn-primary[b-geglhd7ikk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease;
    min-width: 90px;
    min-height: 38px;
}

.btn-primary:hover:not(:disabled)[b-geglhd7ikk] {
    opacity: 0.88;
}

.btn-primary:disabled[b-geglhd7ikk] {
    opacity: 0.35;
    cursor: not-allowed;
}
/* /Components/TemplatePickerModal.razor.rz.scp.css */
/* ============================================================
   TemplatePickerModal — Add-to-project template selection
   ============================================================ */

.modal-backdrop[b-at33lmiu4a] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: backdrop-fade-in-b-at33lmiu4a 150ms ease-in-out both;
}

@keyframes backdrop-fade-in-b-at33lmiu4a {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog box ---- */

.modal-dialog[b-at33lmiu4a] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    margin: 1rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    animation: dialog-slide-in-b-at33lmiu4a 150ms ease-in-out both;
}

@keyframes dialog-slide-in-b-at33lmiu4a {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.modal-header[b-at33lmiu4a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border);
}

.modal-title[b-at33lmiu4a] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.modal-close-btn[b-at33lmiu4a] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    padding: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.modal-close-btn:hover:not(:disabled)[b-at33lmiu4a] {
    color: var(--ink);
    background: var(--border);
}

.modal-close-btn:disabled[b-at33lmiu4a] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Body ---- */

.modal-body[b-at33lmiu4a] {
    padding: 1.25rem 1.5rem 1.5rem;
}

/* ---- Loading / error states ---- */

.loading-state[b-at33lmiu4a] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
}

.loading-spinner[b-at33lmiu4a] {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: modal-spin-b-at33lmiu4a 0.7s linear infinite;
}

@keyframes modal-spin-b-at33lmiu4a {
    to { transform: rotate(360deg); }
}

.error-state[b-at33lmiu4a] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    text-align: center;
}

.error-message[b-at33lmiu4a] {
    font-size: 0.875rem;
    color: var(--ink2);
    line-height: 1.5;
    margin: 0;
}

/* ---- Template card grid ---- */

.template-grid[b-at33lmiu4a] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* ---- Template card ---- */

.template-card[b-at33lmiu4a] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px 12px 16px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    min-height: 110px;
    transition: border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.template-card:hover:not(:disabled)[b-at33lmiu4a] {
    border-color: var(--accent);
    background: var(--accent-lt);
}

.template-card:disabled[b-at33lmiu4a] {
    opacity: 0.5;
    cursor: not-allowed;
}

.template-card--loading[b-at33lmiu4a] {
    opacity: 1;
    cursor: wait;
}

/* Custom card subtle visual distinction */
.template-card--custom[b-at33lmiu4a] {
    border-style: dashed;
}

/* ---- Card icon ---- */

.template-card-icon[b-at33lmiu4a] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink2);
    flex-shrink: 0;
}

.template-card-icon[b-at33lmiu4a]  svg {
    width: 32px;
    height: 32px;
}

/* ---- Card text ---- */

.template-card-name[b-at33lmiu4a] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}

.template-card-label[b-at33lmiu4a] {
    font-size: 0.75rem;
    color: var(--ink2);
    line-height: 1.3;
}

/* ---- Per-card spinner ---- */

.card-spinner[b-at33lmiu4a] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-top-color: var(--ink);
    border-radius: 50%;
    animation: modal-spin-b-at33lmiu4a 0.7s linear infinite;
}
/* /Components/TipTapEditor.razor.rz.scp.css */
/* ============================================================
   TipTapEditor — WYSIWYG scene editor
   ============================================================ */

.editor-container[b-24f9ajbtkk] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: var(--bg);
}

/* ---- Read-only source banner ---- */

.editor-readonly-banner[b-24f9ajbtkk] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    padding: 8px 16px;
    background: var(--bg2);
    border-bottom: 1px solid var(--border);
    font-size: 0.8rem;
    color: var(--ink2);
    flex-shrink: 0;
}

.editor-readonly-refresh-link[b-24f9ajbtkk] {
    background: none;
    border: none;
    padding: 0;
    color: var(--accent);
    font-size: 0.8rem;
    font-family: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.editor-readonly-refresh-link:hover[b-24f9ajbtkk] {
    color: var(--accent-hover);
}

/* ---- Toolbar ---- */

.editor-toolbar[b-24f9ajbtkk] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background-color: var(--bg2);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.toolbar-btn[b-24f9ajbtkk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 28px;
    background: none;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: color 150ms ease-in-out, background-color 150ms ease-in-out, border-color 150ms ease-in-out;
}

.toolbar-btn:hover[b-24f9ajbtkk] {
    color: var(--ink);
    background-color: var(--border);
}

.toolbar-btn--active[b-24f9ajbtkk] {
    color: var(--accent);
    background-color: var(--accent-lt);
    border-color: var(--accent-lt);
}

.toolbar-separator[b-24f9ajbtkk] {
    width: 1px;
    height: 18px;
    background-color: var(--border);
    margin: 0 4px;
}

/* ---- Assembled heading preview ---- */

.editor-assembled-heading-wrapper[b-24f9ajbtkk] {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 40px;
    background-color: var(--bg);
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    box-sizing: border-box;
}

.editor-assembled-heading[b-24f9ajbtkk] {
    font-family: var(--assembled-font, 'Garamond', 'EB Garamond', 'Georgia', serif);
    font-size: 1.17em;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    padding: 24px 0 0;
    line-height: 1.3;
    text-align: var(--heading-align, left);
    user-select: none;
    pointer-events: none;
}

/* ---- Editor body ---- */

.editor-body[b-24f9ajbtkk] {
    flex: 1;
    overflow-y: auto;
    padding: 0 48px;
    cursor: text;
    background-color: var(--bg3);
}

.editor-body-inner[b-24f9ajbtkk] {
    max-width: 720px;
    margin: 0 auto;
    min-height: 100%;
    box-sizing: border-box;
    background-color: var(--bg);
    padding: 12px 40px;

    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
}

/* TipTap ProseMirror editor element — outline removal is in app.css (global) */
.editor-body :global(.ProseMirror)[b-24f9ajbtkk] {
    padding: 32px 0;
    font-family: 'Fira Code', 'Cascadia Code', 'Consolas', monospace;
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--ink);
    caret-color: var(--accent-hover);
}

.editor-body :global(.ProseMirror p)[b-24f9ajbtkk] {
    margin: 0 0 0.75em;
}

.editor-body :global(.ProseMirror h1)[b-24f9ajbtkk] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--accent);
    margin: 1.25em 0 0.5em;
}

.editor-body :global(.ProseMirror h2)[b-24f9ajbtkk] {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--ink);
    margin: 1em 0 0.4em;
}

.editor-body :global(.ProseMirror h3)[b-24f9ajbtkk] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0.9em 0 0.35em;
}

.editor-body :global(.ProseMirror h4)[b-24f9ajbtkk] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink2);
    margin: 0.8em 0 0.3em;
}

.editor-body :global(.ProseMirror strong)[b-24f9ajbtkk] {
    font-weight: 700;
}

.editor-body :global(.ProseMirror em)[b-24f9ajbtkk] {
    font-style: italic;
}

.editor-body :global(.ProseMirror code)[b-24f9ajbtkk] {
    color: var(--ink3);
    background-color: rgba(255, 255, 255, 0.05);
    padding: 1px 4px;
    border-radius: 3px;
    font-size: 0.9em;
}

.editor-body :global(.ProseMirror blockquote)[b-24f9ajbtkk] {
    border-left: 3px solid var(--accent);
    margin: 0.75em 0;
    padding-left: 1em;
    color: var(--ink2);
    font-style: italic;
}

.editor-body :global(.ProseMirror ul)[b-24f9ajbtkk],
.editor-body :global(.ProseMirror ol)[b-24f9ajbtkk] {
    padding-left: 1.5em;
    margin: 0.2em 0;
}

.editor-body :global(.ProseMirror li)[b-24f9ajbtkk] {
    margin-bottom: 0;
    line-height: 1.3;
}

.editor-body :global(.ProseMirror li p)[b-24f9ajbtkk] {
    margin: 0;
}

.editor-body :global(.ProseMirror p.is-editor-empty:first-child::before)[b-24f9ajbtkk] {
    content: 'Start writing…';
    color: var(--ink2);
    pointer-events: none;
    height: 0;
    float: left;
}
/* /Components/Toast.razor.rz.scp.css */
.toast-container[b-v5qr4edj9e] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 9000;
    pointer-events: none;
}

.toast[b-v5qr4edj9e] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-width: 280px;
    max-width: 420px;
    padding: 12px 16px;
    border-radius: 4px;
    background-color: var(--bg3);
    border-left: 4px solid var(--accent);
    color: var(--ink);
    font-size: 0.875rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    pointer-events: all;
    animation: toast-slide-in-b-v5qr4edj9e 0.2s ease-out;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.toast--dismissing[b-v5qr4edj9e] {
    opacity: 0;
    transform: translateX(20px);
}

.toast--info[b-v5qr4edj9e] {
    border-left-color: var(--accent-hover);
}

.toast--success[b-v5qr4edj9e] {
    border-left-color: var(--status-success);
}

.toast--warning[b-v5qr4edj9e] {
    border-left-color: var(--status-warning);
}

.toast--error[b-v5qr4edj9e] {
    border-left-color: var(--status-error);
}

.toast-message[b-v5qr4edj9e] {
    flex: 1;
    line-height: 1.4;
}

.toast-close[b-v5qr4edj9e] {
    background: none;
    border: none;
    color: var(--ink2);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0;
    transition: color 150ms ease-in-out;
    flex-shrink: 0;
}

.toast-close:hover[b-v5qr4edj9e] {
    color: var(--ink);
}

@keyframes toast-slide-in-b-v5qr4edj9e {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
/* /Components/TreeNode.razor.rz.scp.css */
/* ============================================================
   TreeNode — Recursive tree item (folder or entity)
   ============================================================ */

.tree-node-wrapper[b-765mhsc911] {
    display: flex;
    flex-direction: column;
    position: relative;
}

.tree-node[b-765mhsc911] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding-top: 3px;
    padding-bottom: 3px;
    padding-right: 8px;
    cursor: pointer;
    border-radius: 4px;
    margin: 0 4px;
    position: relative;
    transition: background-color 150ms ease-in-out;
    min-height: 28px;
}

.tree-node:hover[b-765mhsc911] {
    background-color: var(--border);
}

.tree-node--selected[b-765mhsc911] {
    background-color: var(--accent-lt);
}

.tree-node--selected[b-765mhsc911]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 3px;
    width: 3px;
    background-color: var(--accent);
    border-radius: 0 2px 2px 0;
}

.tree-node--drop-target[b-765mhsc911] {
    background-color: var(--accent-lt);
    outline: 1px solid var(--accent);
    outline-offset: -1px;
}

/* ---- Icons ---- */

.node-icon[b-765mhsc911] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    width: 18px;
    height: 18px;
    color: var(--ink2);
}

.folder-icon[b-765mhsc911] {
    color: var(--accent-hover);
}

.entity-icon[b-765mhsc911] {
    color: var(--ink2);
}

/* ---- Expand button ---- */

.expand-btn[b-765mhsc911] {
    background: none;
    border: none;
    padding: 2px;
    cursor: pointer;
    color: var(--ink2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 2px;
    transition: color 150ms ease-in-out;
}

.expand-btn:hover[b-765mhsc911] {
    color: var(--ink);
}

.expand-btn-spacer[b-765mhsc911] {
    display: inline-block;
    width: 18px;
    flex-shrink: 0;
}

/* ---- Label ---- */

.node-label[b-765mhsc911] {
    font-size: 0.85rem;
    color: var(--ink);
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- Context menu trigger ---- */

.context-menu-btn[b-765mhsc911] {
    background: none;
    border: none;
    padding: 2px 4px;
    cursor: pointer;
    color: var(--ink2);
    display: flex;
    align-items: center;
    border-radius: 3px;
    opacity: 0;
    flex-shrink: 0;
    transition: opacity 150ms ease-in-out, color 150ms ease-in-out;
}

.tree-node:hover .context-menu-btn[b-765mhsc911],
.tree-node--selected .context-menu-btn[b-765mhsc911] {
    opacity: 1;
}

.context-menu-btn:hover[b-765mhsc911] {
    color: var(--ink);
    background-color: rgba(255, 255, 255, 0.08);
}

/* ---- Children ---- */

.tree-node-children[b-765mhsc911] {
    display: flex;
    flex-direction: column;
}

/* ---- Drop indicators ---- */

.drop-indicator[b-765mhsc911] {
    position: absolute;
    left: 8px;
    right: 8px;
    height: 3px;
    background-color: var(--accent);
    border-radius: 2px;
    pointer-events: none;
    box-shadow: 0 0 4px var(--accent-lt);
    z-index: 2;
    opacity: 0;
}

.drop-indicator--visible[b-765mhsc911] {
    opacity: 1;
}

.drop-indicator--above[b-765mhsc911] {
    top: -1px;
}

.drop-indicator--below[b-765mhsc911] {
    bottom: -1px;
}


/* ---- Tail drop zone (after last child) ---- */

.tail-drop-zone[b-765mhsc911] {
    position: relative;
    min-height: 4px;
}

.drop-into-indicator[b-765mhsc911] {
    position: absolute;
    inset: 0 4px;
    border: 1px solid var(--accent);
    border-radius: 4px;
    pointer-events: none;
}
/* /Components/UpdateFromChatDialog.razor.rz.scp.css */
/* ============================================================
   UpdateFromChatDialog — chat-driven board update review flow
   Shares visual language with ImportFromTextDialog (ift-* classes).
   ============================================================ */

/* ---- Backdrop ---- */

.ift-backdrop[b-aielk2lu6l] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: ift-backdrop-in-b-aielk2lu6l 150ms ease-in-out both;
}

@keyframes ift-backdrop-in-b-aielk2lu6l {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ---- Dialog base ---- */

.ift-dialog[b-aielk2lu6l] {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 10px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
    max-width: calc(100vw - 2rem);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    animation: ift-dialog-in-b-aielk2lu6l 150ms ease-in-out both;
    outline: none;
}

@keyframes ift-dialog-in-b-aielk2lu6l {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Width variants ---- */

.ift-dialog--loading[b-aielk2lu6l] { width: 380px; }
.ift-dialog--error[b-aielk2lu6l]   { width: 420px; }
.ift-dialog--edit[b-aielk2lu6l]    { width: 800px; }
.ift-dialog--delete[b-aielk2lu6l]  { width: 520px; }
.ift-dialog--summary[b-aielk2lu6l] { width: 460px; }

/* ---- Loading body ---- */

.ift-loading-body[b-aielk2lu6l] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    flex: 1;
}

.ift-loading-spinner[b-aielk2lu6l] {
    display: inline-block;
    width: 36px;
    height: 36px;
    border: 3px solid var(--border2);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ift-spin-b-aielk2lu6l 0.75s linear infinite;
}

/* ---- Error callout ---- */

.ift-error-callout[b-aielk2lu6l] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--status-error) 10%, var(--bg2));
    border: 1px solid var(--status-error);
    border-radius: var(--r);
    font-size: 0.85rem;
    color: var(--ink);
    line-height: 1.5;
}

.ift-error-icon[b-aielk2lu6l] {
    color: var(--status-error);
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---- Header ---- */

.ift-header[b-aielk2lu6l] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ift-header-text[b-aielk2lu6l] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ift-title[b-aielk2lu6l] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ift-subtitle[b-aielk2lu6l] {
    font-size: 0.8rem;
    color: var(--ink2);
    margin: 0;
}

/* ---- Header right cluster (step counter + close) ---- */

.ift-header-right[b-aielk2lu6l] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* ---- Close button ---- */

.ift-close-btn[b-aielk2lu6l] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: var(--r);
    color: var(--ink3);
    cursor: pointer;
    flex-shrink: 0;
    transition: color 150ms ease-in-out, background 150ms ease-in-out;
}

.ift-close-btn:hover:not(:disabled)[b-aielk2lu6l] {
    color: var(--ink);
    background: var(--bg3);
}

.ift-close-btn:disabled[b-aielk2lu6l] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ---- Step counter chip ---- */

.ift-step-counter[b-aielk2lu6l] {
    flex-shrink: 0;
    padding: 3px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--ink2);
    white-space: nowrap;
    align-self: center;
}

/* ---- Additions banner ---- */

.ift-additions-banner[b-aielk2lu6l] {
    padding: 9px 20px;
    background: var(--accent-lt);
    border-bottom: 1px solid var(--accent);
    font-size: 0.82rem;
    color: var(--ink);
    flex-shrink: 0;
}

/* ---- Body (generic) ---- */

.ift-body[b-aielk2lu6l] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ift-helper[b-aielk2lu6l] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin: 0;
    line-height: 1.5;
}

/* ---- Review body (side-by-side) ---- */

.ift-review-body[b-aielk2lu6l] {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 280px;
}

.ift-review-panel[b-aielk2lu6l] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 20px;
    overflow-y: auto;
    min-width: 0;
}

.ift-panel-divider[b-aielk2lu6l] {
    width: 1px;
    background: var(--border);
    flex-shrink: 0;
}

.ift-panel-label[b-aielk2lu6l] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--ink2);
    flex-shrink: 0;
}

.ift-panel-label--proposed[b-aielk2lu6l] {
    color: var(--accent);
}

/* ---- Location chips ---- */

.ift-location-chips[b-aielk2lu6l] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ift-chip[b-aielk2lu6l] {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 4px 8px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
    font-size: 0.8rem;
    color: var(--ink);
    line-height: 1.4;
}

.ift-chip-axis[b-aielk2lu6l] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink2);
    flex-shrink: 0;
}

/* ---- Bullet lists ---- */

.ift-bullets[b-aielk2lu6l] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ift-bullet-item[b-aielk2lu6l] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--ink);
    line-height: 1.5;
}

.ift-bullet-item[b-aielk2lu6l]::before {
    content: "•";
    font-size: 0.9rem;
    color: var(--accent);
    opacity: 0.8;
    flex-shrink: 0;
}

.ift-bullet-item--added[b-aielk2lu6l] {
    color: var(--status-success);
}

.ift-bullet-item--added[b-aielk2lu6l]::before {
    color: var(--status-success);
    opacity: 1;
}

.ift-bullet-item--removed[b-aielk2lu6l] {
    color: var(--status-error);
    opacity: 0.8;
}

.ift-bullet-item--removed[b-aielk2lu6l]::before {
    color: var(--status-error);
    opacity: 1;
}

.ift-diff-prefix[b-aielk2lu6l] {
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
    font-family: monospace;
}

/* ---- Warning callout (delete phase) ---- */

.ift-warning-callout[b-aielk2lu6l] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--status-error) 10%, var(--bg2));
    border: 1px solid var(--status-error);
    border-radius: var(--r);
    font-size: 0.85rem;
    color: var(--ink);
    line-height: 1.5;
}

.ift-warning-icon[b-aielk2lu6l] {
    color: var(--status-error);
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---- Notes section label ---- */

.ift-notes-section-label[b-aielk2lu6l] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink2);
    margin: 0;
}

/* ---- Notes preview card ---- */

.ift-notes-preview[b-aielk2lu6l] {
    padding: 12px 14px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
}

/* ---- Summary grid ---- */

.ift-summary-grid[b-aielk2lu6l] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.ift-summary-card[b-aielk2lu6l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 16px 12px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: var(--r);
}

.ift-summary-count[b-aielk2lu6l] {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
}

.ift-summary-label[b-aielk2lu6l] {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ink2);
}

.ift-summary-grid--four[b-aielk2lu6l] {
    grid-template-columns: repeat(2, 1fr);
}

.ift-summary-card--additions .ift-summary-count[b-aielk2lu6l] { color: var(--status-success); }
.ift-summary-card--edits     .ift-summary-count[b-aielk2lu6l] { color: var(--accent); }
.ift-summary-card--removals  .ift-summary-count[b-aielk2lu6l] { color: var(--status-error); }
.ift-summary-card--reorders  .ift-summary-count[b-aielk2lu6l] { color: var(--ink2); }

/* ---- Skipped chip ---- */

.ift-skipped-chip[b-aielk2lu6l] {
    align-self: flex-start;
    padding: 4px 10px;
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 20px;
    font-size: 0.75rem;
    color: var(--ink2);
}

/* ---- Footer ---- */

.ift-footer[b-aielk2lu6l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

.ift-footer-hint[b-aielk2lu6l] {
    font-size: 0.78rem;
    color: var(--ink3);
}

.ift-footer-btns[b-aielk2lu6l] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* ---- Buttons ---- */

.btn-cancel[b-aielk2lu6l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.15rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 36px;
}

.btn-cancel:hover:not(:disabled)[b-aielk2lu6l] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.btn-cancel:disabled[b-aielk2lu6l] {
    opacity: 0.4;
    cursor: not-allowed;
}

.ift-btn-skip[b-aielk2lu6l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    background: transparent;
    color: var(--ink2);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-skip:hover[b-aielk2lu6l] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

.ift-btn-accept[b-aielk2lu6l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.5rem 1rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-accept:hover[b-aielk2lu6l] {
    background: var(--accent-hover);
}

.ift-btn-remove[b-aielk2lu6l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.5rem 1rem;
    background: var(--status-error);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 150ms ease-in-out;
    min-height: 36px;
}

.ift-btn-remove:hover[b-aielk2lu6l] {
    opacity: 0.88;
}

.ift-btn-apply[b-aielk2lu6l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.55rem 1.15rem;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-height: 36px;
    min-width: 100px;
}

.ift-btn-apply:hover:not(:disabled)[b-aielk2lu6l] {
    background: var(--accent-hover);
}

.ift-btn-apply:disabled[b-aielk2lu6l] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ---- Button spinner ---- */

.ift-btn-spinner[b-aielk2lu6l] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ift-spin-b-aielk2lu6l 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes ift-spin-b-aielk2lu6l {
    to { transform: rotate(360deg); }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-layout[b-b08g9ggq0e] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background-color: var(--bg);
    color: var(--ink);
}

.app-header[b-b08g9ggq0e] {
    height: 48px;
    background-color: var(--bg2);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    padding: 0 16px;
}

.header-content[b-b08g9ggq0e] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    width: 100%;
    gap: 1rem;
}

.header-left[b-b08g9ggq0e] {
    display: flex;
    align-items: baseline;
}

.header-center[b-b08g9ggq0e] {
    display: flex;
    justify-content: center;
    align-items: center;
}

.header-right[b-b08g9ggq0e] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.branding[b-b08g9ggq0e] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.5px;
}

.workspace[b-b08g9ggq0e] {
    display: flex;
    flex: 1;
    overflow: hidden;
}

.pane-navigator[b-b08g9ggq0e] {
    width: 280px;
    min-width: 280px;
    max-width: 320px;
    background-color: var(--bg2);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pane-workspace[b-b08g9ggq0e] {
    flex: 1;
    overflow: hidden;
    background-color: var(--bg);
    display: flex;
    flex-direction: column;
}

.pane-inspector[b-b08g9ggq0e] {
    width: 340px;
    min-width: 340px;
    max-width: 400px;
    background-color: var(--bg2);
    border-left: 1px solid var(--border);
    display: flex;
    flex-direction: column;
}

.pane-inspector--hidden[b-b08g9ggq0e] {
    display: none;
}

.pane-inspector--chat[b-b08g9ggq0e] {
    width: 640px;
    min-width: 640px;
    max-width: 640px;
}

.pane-header[b-b08g9ggq0e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    min-height: 40px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink2);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.pane-header-label[b-b08g9ggq0e] {
    /* inherits pane-header text styles */
}

/* Add button in the navigator pane header */
.add-btn[b-b08g9ggq0e] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    white-space: nowrap;
}

.add-btn:hover[b-b08g9ggq0e] {
    color: var(--ink);
    border-color: var(--accent);
    background: var(--accent-lt);
}

.add-btn--active[b-b08g9ggq0e] {
    color: var(--accent);
    border-color: var(--accent);
    background: var(--accent-lt);
}

.add-btn--capped[b-b08g9ggq0e] {
    opacity: 0.6;
}

.pane-content[b-b08g9ggq0e] {
    padding: 16px;
    flex: 1;
    overflow-y: auto;
}

/* When a chat panel is open the pane-content must be a flex column so the
   height chain reaches board-chat-panel and its internal messages div scrolls. */
.pane-inspector--chat .pane-content[b-b08g9ggq0e] {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* The intermediate wrapper div rendered by MainLayout around BoardInspector */
.pane-inspector--chat .pane-content > div[b-b08g9ggq0e] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pane-navigator-content[b-b08g9ggq0e] {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.entity-inspector[b-b08g9ggq0e] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.inspector-label-small[b-b08g9ggq0e] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink2);
    margin: 0;
}

.entity-name[b-b08g9ggq0e] {
    font-size: 0.9rem;
    color: var(--ink);
    font-weight: 500;
    margin: 0;
}

.dimmed[b-b08g9ggq0e] {
    color: var(--ink2);
    font-size: 0.85rem;
}

/* --------------------------------------------------------------------------
   Session Loading
   -------------------------------------------------------------------------- */

.session-loading[b-b08g9ggq0e] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    background-color: var(--bg);
}

.session-loading-text[b-b08g9ggq0e] {
    font-size: 1rem;
    color: var(--ink2);
}

/* --------------------------------------------------------------------------
   User Menu
   -------------------------------------------------------------------------- */

.user-menu[b-b08g9ggq0e] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background-color 150ms ease-in-out;
    user-select: none;
}

.user-menu:hover[b-b08g9ggq0e] {
    background-color: var(--border);
}

.user-avatar[b-b08g9ggq0e] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.user-avatar--monogram[b-b08g9ggq0e] {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--accent);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}

.user-display-name[b-b08g9ggq0e] {
    font-size: 0.875rem;
    color: var(--ink);
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-dropdown[b-b08g9ggq0e] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background-color: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 4px;
    min-width: 140px;
    box-shadow: var(--shadow);
    z-index: 200;
    overflow: hidden;
}

.user-dropdown-item[b-b08g9ggq0e] {
    display: block;
    width: 100%;
    padding: 10px 16px;
    background: none;
    border: none;
    color: var(--ink);
    font-size: 0.875rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.user-dropdown-item:hover[b-b08g9ggq0e] {
    background-color: var(--border);
}

/* --------------------------------------------------------------------------
   Header project name + close project button
   -------------------------------------------------------------------------- */

.header-project-name[b-b08g9ggq0e] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin-left: 12px;
    position: relative;
    top: -1px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
}

.header-export-btn[b-b08g9ggq0e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    padding: 4px;
    background: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    opacity: 0.75;
}

.header-export-btn:hover[b-b08g9ggq0e] {
    background: var(--accent-lt);
    opacity: 1;
}

.header-close-project-btn[b-b08g9ggq0e] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 12px;
    padding: 4px 10px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--ink2);
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
    white-space: nowrap;
}

.header-close-project-btn:hover[b-b08g9ggq0e] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

/* --------------------------------------------------------------------------
   Split-Pane Reference Viewer
   -------------------------------------------------------------------------- */

.split-pane-container[b-b08g9ggq0e] {
    display: flex;
    flex-direction: row;
    height: 100%;
    overflow: hidden;
}

.split-pane-primary[b-b08g9ggq0e] {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: flex 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

.split-pane-reference[b-b08g9ggq0e] {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: flex 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Disable transitions during drag to prevent jitter */
.split-pane-container--dragging .split-pane-primary[b-b08g9ggq0e],
.split-pane-container--dragging .split-pane-reference[b-b08g9ggq0e] {
    transition: none;
}

/* Prevent text selection during drag */
.split-pane-container--dragging[b-b08g9ggq0e] {
    user-select: none;
    -webkit-user-select: none;
}

/* ---- Divider ---- */

.split-pane-divider[b-b08g9ggq0e] {
    width: 5px;
    flex-shrink: 0;
    background-color: var(--border);
    cursor: col-resize;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: background-color 150ms ease-in-out;
    padding: 0 2.5px;
    margin: 0 -2.5px;
    box-sizing: content-box;
}

.split-pane-divider:hover[b-b08g9ggq0e],
.split-pane-divider:active[b-b08g9ggq0e] {
    background-color: var(--accent);
}

.split-pane-divider:focus-visible[b-b08g9ggq0e] {
    background-color: var(--accent);
    outline: 2px solid var(--accent-hover);
    outline-offset: -2px;
}

/* Affordance dots */
.split-pane-divider-affordance[b-b08g9ggq0e] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    pointer-events: none;
}

.split-pane-divider-affordance[b-b08g9ggq0e]::before,
.split-pane-divider-affordance[b-b08g9ggq0e]::after {
    content: '';
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: var(--divider-dot);
}

/* Third dot via box-shadow */
.split-pane-divider-affordance[b-b08g9ggq0e]::before {
    box-shadow: 0 6px 0 var(--divider-dot);
}

.split-pane-divider:hover .split-pane-divider-affordance[b-b08g9ggq0e]::before,
.split-pane-divider:hover .split-pane-divider-affordance[b-b08g9ggq0e]::after {
    background-color: var(--divider-dot-hover);
}

.split-pane-divider:hover .split-pane-divider-affordance[b-b08g9ggq0e]::before {
    box-shadow: 0 6px 0 var(--divider-dot-hover);
}

.restore-success-bar[b-b08g9ggq0e] {
    flex-shrink: 0;
    padding: 7px 14px;
    background: color-mix(in srgb, var(--status-success) 15%, transparent);
    border-bottom: 1px solid rgba(67, 160, 71, 0.25);
    color: var(--status-success);
    font-family: var(--font-ui);
    font-size: 0.8rem;
    font-weight: 500;
    animation: restore-success-fade-b-b08g9ggq0e 3s ease-in-out forwards;
}

@keyframes restore-success-fade-b-b08g9ggq0e {
    0%   { opacity: 1; }
    80%  { opacity: 1; }
    100% { opacity: 0; }
}

.history-active-notice[b-b08g9ggq0e] {
    padding: 7px 12px;
    font-size: 0.75rem;
    font-family: var(--font-ui);
    color: var(--ink3);
    background: var(--bg3);
    border-bottom: 1px solid var(--border);
    text-align: center;
}
/* /Pages/Home.razor.rz.scp.css */
h1[b-1if3t6psc9] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-accent);
    margin-bottom: 4px;
}

.subtitle[b-1if3t6psc9] {
    color: var(--text-dimmed);
    font-size: 0.9rem;
    margin-bottom: 32px;
}

.welcome-grid[b-1if3t6psc9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.welcome-card[b-1if3t6psc9] {
    background-color: var(--pane-bg);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 20px;
    transition: border-color 150ms ease-in-out;
}

.welcome-card:hover[b-1if3t6psc9] {
    border-color: var(--secondary-accent);
}

.welcome-card h2[b-1if3t6psc9] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
}

.welcome-card p[b-1if3t6psc9] {
    font-size: 0.85rem;
    color: var(--text-dimmed);
    margin: 0;
    line-height: 1.5;
}
/* /Pages/Landing.razor.rz.scp.css */
/* ==========================================================================
   Landing Page — Themed
   ========================================================================== */

.landing[b-vxlee6jah6] {
    min-height: 100vh;
    background-color: var(--bg);
    color: var(--ink);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

/* --------------------------------------------------------------------------
   Hero Section
   -------------------------------------------------------------------------- */

.landing-hero[b-vxlee6jah6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
    padding: 56px 10% 48px;
    min-height: auto;
}

.hero-content[b-vxlee6jah6] {
    flex: 1;
    max-width: 560px;
}

.hero-brand[b-vxlee6jah6] {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 6px;
    color: var(--accent);
    margin-bottom: 32px;
}

.hero-logo[b-vxlee6jah6] {
    width: 128px;
    height: 128px;
    border: 2px solid var(--accent-lt);
    border-radius: 16px;
    background: linear-gradient(145deg, var(--bg2), var(--bg));
    box-shadow:
        4px 4px 10px rgba(0, 0, 0, 0.3),
        -2px -2px 8px rgba(128, 128, 128, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.hero-headline[b-vxlee6jah6] {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--ink);
    margin: 0 0 24px;
}

.hero-subheadline[b-vxlee6jah6] {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--ink2);
    margin: 0 0 40px;
    max-width: 480px;
}

/* Google Sign-In area */
.hero-signin[b-vxlee6jah6] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.keep-logged-in[b-vxlee6jah6] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.875rem;
    color: var(--ink2);
    cursor: pointer;
    user-select: none;
}

.keep-logged-in input[type="checkbox"][b-vxlee6jah6] {
    width: 15px;
    height: 15px;
    accent-color: var(--accent);
    cursor: pointer;
}

.signin-loading[b-vxlee6jah6] {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink2);
    font-size: 0.9rem;
}

.spinner[b-vxlee6jah6] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--border);
    border-top-color: var(--accent-hover);
    border-radius: 50%;
    animation: spin-b-vxlee6jah6 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes spin-b-vxlee6jah6 {
    to { transform: rotate(360deg); }
}

.signin-error[b-vxlee6jah6] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--status-error);
}

/* --------------------------------------------------------------------------
   Decorative Graph Graphic
   -------------------------------------------------------------------------- */

.hero-graphic[b-vxlee6jah6] {
    flex: 0 0 auto;
    position: relative;
    width: 420px;
    height: 320px;
    display: none;
}

/* --- Crossfade scenes --- */

.graphic-scene[b-vxlee6jah6] {
    position: absolute;
    inset: 0;
    opacity: 0;
    animation: scene-cycle-b-vxlee6jah6 15s ease-in-out infinite;
}

.graphic-scene[b-vxlee6jah6]::before {
    content: '';
    position: absolute;
    inset: -20px;
    background: radial-gradient(ellipse at 40% 45%, rgba(240, 238, 245, 0.08) 0%, transparent 65%);
    border-radius: 50%;
    z-index: 0;
}

.scene-dev[b-vxlee6jah6]    { animation-delay: 0s; }
.scene-creative[b-vxlee6jah6] { animation-delay: 5s; }
.scene-prd[b-vxlee6jah6]    { animation-delay: 10s; }

@keyframes scene-cycle-b-vxlee6jah6 {
    0%      { opacity: 0; }
    8%      { opacity: 1; }
    28%     { opacity: 1; }
    40%     { opacity: 0; }
    100%    { opacity: 0; }
}

/* --- Shared node & edge styles --- */

.graph-node[b-vxlee6jah6] {
    position: absolute;
    padding: 7px 16px;
    border-radius: 10px;
    background-color: var(--bg2);
    border: 1.5px solid rgba(138, 43, 226, 0.6);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--ink);
    white-space: nowrap;
    box-shadow: 0 2px 12px rgba(75, 0, 130, 0.3);
    z-index: 1;
}

.graph-edges[b-vxlee6jah6] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

.graph-edges line[b-vxlee6jah6] {
    stroke-width: 1.5;
    stroke-dasharray: 4 3;
}

/* --- Scene 1: Programming / Architecture (indigo accent) --- */

.scene-dev .graph-edges line[b-vxlee6jah6] { stroke: rgba(138, 43, 226, 0.35); }

.node-a1[b-vxlee6jah6] { top: 35px; left: 50px; }
.node-a2[b-vxlee6jah6] { top: 120px; left: 155px; }
.node-a3[b-vxlee6jah6] { top: 205px; left: 50px; }
.node-a4[b-vxlee6jah6] { top: 50px; left: 260px; }
.node-a5[b-vxlee6jah6] { top: 155px; left: 225px; }

/* --- Scene 2: Creative Writing (warm amber accent) --- */

.scene-creative .graph-node[b-vxlee6jah6] {
    border-color: rgba(206, 145, 120, 0.6);
    box-shadow: 0 2px 12px rgba(206, 145, 120, 0.25);
}

.scene-creative .graph-edges line[b-vxlee6jah6] { stroke: rgba(206, 145, 120, 0.35); }

.node-b1[b-vxlee6jah6] { top: 35px; left: 40px; }
.node-b2[b-vxlee6jah6] { top: 110px; left: 130px; }
.node-b3[b-vxlee6jah6] { top: 55px; left: 240px; }
.node-b4[b-vxlee6jah6] { top: 205px; left: 60px; }
.node-b5[b-vxlee6jah6] { top: 170px; left: 220px; }

/* --- Scene 3: PRD / Product Owner (teal accent) --- */

.scene-prd .graph-node[b-vxlee6jah6] {
    border-color: rgba(80, 200, 180, 0.6);
    box-shadow: 0 2px 12px rgba(80, 200, 180, 0.25);
}

.scene-prd .graph-edges line[b-vxlee6jah6] { stroke: rgba(80, 200, 180, 0.35); }

.node-c1[b-vxlee6jah6] { top: 35px; left: 50px; }
.node-c2[b-vxlee6jah6] { top: 120px; left: 140px; }
.node-c3[b-vxlee6jah6] { top: 55px; left: 240px; }
.node-c4[b-vxlee6jah6] { top: 205px; left: 50px; }
.node-c5[b-vxlee6jah6] { top: 170px; left: 215px; }

/* --------------------------------------------------------------------------
   Feature Strip
   -------------------------------------------------------------------------- */

.landing-features[b-vxlee6jah6] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background-color: var(--border);
    border-top: 1px solid var(--border);
}

.feature-card[b-vxlee6jah6] {
    padding: 40px 36px;
    background-color: var(--bg2);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.feature-icon[b-vxlee6jah6] {
    color: var(--accent-hover);
    flex-shrink: 0;
}

.feature-title[b-vxlee6jah6] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.feature-body[b-vxlee6jah6] {
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--ink2);
    margin: 0;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 1100px) {
    .hero-graphic[b-vxlee6jah6] {
        display: block;
    }
}

@media (max-width: 900px) {
    .landing-hero[b-vxlee6jah6] {
        padding: 60px 6%;
        min-height: auto;
    }

    .hero-headline[b-vxlee6jah6] {
        font-size: 2.2rem;
    }

    .landing-features[b-vxlee6jah6] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .landing-hero[b-vxlee6jah6] {
        padding: 48px 5%;
    }

    .hero-headline[b-vxlee6jah6] {
        font-size: 1.8rem;
    }
}

/* --------------------------------------------------------------------------
   Single-Mode Writer flag — hides dev/prd scenes, shows creative statically
   -------------------------------------------------------------------------- */

.scene-writer-only .scene-dev[b-vxlee6jah6],
.scene-writer-only .scene-prd[b-vxlee6jah6] {
    display: none;
}

.scene-writer-only .scene-creative[b-vxlee6jah6] {
    animation: none;
    opacity: 1;
}

.scene-writer-only .scene-creative .graph-node[b-vxlee6jah6] {
    border-color: var(--accent-lt);
    box-shadow: 0 2px 12px var(--accent-lt);
}

.scene-writer-only .scene-creative .graph-edges line[b-vxlee6jah6] {
    stroke: var(--accent);
    opacity: 0.4;
}

/* --------------------------------------------------------------------------
   Single-Mode PM flag — hides dev/creative scenes, shows PRD statically
   -------------------------------------------------------------------------- */

.scene-pm-only .scene-dev[b-vxlee6jah6],
.scene-pm-only .scene-creative[b-vxlee6jah6] {
    display: none;
}

.scene-pm-only .scene-prd[b-vxlee6jah6] {
    animation: none;
    opacity: 1;
}

.scene-pm-only .scene-prd .graph-node[b-vxlee6jah6] {
    border-color: var(--accent-lt);
    box-shadow: 0 2px 12px var(--accent-lt);
}

.scene-pm-only .scene-prd .graph-edges line[b-vxlee6jah6] {
    stroke: var(--accent);
    opacity: 0.4;
}
/* /Pages/ProjectSelect.razor.rz.scp.css */
/* ============================================================
   ProjectSelect — Full-viewport project selection screen
   ============================================================ */

.project-select-page[b-prz6r6m9qp] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--bg);
    animation: ps-fade-in-b-prz6r6m9qp 200ms ease-in-out both;
}

@keyframes ps-fade-in-b-prz6r6m9qp {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Header ---- */

.ps-header[b-prz6r6m9qp] {
    height: 48px;
    background-color: var(--bg2);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    padding: 0 16px;
    z-index: 100;
}

.ps-header-content[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.ps-header-left[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
}

.ps-header-right[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
}

.ps-branding[b-prz6r6m9qp] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.5px;
}

/* ---- User menu (matches MainLayout pattern) ---- */

.user-menu[b-prz6r6m9qp] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background-color 150ms ease-in-out;
    user-select: none;
}

.user-menu:hover[b-prz6r6m9qp] {
    background-color: var(--border);
}

.user-avatar[b-prz6r6m9qp] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.user-avatar--monogram[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--accent);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}

.user-dropdown[b-prz6r6m9qp] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background-color: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 4px;
    min-width: 140px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    z-index: 200;
    overflow: hidden;
}

.user-dropdown-item[b-prz6r6m9qp] {
    display: block;
    width: 100%;
    padding: 10px 16px;
    background: none;
    border: none;
    color: var(--ink);
    font-size: 0.875rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 150ms ease-in-out;
}

.user-dropdown-item:hover[b-prz6r6m9qp] {
    background-color: var(--border);
}

/* ---- Main content ---- */

.ps-main[b-prz6r6m9qp] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1.5rem;
    overflow-y: auto;
}

/* ---- Loading state ---- */

.ps-loading[b-prz6r6m9qp] {
    display: flex;
    justify-content: center;
}

.ps-loading-text[b-prz6r6m9qp] {
    font-size: 1rem;
    color: var(--ink2);
}

/* ---- Empty state ---- */

.ps-empty[b-prz6r6m9qp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4rem 2rem;
    text-align: center;
}

.ps-empty-icon[b-prz6r6m9qp] {
    margin-bottom: 1.5rem;
    opacity: 0.6;
}

.ps-empty-title[b-prz6r6m9qp] {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 0.5rem;
}

.ps-empty-subtitle[b-prz6r6m9qp] {
    font-size: 0.9rem;
    color: var(--ink2);
    margin: 0 0 1.5rem;
}

/* ---- Project grid ---- */

.ps-grid[b-prz6r6m9qp] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

.ps-grid > .ps-card[b-prz6r6m9qp] {
    width: 260px;
    flex-shrink: 0;
}

/* ---- Project card ---- */

.ps-card[b-prz6r6m9qp] {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
}

.ps-card:hover[b-prz6r6m9qp] {
    border-color: var(--accent);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.ps-card:hover .ps-card-name[b-prz6r6m9qp] {
    color: var(--accent);
}

.ps-card-body[b-prz6r6m9qp] {
    padding: 1.25rem 1.25rem 1rem;
    flex: 1;
    cursor: pointer;
}

.ps-card-name[b-prz6r6m9qp] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 0.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ps-card-meta[b-prz6r6m9qp] {
    font-size: 0.78rem;
    color: var(--ink2);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.ps-card-meta-sep[b-prz6r6m9qp] {
    opacity: 0.5;
}

.ps-card-mode[b-prz6r6m9qp] {
    font-size: 0.75rem;
    color: var(--ink2);
    text-transform: capitalize;
}

/* ---- Card action row ---- */

.ps-card-actions[b-prz6r6m9qp] {
    display: flex;
    justify-content: flex-end;
    gap: 0.25rem;
    padding: 0.5rem 0.75rem;
    border-top: 1px solid var(--border);
}

.ps-card-edit-btn[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.ps-card-edit-btn:hover[b-prz6r6m9qp] {
    color: var(--accent);
    border-color: var(--accent-lt);
    background: var(--accent-lt);
}

.ps-card-delete-btn[b-prz6r6m9qp] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--ink2);
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.ps-card-delete-btn:hover[b-prz6r6m9qp] {
    color: var(--status-error);
    border-color: rgba(229, 57, 53, 0.4);
    background: rgba(229, 57, 53, 0.08);
}

/* ---- Add project card ---- */

.ps-card--add[b-prz6r6m9qp] {
    border-style: dashed;
    cursor: pointer;
}

.ps-card--add:hover[b-prz6r6m9qp] {
    border-color: var(--accent);
}

.ps-add-body[b-prz6r6m9qp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    color: var(--ink2);
    min-height: 100px;
}

.ps-card--add:hover .ps-add-body[b-prz6r6m9qp] {
    color: var(--accent);
}

.ps-add-label[b-prz6r6m9qp] {
    font-size: 0.9rem;
    font-weight: 600;
}
/* /Pages/Settings.razor.rz.scp.css */
/* ============================================================
   Settings — Full-page settings view
   ============================================================ */

.settings-page[b-vsabrnduyv] {
    display: flex;
    justify-content: center;
    padding: 2rem 1.5rem;
    min-height: 100vh;
    background: var(--bg);
    animation: settings-fade-in-b-vsabrnduyv 200ms ease-in-out both;
}

@keyframes settings-fade-in-b-vsabrnduyv {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- Container ---- */

.settings-container[b-vsabrnduyv] {
    max-width: 780px;
    width: 100%;
}

/* ---- Page header ---- */

.settings-header[b-vsabrnduyv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

.settings-title[b-vsabrnduyv] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.settings-close-btn[b-vsabrnduyv] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--ink2);
    cursor: pointer;
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out, background 150ms ease-in-out;
}

.settings-close-btn:hover[b-vsabrnduyv] {
    color: var(--ink);
    border-color: var(--border2);
    background: var(--bg3);
}

/* ---- Section ---- */

.settings-section[b-vsabrnduyv] {
    margin-bottom: 2.5rem;
}

.settings-section-title[b-vsabrnduyv] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 0.25rem;
}

.settings-section-description[b-vsabrnduyv] {
    font-size: 0.85rem;
    color: var(--ink2);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

/* ---- Mode cards row ---- */

.mode-cards[b-vsabrnduyv] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

/* ---- Individual card (compact variant) ---- */

.mode-card[b-vsabrnduyv] {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 1rem;
    cursor: pointer;
    transition: border-color 150ms ease-in-out,
                box-shadow 150ms ease-in-out,
                transform 150ms ease-in-out;
    flex: 1;
    min-width: 180px;
    max-width: 240px;
    text-align: center;
    outline: none;
    user-select: none;
}

.mode-card:hover[b-vsabrnduyv] {
    border-color: var(--border2);
}

.mode-card.selected[b-vsabrnduyv] {
    border-color: var(--accent-hover);
    box-shadow: 0 0 0 2px var(--accent-lt);
    transform: scale(1.02);
}

.mode-card:focus-visible[b-vsabrnduyv] {
    outline: 2px solid var(--accent-hover);
    outline-offset: 2px;
}

/* ---- Card internals ---- */

.mode-card-illustration[b-vsabrnduyv] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80px;
}

.mode-card-title[b-vsabrnduyv] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
    margin-top: 0.75rem;
}

.mode-card-description[b-vsabrnduyv] {
    font-size: 0.78rem;
    color: var(--ink2);
    margin-top: 0.35rem;
    line-height: 1.4;
}

/* ---- Actions bar ---- */

.settings-actions[b-vsabrnduyv] {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.settings-save-btn[b-vsabrnduyv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.75rem;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms ease-in-out, opacity 150ms ease-in-out;
    min-width: 140px;
    min-height: 38px;
}

.settings-save-btn:hover:not(:disabled)[b-vsabrnduyv] {
    background: var(--accent-hover);
}

.settings-save-btn:disabled[b-vsabrnduyv] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ---- Google Drive section ---- */

.drive-status[b-vsabrnduyv] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.drive-status-indicator[b-vsabrnduyv] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.drive-status-text[b-vsabrnduyv] {
    font-size: 0.875rem;
    color: var(--status-success);
    font-weight: 500;
}

.btn-disconnect[b-vsabrnduyv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0.5rem 1.1rem;
    background: transparent;
    color: var(--status-error);
    border: 1px solid var(--status-error);
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    min-height: 36px;
    transition: background 150ms ease-in-out, color 150ms ease-in-out, opacity 150ms ease-in-out;
}

.btn-disconnect:hover:not(:disabled)[b-vsabrnduyv] {
    background: rgba(229, 57, 53, 0.1);
}

.btn-disconnect:disabled[b-vsabrnduyv] {
    opacity: 0.5;
    cursor: not-allowed;
}

.disconnect-success-msg[b-vsabrnduyv] {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: var(--status-success);
}

/* ---- Button spinner ---- */

.btn-spinner[b-vsabrnduyv] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btn-spin-b-vsabrnduyv 0.7s linear infinite;
}

@keyframes btn-spin-b-vsabrnduyv {
    to {
        transform: rotate(360deg);
    }
}

/* ---- Appearance pills (segmented control) ---- */

.appearance-pills[b-vsabrnduyv] {
    display: flex;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    overflow: hidden;
    width: fit-content;
}

.appearance-pill[b-vsabrnduyv] {
    padding: 0.5rem 1.25rem;
    background: var(--bg2);
    border: none;
    border-right: 1px solid var(--border);
    color: var(--ink2);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 150ms ease-in-out, color 150ms ease-in-out;
    outline: none;
}

.appearance-pill:last-child[b-vsabrnduyv] {
    border-right: none;
}

.appearance-pill:hover:not(.selected)[b-vsabrnduyv] {
    background: var(--bg3);
    color: var(--ink);
}

.appearance-pill.selected[b-vsabrnduyv] {
    background: var(--accent);
    color: #ffffff;
}

.appearance-pill:focus-visible[b-vsabrnduyv] {
    outline: 2px solid var(--accent-hover);
    outline-offset: -2px;
    z-index: 1;
}
