/* Generated by tools/build-ui-css.php from assets/ui/*.css. Do not edit: change the sources and rebuild. */
/* --- tokens.css --- */
/* Design tokens: the only file where colors and sizes are written as raw values.
 * A density sets two inputs only, the text size and the spacing unit; spacings, type sizes, control
 * height and button sizes derive from them. Every .lbq-ui root (page, page body, modal, density block)
 * resolves the tokens again, so a nested root follows the density it inherits. */
.lbq-ui {
    --lbq-text: var(--lbq-density-text, 1rem);
    --lbq-unit: var(--lbq-density-unit, 8px);

    --lbq-color-surface: #ffffff;
    --lbq-color-canvas: #f4f6f8;
    --lbq-color-badge-surface: #e2e8f0;
    --lbq-color-border: #ccd3dc;
    --lbq-color-text: #1d2735;
    --lbq-color-text-muted: #50575e;
    --lbq-color-primary: #0b57d0;
    --lbq-color-primary-hover: #0842a0;
    --lbq-color-danger: #9b2c2c;
    --lbq-color-danger-surface: #fdeceb;
    --lbq-color-success: #386641;
    --lbq-color-success-surface: #edf4ea;
    --lbq-color-warning: #7a4b00;
    --lbq-color-warning-surface: #fff4d6;
    --lbq-color-info-surface: #eef4ff;
    --lbq-color-chrome: #101828;
    --lbq-color-chrome-hover: #ffffff14;
    --lbq-color-chrome-muted: #ffffffbf;
    --lbq-color-chrome-current: #ffffff29;
    --lbq-color-danger-on-chrome: #ff8a80;
    --lbq-color-danger-chrome-hover: #ff8a801f;
    --lbq-color-backdrop: #1d273580;
    --lbq-color-dropzone-border: #98a2b3;
    --lbq-color-dropzone-border-hover: #7c8a9c;
    --lbq-color-dropzone-border-active: #0a4b78;
    --lbq-color-dropzone-surface: #f8fafc;
    --lbq-color-dropzone-surface-active: #eef6ff;
    --lbq-color-button-ghost-hover: #0046ad;
    --lbq-color-button-ghost-hover-surface: rgba(11, 87, 208, 0.08);

    --lbq-space-1: calc(0.5 * var(--lbq-unit));
    --lbq-space-2: var(--lbq-unit);
    --lbq-space-3: calc(1.5 * var(--lbq-unit));
    --lbq-space-4: calc(2 * var(--lbq-unit));
    --lbq-space-5: calc(3 * var(--lbq-unit));
    --lbq-space-6: calc(4 * var(--lbq-unit));

    --lbq-font-family: system-ui, sans-serif;
    /* Small text never goes below 12px, whatever the density. */
    --lbq-font-size-sm: max(0.75rem, calc(0.8125 * var(--lbq-text)));
    --lbq-font-size-md: var(--lbq-text);
    --lbq-font-size-lg: calc(1.25 * var(--lbq-text));
    --lbq-font-size-header: calc(1.125 * var(--lbq-text));
    --lbq-font-weight-strong: 600;

    --lbq-border-width: 1px;
    --lbq-border-radius: 8px;
    --lbq-focus-width: 2px;
    --lbq-tab-indicator-width: 2px;
    --lbq-shadow-sm: 0 1px 6px #1d273526;
    --lbq-shadow-md: 0 8px 32px #1d273526;

    /* One text line plus 2.5 units: 44px standard, 36px compact. */
    --lbq-control-height: calc(1.5 * var(--lbq-text) + 2.5 * var(--lbq-unit));
    --lbq-control-padding-y: var(--lbq-unit);
    --lbq-control-padding-x: var(--lbq-space-3);
    --lbq-control-font-size: var(--lbq-font-size-md);
    --lbq-control-line-height: 1.5;

    --lbq-button-height: 36px;
    --lbq-button-header-height: 34px;
    --lbq-button-padding-x: calc(1.75 * var(--lbq-unit));
    --lbq-button-font-size: calc(0.875 * var(--lbq-text));
    --lbq-button-large-height: calc(var(--lbq-button-height) + 2.5 * var(--lbq-unit));
    --lbq-button-large-font-size: var(--lbq-font-size-header);
    --lbq-button-large-padding-x: var(--lbq-space-1);
    --lbq-button-font-weight: 500;
    --lbq-button-line-height: 1.5;
    --lbq-button-icon-size: 16px;
    --lbq-badge-min-height: 28px;

    --lbq-app-bar-height: 44px;
    --lbq-header-padding-x: 20px;
    --lbq-header-brand-gap: 16px;
    --lbq-brand-logo-height: 32px;
    --lbq-burger-size: 40px;
    --lbq-app-bar-site-icon-size: 24px;
    --lbq-app-bar-site-name-width: 180px;
    --lbq-app-bar-menu-min-width: 220px;
    --lbq-app-bar-z-index: 100;
    --lbq-menu-min-width: 12rem;
    /* Above the page content and the app bar, below modals. */
    --lbq-menu-z-index: 200;
    /* The card following the pointer during a drag: above menus, below modals. */
    --lbq-drag-z-index: 300;
    --lbq-drop-target-min-width: 8rem;
    --lbq-drag-ghost-max-width: 18rem;
    --lbq-card-media-width: 14rem;
    --lbq-card-media-height: 9rem;

    --lbq-page-width-medium: 1200px;
    --lbq-page-width-small: 800px;
    --lbq-page-padding-inline: 16px;
    --lbq-field-label-width: 12rem;
    --lbq-summary-label-width: 30%;
    --lbq-details-label-width: 8rem;
    --lbq-toolbar-breadcrumb-item-max-width: 14rem;
    --lbq-grid-min-compact: 12rem;
    --lbq-grid-min-standard: 20rem;
    --lbq-grid-min-wide: 28rem;
    --lbq-modal-width: 48rem;
    --lbq-modal-wide-width: 80rem;
    --lbq-modal-height: 48rem;
    --lbq-modal-z-index: 100100;
    /* Toasts and the page busy veil stay above modals and the edit page shell. */
    --lbq-overlay-z-index: 100200;
    --lbq-color-busy-veil: #ffffffb3;
    --lbq-toast-width: min(520px, calc(100vw - 2 * var(--lbq-space-4)));
    --lbq-toast-close-size: 20px;
    --lbq-dropzone-border-width: 2px;
    --lbq-table-drag-width: 28px;
    --lbq-table-drag-height: 36px;
    --lbq-table-drag-icon-size: 20px;
    --lbq-table-drop-marker: 3px;
    /* Aligns the grip icon with the first text line of its cell. */
    --lbq-table-drag-offset: max(0px, calc((1.5em - var(--lbq-table-drag-icon-size)) / 2));
    --lbq-hidden-size: 1px;
    /* Two-zone canvas: width of the navigation zone of the TREE layout. */
    --lbq-split-start-min: 240px;
    --lbq-split-start-max: 300px;
    /* Persistent end panel of the tabbed split layout. */
    --lbq-tabbed-split-aside-width: 20rem;
    --lbq-tabbed-split-field-label-width: 6rem;
    /* The tree stays compact whatever the density. */
    --lbq-tree-font-size: 13px;
    --lbq-tree-meta-font-size: 11px;
    --lbq-tree-line-height: 1.35;
    --lbq-tree-item-padding: 3px 8px;
    --lbq-tree-indent: 8px;
    --lbq-tree-group-gap: 16px;
}
.lbq-ui.lbq-ui--standard { --lbq-density-text: 1rem; --lbq-density-unit: 8px; }
.lbq-ui.lbq-ui--compact { --lbq-density-text: 0.875rem; --lbq-density-unit: 6px; }

/* --- base.css --- */
/* Root of the typed UI. This stylesheet stays unlayered because WordPress and theme styles are
 * unlayered. Host rules reach 0,1,1 at rest and 0,2,1 on control states: component rules
 * (.lbq-ui .lbq-ui-x, 0,2,0) and their states (0,3,0) win without any doubled selector. */
.lbq-ui {
    min-width: 0;
    min-height: 0;
    width: 100%;
    font-family: var(--lbq-font-family);
    font-size: var(--lbq-font-size-md);
    line-height: 1.5;
    color: var(--lbq-color-text);
    text-align: left;
}
.lbq-ui *, .lbq-ui *::before, .lbq-ui *::after { box-sizing: border-box; }
/* The hidden attribute always wins over a component display: its only !important. */
.lbq-ui[hidden], .lbq-ui [hidden] { display: none !important; }
.lbq-ui :focus-visible { outline: var(--lbq-focus-width) solid var(--lbq-color-primary); outline-offset: var(--lbq-focus-width); }
/* Paragraphs (Core components and trusted module content) ignore host paragraph styles such as
 * wp-admin's 13px text and 1em margins; components set their own sizes on top. */
.lbq-ui p { margin: 0; font-size: inherit; line-height: inherit; }
/* Authored content of LBQ_UI_Rich_Text_Content: blocks spaced by one unit (half in COMPACT), lists indented,
 * table cells framed. */
.lbq-ui .lbq-ui-rich-content p, .lbq-ui .lbq-ui-rich-content ul, .lbq-ui .lbq-ui-rich-content ol, .lbq-ui .lbq-ui-rich-content table, .lbq-ui .lbq-ui-rich-content h2, .lbq-ui .lbq-ui-rich-content h3, .lbq-ui .lbq-ui-rich-content h4 { margin: 0 0 var(--lbq-space-2); }
.lbq-ui .lbq-ui-rich-content--compact p, .lbq-ui .lbq-ui-rich-content--compact ul, .lbq-ui .lbq-ui-rich-content--compact ol, .lbq-ui .lbq-ui-rich-content--compact table, .lbq-ui .lbq-ui-rich-content--compact h2, .lbq-ui .lbq-ui-rich-content--compact h3, .lbq-ui .lbq-ui-rich-content--compact h4 { margin-bottom: var(--lbq-space-1); }
.lbq-ui .lbq-ui-rich-content > :last-child { margin-bottom: 0; }
.lbq-ui .lbq-ui-rich-content h2, .lbq-ui .lbq-ui-rich-content h3, .lbq-ui .lbq-ui-rich-content h4 { font-size: inherit; font-weight: var(--lbq-font-weight-strong); line-height: inherit; color: inherit; }
.lbq-ui .lbq-ui-rich-content ul, .lbq-ui .lbq-ui-rich-content ol { padding-left: var(--lbq-space-5); }
.lbq-ui .lbq-ui-rich-content table { border-collapse: collapse; }
.lbq-ui .lbq-ui-rich-content td, .lbq-ui .lbq-ui-rich-content th { padding: var(--lbq-space-1) var(--lbq-space-2); border: var(--lbq-border-width) solid var(--lbq-color-border); vertical-align: top; }

/* --- host.css --- */
/* Integration with host documents: the legacy app shell content slot and the page scroll lock
 * while a modal is open. These are the only rules that select outside a .lbq-ui root. */
body.lbq-app { margin: 0; overflow: hidden; }
.lbq-app-shell { position: fixed; inset: 0; display: flex; flex-direction: column; min-height: 0; }
.lbq-app-content { flex: 1 1 auto; min-height: 0; box-sizing: border-box; overflow: hidden; }
.lbq-app-content > .lbq-ui { height: 100%; overflow: hidden; display: flex; }
.lbq-app-content > .lbq-ui > .lbq-ui-page { flex: 1; height: 100%; }
.lbq-app-content .lbq-ui-document-preview { min-height: 0; height: 100%; }
body:has(.lbq-ui-modal:not([hidden])) { overflow: hidden; }
/* Busy host (lbq-busy.js): a static container is positioned so the busy veil covers it. */
.is-busy-host { position: relative; }

/* --- layout.css --- */
/* Layout primitives: Stack (vertical), Cluster (inline, wrapping), Grid (cards), Fill (remaining height). */
.lbq-ui .lbq-ui-stack, .lbq-ui .lbq-ui-form { display: flex; flex-direction: column; gap: var(--lbq-space-4); min-width: 0; margin: 0; padding: 0; }
.lbq-ui .lbq-ui-cluster { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbq-space-2); min-width: 0; }
.lbq-ui .lbq-ui-cluster > .lbq-ui-control:not(.lbq-ui-control--color) { width: auto; flex: 1 1 0; }
.lbq-ui .lbq-ui-fill { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; }
.lbq-ui .lbq-ui-page:has(.lbq-ui-fill) { height: 100%; }
.lbq-ui .lbq-ui-page__body:has(.lbq-ui-fill), .lbq-ui .lbq-ui-page__body:has(.lbq-ui-fill) > .lbq-ui-page__inner { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.lbq-ui .lbq-ui-page__body :is(.lbq-ui-stack, .lbq-ui-form):has(.lbq-ui-fill) { flex: 1; min-height: 0; }
/* A field in a Fill takes the remaining height but never less than its content: fields after it are never overlapped. */
.lbq-ui .lbq-ui-fill:has(> .lbq-ui-field) { min-height: auto; }
.lbq-ui .lbq-ui-fill > .lbq-ui-field { grid-template-rows: minmax(auto, 1fr); flex: 1 1 auto; min-height: 0; }
.lbq-ui .lbq-ui-fill > .lbq-ui-field--stacked { grid-template-rows: auto minmax(0, 1fr); }
.lbq-ui .lbq-ui-fill > .lbq-ui-field > .lbq-ui-field__control { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.lbq-ui .lbq-ui-fill > .lbq-ui-field > .lbq-ui-field__control > .lbq-ui-control--textarea { flex: 1 1 auto; height: 100%; resize: none; }

/* Grid: the width modifier sets the minimum item width, the column modifier a maximum column count. */
.lbq-ui .lbq-ui-grid { --lbq-grid-item-min-width: var(--lbq-grid-min-standard); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--lbq-grid-item-min-width)), 1fr)); gap: var(--lbq-space-4); align-items: start; min-width: 0; }
.lbq-ui .lbq-ui-grid--compact { --lbq-grid-item-min-width: var(--lbq-grid-min-compact); }
.lbq-ui .lbq-ui-grid--wide { --lbq-grid-item-min-width: var(--lbq-grid-min-wide); }
.lbq-ui .lbq-ui-grid--cols-1 { --lbq-grid-columns: 1; }
.lbq-ui .lbq-ui-grid--cols-2 { --lbq-grid-columns: 2; }
.lbq-ui .lbq-ui-grid--cols-3 { --lbq-grid-columns: 3; }
.lbq-ui .lbq-ui-grid--cols-4 { --lbq-grid-columns: 4; }
.lbq-ui .lbq-ui-grid--cols-5 { --lbq-grid-columns: 5; }
.lbq-ui .lbq-ui-grid--cols-1, .lbq-ui .lbq-ui-grid--cols-2, .lbq-ui .lbq-ui-grid--cols-3, .lbq-ui .lbq-ui-grid--cols-4, .lbq-ui .lbq-ui-grid--cols-5 {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--lbq-grid-item-min-width), calc((100% - (var(--lbq-grid-columns) - 1) * var(--lbq-space-4)) / var(--lbq-grid-columns)))), 1fr));
}

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-fill > .lbq-ui-field { grid-template-rows: auto minmax(0, 1fr); }
    .lbq-ui .lbq-ui-grid, .lbq-ui .lbq-ui-grid--cols-1, .lbq-ui .lbq-ui-grid--cols-2, .lbq-ui .lbq-ui-grid--cols-3, .lbq-ui .lbq-ui-grid--cols-4, .lbq-ui .lbq-ui-grid--cols-5 { grid-template-columns: minmax(0, 1fr); }
}

/* --- text.css --- */
/* Typographic roles. Authored line breaks are preserved (pre-wrap) on every text-bearing role. */
.lbq-ui .lbq-ui-text { display: block; min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
/* Secondary authored note: small, muted, no frame. */
.lbq-ui .lbq-ui-note { min-width: 0; margin: 0; padding: 0; font-size: var(--lbq-font-size-sm); color: var(--lbq-color-text-muted); white-space: pre-wrap; overflow-wrap: anywhere; }
/* Titles of pages, sections, cards and summaries; the page modifier is the page title size. */
.lbq-ui .lbq-ui-heading { margin: 0; padding: 0; color: inherit; font-family: inherit; font-size: var(--lbq-font-size-md); font-weight: var(--lbq-font-weight-strong); line-height: 1.3; text-transform: none; white-space: pre-wrap; }
.lbq-ui .lbq-ui-heading--page { font-size: var(--lbq-font-size-lg); }
/* Form and summary-row labels: inherited text in the strong weight, whatever their tag. */
.lbq-ui .lbq-ui-label { font: inherit; font-weight: var(--lbq-font-weight-strong); color: inherit; letter-spacing: inherit; text-transform: none; white-space: pre-wrap; }
.lbq-ui .lbq-ui-visually-hidden { position: absolute; width: var(--lbq-hidden-size); height: var(--lbq-hidden-size); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* --- icon.css --- */
/* Dashicon with an accessible name (badges, summary-row labels). */
.lbq-ui .lbq-ui-icon { display: inline-flex; align-items: center; vertical-align: middle; }
.lbq-ui .lbq-ui-icon__glyph { width: var(--lbq-button-icon-size); height: var(--lbq-button-icon-size); font-size: var(--lbq-button-icon-size); }

/* --- badge.css --- */
/* Badge: common minimum height, centered content; tone modifiers share their colors with Message. */
.lbq-ui .lbq-ui-badge { display: inline-flex; align-items: center; justify-content: center; gap: var(--lbq-space-1); min-height: var(--lbq-badge-min-height); padding: var(--lbq-space-1) var(--lbq-space-2); border-radius: var(--lbq-border-radius); background: var(--lbq-ui-badge-background, var(--lbq-color-badge-surface)); color: var(--lbq-ui-badge-color, var(--lbq-color-text)); font-size: var(--lbq-font-size-sm); line-height: 1.5; overflow-wrap: anywhere; white-space: pre-wrap; }
.lbq-ui .lbq-ui-badge--danger { background: var(--lbq-color-danger-surface); color: var(--lbq-color-danger); }
.lbq-ui .lbq-ui-badge--success { background: var(--lbq-color-success-surface); color: var(--lbq-color-success); }
.lbq-ui .lbq-ui-badge--warning { background: var(--lbq-color-warning-surface); color: var(--lbq-color-warning); }
.lbq-ui .lbq-ui-badge--info { background: var(--lbq-color-info-surface); color: var(--lbq-color-primary); }

/* --- message.css --- */
/* Short message; INFO by default, other tones replace its colors. */
.lbq-ui .lbq-ui-message { margin: 0; padding: var(--lbq-space-3) var(--lbq-space-4); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-info-surface); white-space: pre-wrap; }
.lbq-ui .lbq-ui-message--danger { background: var(--lbq-color-danger-surface); color: var(--lbq-color-danger); }
.lbq-ui .lbq-ui-message--success { background: var(--lbq-color-success-surface); color: var(--lbq-color-success); }
.lbq-ui .lbq-ui-message--warning { background: var(--lbq-color-warning-surface); color: var(--lbq-color-warning); }
.lbq-ui .lbq-ui-message--info { background: var(--lbq-color-info-surface); color: var(--lbq-color-primary); }

/* --- button.css --- */
/* Button: PRIMARY by default, CHOICE, GHOST and DANGER modifiers, icon-only modifier.
 * Order matters for equal specificity: hover, pressed, then the variants and their hover. */
.lbq-ui .lbq-ui-button {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--lbq-space-2);
    min-height: var(--lbq-button-height); max-width: 100%; margin: 0; padding: 0 var(--lbq-button-padding-x);
    border: var(--lbq-border-width) solid var(--lbq-color-primary); border-radius: var(--lbq-border-radius);
    background: var(--lbq-color-primary); color: var(--lbq-color-surface);
    font: inherit; font-size: var(--lbq-button-font-size); font-weight: var(--lbq-button-font-weight); line-height: var(--lbq-button-line-height);
    text-transform: none; text-decoration: none; text-align: center; white-space: pre-wrap; overflow-wrap: anywhere;
    cursor: pointer; box-shadow: none;
}
.lbq-ui .lbq-ui-button:hover { background: var(--lbq-color-primary-hover); color: var(--lbq-color-surface); border-color: var(--lbq-color-primary-hover); text-decoration: none; }
.lbq-ui .lbq-ui-button--large { min-height: var(--lbq-button-large-height); padding-right: var(--lbq-button-large-padding-x); padding-left: var(--lbq-button-large-padding-x); font-size: var(--lbq-button-large-font-size); }
.lbq-ui .lbq-ui-button--choice { color: var(--lbq-color-primary); background: var(--lbq-color-surface); border-color: var(--lbq-color-border); }
.lbq-ui .lbq-ui-button--choice:hover { color: var(--lbq-color-button-ghost-hover); background: var(--lbq-color-button-ghost-hover-surface); border-color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-button[aria-pressed="true"], .lbq-ui .lbq-ui-button[aria-current="true"] { background: var(--lbq-color-primary); color: var(--lbq-color-surface); border-color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-button--ghost { color: var(--lbq-color-primary); background: transparent; border-color: transparent; }
.lbq-ui .lbq-ui-button--ghost[aria-pressed="true"], .lbq-ui .lbq-ui-button--ghost[aria-current="true"] { border-color: transparent; }
.lbq-ui .lbq-ui-button--ghost:hover { color: var(--lbq-color-button-ghost-hover); background: var(--lbq-color-button-ghost-hover-surface); border-color: transparent; }
.lbq-ui .lbq-ui-button--danger { color: var(--lbq-color-danger); background: transparent; border-color: transparent; }
.lbq-ui .lbq-ui-button--danger:hover { color: var(--lbq-color-danger); background: var(--lbq-color-danger-surface); border-color: transparent; }
.lbq-ui .lbq-ui-button:disabled { opacity: 0.5; cursor: default; }
.lbq-ui .lbq-ui-button--icon { width: var(--lbq-button-height); height: var(--lbq-button-height); min-width: var(--lbq-button-height); padding: 0; line-height: 1; flex-shrink: 0; }
.lbq-ui .lbq-ui-button__icon { display: block; width: var(--lbq-button-icon-size); height: var(--lbq-button-icon-size); font-size: var(--lbq-button-icon-size); line-height: 1; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-cluster > .lbq-ui-button--mobile-full-row { flex: 0 0 100%; width: 100%; }
}

/* --- control.css --- */
/* Text inputs, selects and textareas. Host focus/hover/disabled rules reach 0,2,1, so the control
 * restates its own colors in those states. */
.lbq-ui .lbq-ui-control {
    display: block; width: 100%; min-width: 0; max-width: 100%;
    min-height: var(--lbq-control-height); margin: 0;
    padding: var(--lbq-control-padding-y) var(--lbq-control-padding-x);
    font-family: inherit; font-size: var(--lbq-control-font-size); line-height: var(--lbq-control-line-height);
    border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius);
    background: var(--lbq-color-surface); color: var(--lbq-color-text); box-shadow: none;
}
.lbq-ui .lbq-ui-control:hover, .lbq-ui .lbq-ui-control:focus, .lbq-ui .lbq-ui-control:active, .lbq-ui .lbq-ui-control:disabled { border-color: var(--lbq-color-border); background-color: var(--lbq-color-surface); color: var(--lbq-color-text); box-shadow: none; }
.lbq-ui .lbq-ui-control[readonly], .lbq-ui .lbq-ui-control[readonly]:hover, .lbq-ui .lbq-ui-control[readonly]:focus, .lbq-ui .lbq-ui-control[readonly]:active { background-color: var(--lbq-color-canvas); }
.lbq-ui .lbq-ui-control:focus { outline: none; }
/* Themes and wp-admin remove the native select look and draw their arrow as a background that the control
 * background replaces: the select keeps its native arrow. */
.lbq-ui .lbq-ui-control--select { appearance: auto; }
.lbq-ui .lbq-ui-control--color { width: var(--lbq-control-height); min-width: var(--lbq-control-height); max-width: var(--lbq-control-height); padding: var(--lbq-space-1); }
.lbq-ui .lbq-ui-control:focus-visible { outline: var(--lbq-focus-width) solid var(--lbq-color-primary); outline-offset: var(--lbq-focus-width); }
.lbq-ui .lbq-ui-control--textarea { resize: vertical; }
.lbq-ui .lbq-ui-fill > .lbq-ui-control--textarea { flex: 1; resize: none; }
/* wp-admin sets a line height on the inner part of date/time inputs (::-webkit-datetime-edit). */
.lbq-ui .lbq-ui-control::-webkit-datetime-edit { line-height: inherit; }

/* --- checkbox.css --- */
/* Native checkbox (Check component and table select cells), drawn by the browser. */
.lbq-ui .lbq-ui-checkbox { appearance: auto; width: auto; height: auto; margin: 0; font: inherit; box-shadow: none; accent-color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-check { display: inline-flex; align-items: center; gap: var(--lbq-space-2); min-height: var(--lbq-control-height); }
.lbq-ui .lbq-ui-check__label { white-space: pre-wrap; }
.lbq-ui .lbq-ui-check-group { width: 100%; min-width: 0; min-height: var(--lbq-control-height); display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbq-space-2); padding: 0 var(--lbq-control-padding-x); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); color: var(--lbq-color-text); }
.lbq-ui .lbq-ui-check-group .lbq-ui-check { min-height: calc(var(--lbq-control-height) - 2 * var(--lbq-border-width)); }

/* --- field.css --- */
/* Labelled control: label column then control, stacked on mobile; the STACKED layout keeps the label above at every width. */
.lbq-ui .lbq-ui-field { display: grid; grid-template-columns: minmax(0, var(--lbq-field-label-width)) minmax(0, 1fr); gap: var(--lbq-space-3); align-items: start; }
.lbq-ui .lbq-ui-field--stacked { grid-template-columns: minmax(0, 1fr); }
.lbq-ui .lbq-ui-field__label { padding-top: var(--lbq-space-2); }
.lbq-ui .lbq-ui-field__label--stacked { padding-top: 0; }
.lbq-ui .lbq-ui-field__label-area > .lbq-ui-field__label { display: block; }
.lbq-ui .lbq-ui-field__label-action { margin-top: var(--lbq-space-1); }
.lbq-ui .lbq-ui-field__control { min-width: 0; }
.lbq-ui .lbq-ui-field__help { margin: var(--lbq-space-1) 0 0; padding: 0; color: var(--lbq-color-text-muted); font-size: var(--lbq-font-size-sm); white-space: pre-wrap; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-field { grid-template-columns: minmax(0, 1fr); }
    .lbq-ui .lbq-ui-field__label { padding-top: 0; }
}

/* --- rich-text.css --- */
/* Typed surface around the shared Editor.js integration. The vendor adapter keeps its internal layout. */
.lbq-ui .lbq-ui-rich-text { position: relative; width: 100%; height: 100%; min-width: 0; min-height: 0; color: var(--lbq-color-text); }
.lbq-ui .lbq-ui-rich-text__editor { background: var(--lbq-color-surface); border-color: var(--lbq-color-border); border-radius: var(--lbq-border-radius); }
.lbq-ui .lbq-ui-rich-text__clear { position: absolute; z-index: 1; top: var(--lbq-space-3); right: var(--lbq-space-3); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 120ms ease; }
.lbq-ui .lbq-ui-rich-text:hover .lbq-ui-rich-text__clear, .lbq-ui .lbq-ui-rich-text:focus-within .lbq-ui-rich-text__clear { opacity: 1; visibility: visible; pointer-events: auto; }
.lbq-ui .lbq-ui-rich-text--readonly .lbq-ui-rich-text__clear { display: none; }
.lbq-ui .lbq-ui-rich-text__error { margin: 0; }
/* Read-only saved rich text; its authored tags (paragraphs, lists, tables) are laid out in base.css. */
.lbq-ui .lbq-ui-rich-content { min-width: 0; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-rich-content--compact { font-size: var(--lbq-font-size-sm); color: var(--lbq-color-text-muted); }

/* --- multiple-selection.css --- */
/* Multiple-selection field and checklist owned by the shared Core picker. */
.lbq-ui .lbq-ui-multiple-selection { width: 100%; min-width: 0; }
.lbq-ui .lbq-ui-multiple-selection__control { display: flex; align-items: center; gap: var(--lbq-space-2); width: 100%; min-width: 0; min-height: var(--lbq-control-height); padding: var(--lbq-space-1) var(--lbq-control-padding-x); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); color: var(--lbq-color-text); }
.lbq-ui .lbq-ui-multiple-selection__display { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-multiple-selection__display--list { display: flex; flex-direction: column; gap: var(--lbq-space-1); margin: 0; padding: 0; list-style: none; }
.lbq-ui .lbq-ui-multiple-selection__empty { color: var(--lbq-color-text-muted); }
.lbq-ui .lbq-ui-multiple-selection__picker { display: flex; flex-direction: column; min-height: 0; }
.lbq-ui .lbq-ui-multiple-selection__bulk { flex: 0 0 auto; }
.lbq-ui .lbq-ui-multiple-selection__scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.lbq-ui .lbq-ui-multiple-selection__list { display: flex; flex-direction: column; gap: var(--lbq-space-1); }
.lbq-ui .lbq-ui-multiple-selection__item { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0 var(--lbq-space-2); padding: var(--lbq-space-2); border-radius: var(--lbq-border-radius); cursor: pointer; }
.lbq-ui .lbq-ui-multiple-selection__item:hover { background: var(--lbq-color-canvas); }
.lbq-ui .lbq-ui-multiple-selection__item-input { grid-column: 1; grid-row: 1; align-self: center; }
.lbq-ui .lbq-ui-multiple-selection__item-content { display: contents; }
.lbq-ui .lbq-ui-multiple-selection__item-title { grid-column: 2; grid-row: 1; align-self: center; }
.lbq-ui .lbq-ui-multiple-selection__item-subtitle { grid-column: 2; grid-row: 2; color: var(--lbq-color-text-muted); font-size: var(--lbq-font-size-small); }
.lbq-ui .lbq-ui-multiple-selection__item--unknown .lbq-ui-multiple-selection__item-title { color: var(--lbq-color-danger); font-style: italic; }

/* --- details.css --- */
/* Read-only label/value list: intrinsic label column (max 40%), muted labels, no dividers. */
.lbq-ui .lbq-ui-details { display: grid; grid-template-columns: fit-content(40%) minmax(0, 1fr); align-items: start; gap: var(--lbq-space-1) var(--lbq-space-2); margin: 0; padding: 0; text-align: left; line-height: 1.4; }
.lbq-ui .lbq-ui-details__label, .lbq-ui .lbq-ui-details__value { min-width: 0; margin: 0; padding: 0; border: 0; font: inherit; text-align: left; white-space: pre-wrap; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-details__label { color: var(--lbq-color-text-muted); }
.lbq-ui .lbq-ui-details--end .lbq-ui-details__value { text-align: right; }
.lbq-ui .lbq-ui-details--end .lbq-ui-details__value > .lbq-ui-cluster { justify-content: flex-end; }
.lbq-ui .lbq-ui-details--center .lbq-ui-details__value { text-align: center; }

/* --- summary-row.css --- */
/* Aligned label / content / optional action row of form summaries. */
.lbq-ui .lbq-ui-summary-row { display: grid; grid-template-columns: minmax(0, var(--lbq-summary-label-width)) minmax(0, 1fr) auto; align-items: center; gap: var(--lbq-space-3); padding: var(--lbq-space-2) 0; border-bottom: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-summary-row--borderless { padding-block: var(--lbq-space-1); border-bottom: 0; }
.lbq-ui .lbq-ui-summary-block__body > .lbq-ui-stack { gap: 0; }
.lbq-ui .lbq-ui-summary-block__body > .lbq-ui-stack > .lbq-ui-summary-row,
.lbq-ui .lbq-ui-summary-block__body > .lbq-ui-stack > :not(.lbq-ui-summary-row) > .lbq-ui-summary-row { border-bottom: 0; }
.lbq-ui .lbq-ui-summary-block__body > .lbq-ui-stack > .lbq-ui-summary-row:not(.lbq-ui-summary-row--borderless):has(~ :not([hidden])),
.lbq-ui .lbq-ui-summary-block__body > .lbq-ui-stack > :not([hidden]):has(~ :not([hidden])) > .lbq-ui-summary-row:not(.lbq-ui-summary-row--borderless) { border-bottom: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-summary-row__content { min-width: 0; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-summary-row__content--full { grid-column: 2 / -1; }

@media (hover: hover) and (pointer: fine) {
    .lbq-ui .lbq-ui-summary-row > .lbq-ui-button { opacity: 0; }
    .lbq-ui .lbq-ui-summary-row:is(:hover, :focus-within) > .lbq-ui-button { opacity: 1; }
}
@media (max-width: 782px) {
    .lbq-ui .lbq-ui-summary-row { grid-template-columns: minmax(0, 1fr) auto; }
    .lbq-ui .lbq-ui-summary-row__label, .lbq-ui .lbq-ui-summary-row__content--full { grid-column: 1 / -1; }
}

/* --- section.css --- */
/* Neutral titled group: no background, border, padding or shadow. */
.lbq-ui .lbq-ui-section { min-width: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--lbq-space-3); overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-section__header { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lbq-space-3); }
/* Actions of the section, on the right of its title. */
.lbq-ui .lbq-ui-section__actions { margin-left: auto; }

/* --- card.css --- */
/* Card: surface with a title header; link and interactive modifiers, tone modifiers. */
.lbq-ui .lbq-ui-card { min-width: 0; padding: var(--lbq-space-4); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); display: flex; flex-direction: column; gap: var(--lbq-space-3); overflow-wrap: anywhere; }
/* Header: title (one line, ellipsis) and meta on the first row, subtitle on the full second row. */
.lbq-ui .lbq-ui-card__header { display: grid; grid-template-columns: minmax(0, 1fr) fit-content(50%); align-items: start; gap: var(--lbq-space-1) var(--lbq-space-2); }
.lbq-ui .lbq-ui-card__title { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lbq-ui .lbq-ui-card__meta { min-width: 0; max-width: 100%; }
.lbq-ui .lbq-ui-card__subtitle { grid-column: 1 / -1; min-width: 0; margin: 0; color: var(--lbq-color-text-muted); font-size: var(--lbq-font-size-sm); line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.lbq-ui .lbq-ui-card__body { min-width: 0; }
.lbq-ui .lbq-ui-card__footer { min-width: 0; margin-top: auto; padding-top: var(--lbq-space-3); border-top: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-card__main { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--lbq-space-3); color: inherit; text-decoration: none; }
.lbq-ui .lbq-ui-card__media { display: flex; align-items: center; justify-content: center; align-self: center; width: min(100%, var(--lbq-card-media-width)); height: var(--lbq-card-media-height); min-width: 0; overflow: hidden; border-radius: var(--lbq-border-radius); background: transparent; }
.lbq-ui .lbq-ui-card__media-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.lbq-ui .lbq-ui-card--media-leading { display: grid; grid-template-columns: var(--lbq-card-media-width) minmax(0, 1fr); grid-template-rows: auto 1fr; align-items: start; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__header { grid-column: 1 / -1; grid-row: 1; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__media { grid-column: 1; grid-row: 2; align-self: start; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__body { grid-column: 2; grid-row: 2; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__footer { grid-column: 1 / -1; }
.lbq-ui .lbq-ui-card--media-leading.lbq-ui-card--link { display: flex; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main { display: grid; grid-template-columns: var(--lbq-card-media-width) minmax(0, 1fr); grid-template-rows: auto 1fr; align-items: start; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__header { grid-column: 1 / -1; grid-row: 1; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__media { grid-column: 1; grid-row: 2; align-self: start; }
.lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__body { grid-column: 2; grid-row: 2; }
@media (max-width: 782px) {
    .lbq-ui .lbq-ui-card--media-leading, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main { display: flex; flex-direction: column; }
    .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__media, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__header, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__body, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__footer, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__media, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__header, .lbq-ui .lbq-ui-card--media-leading > .lbq-ui-card__main > .lbq-ui-card__body { grid-column: auto; grid-row: auto; }
}
.lbq-ui .lbq-ui-card--interactive { cursor: pointer; }
.lbq-ui .lbq-ui-card--link:hover, .lbq-ui .lbq-ui-card--interactive:hover { border-color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-card--danger { background: var(--lbq-color-danger-surface); color: var(--lbq-color-danger); }
.lbq-ui .lbq-ui-card--success { background: var(--lbq-color-success-surface); color: var(--lbq-color-success); }
.lbq-ui .lbq-ui-card--warning { background: var(--lbq-color-warning-surface); color: var(--lbq-color-warning); }
.lbq-ui .lbq-ui-card--info { background: var(--lbq-color-info-surface); color: var(--lbq-color-primary); }
/* Cards of one grid row share the height of the tallest. */
.lbq-ui .lbq-ui-grid > .lbq-ui-card { align-self: stretch; }
/* Draggable card (LBQ_UI_Drag); the Core script sets is-dragging on the card, is-drag-ghost on the copy following the
 * pointer (--lbq-drag-x/-y/-width), is-drop-pending while the module saves, is-drop-accepted before removing it. */
.lbq-ui .lbq-ui-card--draggable { cursor: grab; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.lbq-ui .lbq-ui-card--draggable.is-dragging { opacity: 0.35; }
.lbq-ui .lbq-ui-card.is-drag-ghost { position: fixed; z-index: var(--lbq-drag-z-index); top: 0; left: 0; width: min(var(--lbq-drag-width), var(--lbq-drag-ghost-max-width)); margin: 0; padding: var(--lbq-space-2) var(--lbq-space-3); gap: 0; transform: translate(var(--lbq-drag-x), var(--lbq-drag-y)) translate(var(--lbq-space-3), calc(-100% - var(--lbq-space-2))) rotate(2deg); box-shadow: var(--lbq-shadow-md); pointer-events: none; cursor: grabbing; }
/* The copy is compact (title and badges only) and sits above-right of the pointer, so the target under it stays visible. */
.lbq-ui .lbq-ui-card.is-drag-ghost :is(.lbq-ui-card__subtitle, .lbq-ui-card__body, .lbq-ui-card__footer) { display: none; }
.lbq-ui .lbq-ui-card.is-drop-pending { opacity: 0.5; pointer-events: none; }
.lbq-ui .lbq-ui-card.is-drop-accepted { opacity: 0; transform: scale(0.9); transition: opacity 0.25s ease, transform 0.25s ease; pointer-events: none; }
/* Icon before the title (hub tiles, modules). */
.lbq-ui .lbq-ui-card__icon { margin-right: var(--lbq-space-2); vertical-align: text-bottom; color: var(--lbq-color-primary); }

/* --- summary-block.css --- */
/* Read-only summary block; the editable modifier tints it on hover/focus (the module opens its editor). */
.lbq-ui .lbq-ui-summary-block { position: relative; display: flex; flex-direction: column; gap: var(--lbq-space-3); min-width: 0; padding: 0; border-radius: var(--lbq-border-radius); overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-summary-block__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lbq-space-2); min-width: 0; }
.lbq-ui .lbq-ui-summary-block__header--actions { min-height: var(--lbq-button-height); }
.lbq-ui .lbq-ui-summary-block__body { min-width: 0; padding: calc(2 * var(--lbq-space-2)); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-summary-block .lbq-ui-details { grid-template-columns: var(--lbq-details-label-width) minmax(0, 1fr); }
.lbq-ui .lbq-ui-summary-block__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; max-width: 100%; margin-left: auto; gap: var(--lbq-space-1); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); box-shadow: var(--lbq-shadow-sm); cursor: default; }
.lbq-ui .lbq-ui-summary-block--editable { cursor: pointer; }
.lbq-ui .lbq-ui-summary-block--editable:is(:hover, :focus-within) > .lbq-ui-summary-block__body { background: var(--lbq-color-info-surface); }

@media (hover: hover) and (pointer: fine) {
    .lbq-ui .lbq-ui-summary-block__actions { opacity: 0; pointer-events: none; }
    .lbq-ui .lbq-ui-summary-block:is(:hover, :focus-within) .lbq-ui-summary-block__actions { opacity: 1; pointer-events: auto; }
}
@media (max-width: 782px) {
    .lbq-ui .lbq-ui-summary-block__actions { opacity: 1; pointer-events: auto; }
}

/* --- table.css --- */
/* Data table: head/body/footer cells with alignment modifiers, optional add row, row actions,
 * editable rows and reorder grip. On mobile every row becomes a labelled block. */
.lbq-ui .lbq-ui-table-wrap { min-width: 0; max-width: 100%; overflow-x: auto; }
.lbq-ui .lbq-ui-table-wrap--grid { border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); }
.lbq-ui .lbq-ui-table { width: 100%; margin: 0; border-collapse: collapse; table-layout: fixed; color: var(--lbq-color-text); background: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-table__caption { text-align: left; padding: var(--lbq-space-2); font-weight: var(--lbq-font-weight-strong); white-space: pre-wrap; }
.lbq-ui .lbq-ui-table__head, .lbq-ui .lbq-ui-table__cell { padding: var(--lbq-space-3); border: var(--lbq-border-width) solid var(--lbq-color-border); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-table__head { padding-block: var(--lbq-space-2); vertical-align: middle; background: var(--lbq-color-canvas); white-space: pre-wrap; }
.lbq-ui .lbq-ui-table__head--select { padding-block: var(--lbq-space-1); }
.lbq-ui .lbq-ui-table__head--center, .lbq-ui .lbq-ui-table__cell--center { text-align: center; }
.lbq-ui .lbq-ui-table__head--end, .lbq-ui .lbq-ui-table__cell--end { text-align: right; }
.lbq-ui .lbq-ui-table__cell--middle { vertical-align: middle; }
.lbq-ui .lbq-ui-table__cell--bottom { vertical-align: bottom; }
.lbq-ui .lbq-ui-table__head--select .lbq-ui-cluster { justify-content: center; flex-wrap: nowrap; gap: 0; }
.lbq-ui .lbq-ui-table--grid { border-collapse: separate; border-spacing: 0; }
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__header > .lbq-ui-table__row > .lbq-ui-table__head,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__body > .lbq-ui-table__row > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__add > .lbq-ui-table__row > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__foot > .lbq-ui-table__row > .lbq-ui-table__cell { border: 0; }
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__body > .lbq-ui-table__row > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__add > .lbq-ui-table__row > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__foot > .lbq-ui-table__row > .lbq-ui-table__cell { border-top: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__header > .lbq-ui-table__row > .lbq-ui-table__head + .lbq-ui-table__head,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__body > .lbq-ui-table__row > .lbq-ui-table__cell + .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__add > .lbq-ui-table__row > .lbq-ui-table__cell + .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--grid > .lbq-ui-table__foot > .lbq-ui-table__row > .lbq-ui-table__cell + .lbq-ui-table__cell { border-left: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-table--minimal { border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.lbq-ui .lbq-ui-table--minimal .lbq-ui-table__head, .lbq-ui .lbq-ui-table--minimal .lbq-ui-table__cell { border-width: 0 0 var(--lbq-border-width); }
.lbq-ui .lbq-ui-table--minimal .lbq-ui-table__head { background: none; }
.lbq-ui .lbq-ui-table--minimal .lbq-ui-table__line--has-footer > .lbq-ui-table__cell { border-bottom-width: 0; }
.lbq-ui .lbq-ui-table--minimal > .lbq-ui-table__body:last-child > .lbq-ui-table__row:last-child > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--minimal > .lbq-ui-table__add:last-child > .lbq-ui-table__row:last-child > .lbq-ui-table__cell,
.lbq-ui .lbq-ui-table--minimal > .lbq-ui-table__foot:last-child > .lbq-ui-table__row:last-child > .lbq-ui-table__cell { border-bottom-width: 0; }
.lbq-ui .lbq-ui-table__cell--footer { padding-block: var(--lbq-space-3); background: var(--lbq-color-canvas); font-weight: var(--lbq-font-weight-strong); vertical-align: middle; }

/* Add row: a full-width action between the data rows and the footer. */
.lbq-ui .lbq-ui-table__add .lbq-ui-table__row { margin: 0; }
.lbq-ui .lbq-ui-table__add .lbq-ui-table__cell { display: table-cell; padding: 0; }
.lbq-ui .lbq-ui-table__add .lbq-ui-table__cell::before { display: none; }
.lbq-ui .lbq-ui-table__add .lbq-ui-button { width: 100%; justify-content: flex-start; }

/* Row actions: an overlay at the right of the row, shown on hover/focus with a fine pointer. */
.lbq-ui .lbq-ui-table__row--actions { position: relative; }
.lbq-ui .lbq-ui-table__row--actions > .lbq-ui-table__cell { height: calc(var(--lbq-button-height) + 2 * var(--lbq-space-2)); }
.lbq-ui .lbq-ui-table__actions { position: absolute; right: var(--lbq-space-2); top: var(--lbq-space-2); z-index: 1; display: flex; justify-content: flex-end; align-items: center; gap: var(--lbq-space-1); width: max-content; max-width: calc(100% - 2 * var(--lbq-space-2)); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); box-shadow: var(--lbq-shadow-sm); cursor: default; }
.lbq-ui .lbq-ui-table__value { min-width: 0; }
.lbq-ui .lbq-ui-table__row--editable { cursor: pointer; }
.lbq-ui .lbq-ui-table__row--editable:is(:hover, :focus-within) { background: var(--lbq-color-info-surface); }
.lbq-ui .lbq-ui-table__line-footer-content > .lbq-ui-cluster { justify-content: flex-start; }

/* Reorder: a grip beside the row number; is-dragging / is-drop-* are set by the Core script. */
.lbq-ui .lbq-ui-table__position { display: flex; align-items: flex-start; justify-content: center; gap: var(--lbq-space-1); }
.lbq-ui .lbq-ui-table__drag { display: inline-flex; align-items: flex-start; justify-content: center; flex-shrink: 0; width: var(--lbq-table-drag-width); min-height: var(--lbq-table-drag-height); padding-top: var(--lbq-table-drag-offset); cursor: grab; touch-action: none; user-select: none; color: var(--lbq-color-text-muted); border-radius: var(--lbq-border-radius); }
.lbq-ui .lbq-ui-table__drag:focus { outline: none; box-shadow: none; }
.lbq-ui .lbq-ui-table__drag:focus-visible { color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-table__row.is-dragging, .lbq-ui .lbq-ui-table__row.is-dragging + .lbq-ui-table__line-footer { opacity: 0.5; }
.lbq-ui .lbq-ui-table__row.is-drop-before > .lbq-ui-table__cell { box-shadow: inset 0 var(--lbq-table-drop-marker) var(--lbq-color-primary); }
.lbq-ui .lbq-ui-table__row.is-drop-after > .lbq-ui-table__cell { box-shadow: inset 0 calc(-1 * var(--lbq-table-drop-marker)) var(--lbq-color-primary); }

@media (hover: hover) and (pointer: fine) {
    .lbq-ui .lbq-ui-table__body .lbq-ui-table__actions { opacity: 0; pointer-events: none; }
    .lbq-ui .lbq-ui-table__body .lbq-ui-table__row:is(:hover, :focus-within) .lbq-ui-table__actions { opacity: 1; pointer-events: auto; }
}
@media (max-width: 782px) {
    .lbq-ui .lbq-ui-table-wrap--grid { border: 0; border-radius: var(--lbq-border-radius); }
    .lbq-ui .lbq-ui-table--grid { border-collapse: collapse; }
    .lbq-ui .lbq-ui-table--grid > .lbq-ui-table__header > .lbq-ui-table__row > .lbq-ui-table__head,
    .lbq-ui .lbq-ui-table--grid > .lbq-ui-table__body > .lbq-ui-table__row > .lbq-ui-table__cell,
    .lbq-ui .lbq-ui-table--grid > .lbq-ui-table__add > .lbq-ui-table__row > .lbq-ui-table__cell,
    .lbq-ui .lbq-ui-table--grid > .lbq-ui-table__foot > .lbq-ui-table__row > .lbq-ui-table__cell { border: var(--lbq-border-width) solid var(--lbq-color-border); }
    .lbq-ui .lbq-ui-table, .lbq-ui .lbq-ui-table__body, .lbq-ui .lbq-ui-table__add { display: block; }
    .lbq-ui .lbq-ui-table__columns { display: none; }
    .lbq-ui .lbq-ui-table__header { position: absolute; width: var(--lbq-hidden-size); height: var(--lbq-hidden-size); overflow: hidden; clip-path: inset(50%); }
    .lbq-ui .lbq-ui-table__row { display: block; margin-bottom: var(--lbq-space-4); }
    .lbq-ui .lbq-ui-table__line--has-footer { margin-bottom: 0; }
    .lbq-ui .lbq-ui-table__cell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--lbq-space-2); }
    .lbq-ui .lbq-ui-table__cell::before { content: attr(data-label); font-weight: var(--lbq-font-weight-strong); }
    .lbq-ui .lbq-ui-table__row--actions > .lbq-ui-table__cell { height: auto; }
    .lbq-ui .lbq-ui-table__body .lbq-ui-table__row--actions .lbq-ui-table__actions { position: static; transform: none; grid-column: 1 / -1; width: 100%; max-width: 100%; opacity: 1; pointer-events: auto; background: none; box-shadow: none; }
    .lbq-ui .lbq-ui-table__row--actions > .lbq-ui-table__cell:last-child > .lbq-ui-table__value { grid-column: 2; }
    .lbq-ui .lbq-ui-table__cell--center, .lbq-ui .lbq-ui-table__cell--end { text-align: left; }
    .lbq-ui .lbq-ui-table__line-footer-leading { display: none; }
    .lbq-ui .lbq-ui-table__line-footer-content { display: block; }
    .lbq-ui .lbq-ui-table__line-footer-content::before { display: none; }
    /* The select column keeps its header (selection actions) above the rows. */
    .lbq-ui .lbq-ui-table--select .lbq-ui-table__header { position: static; display: block; width: auto; height: auto; overflow: visible; clip-path: none; }
    .lbq-ui .lbq-ui-table__head:not(.lbq-ui-table__head--select) { display: none; }
    .lbq-ui .lbq-ui-table__head--select { display: block; border: 0; background: none; padding: 0; }
    .lbq-ui .lbq-ui-table__head--select .lbq-ui-cluster { justify-content: flex-end; }
    /* Footer: compact label/value rows; empty cells disappear. */
    .lbq-ui .lbq-ui-table__foot { display: block; }
    .lbq-ui .lbq-ui-table__foot .lbq-ui-table__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 0; }
    .lbq-ui .lbq-ui-table__cell--footer { display: block; min-width: 0; text-align: right; }
    .lbq-ui .lbq-ui-table__cell--row-header { text-align: left; }
    .lbq-ui .lbq-ui-table__cell--footer::before { display: none; }
    .lbq-ui .lbq-ui-table__cell--empty { display: none; }
    .lbq-ui .lbq-ui-table__add .lbq-ui-table__cell { display: block; }
}

/* --- breadcrumb.css --- */
.lbq-ui .lbq-ui-breadcrumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lbq-space-1); margin: 0; padding: 0; list-style: none; }
.lbq-ui .lbq-ui-breadcrumb__item { display: flex; align-items: center; gap: var(--lbq-space-1); min-width: 0; }
.lbq-ui .lbq-ui-breadcrumb__link { color: var(--lbq-color-primary); text-decoration: none; }
.lbq-ui .lbq-ui-breadcrumb__link:hover, .lbq-ui .lbq-ui-breadcrumb__link:focus-visible { color: var(--lbq-color-primary-hover); text-decoration: underline; }
.lbq-ui .lbq-ui-breadcrumb__separator { color: var(--lbq-color-text-muted); }
.lbq-ui .lbq-ui-breadcrumb__current { min-width: 0; color: var(--lbq-color-text); font-weight: var(--lbq-font-weight-strong); overflow-wrap: anywhere; }

/* --- tree.css --- */
/* Compact tree: own sizes (tokens --lbq-tree-*), a guide line per level, small muted group titles. */
.lbq-ui .lbq-ui-tree, .lbq-ui .lbq-ui-tree__children { display: grid; margin: 0; padding: 0; list-style: none; font-size: var(--lbq-tree-font-size); line-height: var(--lbq-tree-line-height); }
.lbq-ui .lbq-ui-tree__node { margin: 0; padding: 0; min-width: 0; }
.lbq-ui .lbq-ui-tree__children { margin-left: var(--lbq-tree-indent); padding-left: var(--lbq-tree-indent); border-left: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-tree__item { display: flex; align-items: center; justify-content: space-between; gap: var(--lbq-space-2); min-width: 0; padding: var(--lbq-tree-item-padding); border-radius: var(--lbq-border-radius); color: var(--lbq-color-text); text-decoration: none; box-shadow: none; }
.lbq-ui .lbq-ui-tree__item:hover, .lbq-ui .lbq-ui-tree__item:focus-visible, .lbq-ui .lbq-ui-tree__item--current { background: var(--lbq-color-info-surface); color: var(--lbq-color-primary-hover); }
.lbq-ui .lbq-ui-tree__label { min-width: 0; overflow-wrap: anywhere; }
.lbq-ui .lbq-ui-tree__meta { flex-shrink: 0; font-size: var(--lbq-tree-meta-font-size); color: var(--lbq-color-text-muted); }
/* Group titles head a flat list: no guide line, no indent. */
.lbq-ui .lbq-ui-tree__item--group { margin-top: var(--lbq-tree-group-gap); font-size: var(--lbq-tree-meta-font-size); font-weight: var(--lbq-font-weight-strong); color: var(--lbq-color-text-muted); }
.lbq-ui .lbq-ui-tree__node:first-child > .lbq-ui-tree__item--group { margin-top: 0; }
.lbq-ui .lbq-ui-tree__item--group:hover { background: none; color: var(--lbq-color-text-muted); }
.lbq-ui .lbq-ui-tree__item--group + .lbq-ui-tree__children { margin-left: 0; padding-left: 0; border-left: 0; }
.lbq-ui .lbq-ui-tree__item--draggable { cursor: grab; }
.lbq-ui .lbq-ui-tree.is-drop-target, .lbq-ui .lbq-ui-tree__item.is-drop-target { outline: var(--lbq-border-width) dashed var(--lbq-color-primary); outline-offset: calc(-1 * var(--lbq-border-width)); }

/* --- tabs.css --- */
/* Tabs: a bar of tabs over a rule, the current one underlined, actions on the right; the bar scrolls
 * horizontally when the tabs overflow. Below 782px the actions go above the tabs. */
.lbq-ui .lbq-ui-tabs { display: flex; flex-direction: column; gap: var(--lbq-space-3); min-width: 0; }
.lbq-ui .lbq-ui-tabs__bar { display: flex; align-items: flex-end; gap: var(--lbq-space-3); border-bottom: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-tabs__list { display: flex; flex: 1 1 auto; min-width: 0; margin-bottom: calc(-1 * var(--lbq-border-width)); overflow-x: auto; }
.lbq-ui .lbq-ui-tabs__tab { flex: 0 0 auto; margin: 0; padding: var(--lbq-space-2) var(--lbq-space-3); border: 0; border-bottom: var(--lbq-tab-indicator-width) solid transparent; border-radius: 0; background: transparent; box-shadow: none; color: var(--lbq-color-text-muted); font: inherit; font-size: var(--lbq-button-font-size); font-weight: var(--lbq-button-font-weight); line-height: var(--lbq-button-line-height); text-decoration: none; white-space: nowrap; cursor: pointer; }
.lbq-ui .lbq-ui-tabs__tab:hover { color: var(--lbq-color-text); background: transparent; }
.lbq-ui .lbq-ui-tabs__tab[aria-selected="true"], .lbq-ui .lbq-ui-tabs__tab[aria-current="page"] { color: var(--lbq-color-primary); border-bottom-color: var(--lbq-color-primary); }
/* Inside the scrolling list an outer outline would be clipped. */
.lbq-ui .lbq-ui-tabs__tab:focus-visible { outline-offset: calc(-1 * var(--lbq-focus-width)); }
.lbq-ui .lbq-ui-tabs__actions { display: flex; flex: 0 0 auto; align-items: center; gap: var(--lbq-space-2); padding-bottom: var(--lbq-space-2); }
.lbq-ui .lbq-ui-tabs__panel { min-width: 0; }
.lbq-ui .lbq-ui-tabs--fill { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__bar { flex: 0 0 auto; }
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__panel { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
/* An open panel holding a LBQ_UI_Fill lays it out, so a direct textarea takes the panel height. */
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__panel:not([hidden]):has(> .lbq-ui-fill) { display: flex; flex-direction: column; }
/* A page in a filling panel fills it like its own page: the title bar stays, only the page body scrolls. */
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__panel:has(> .lbq-ui > .lbq-ui-page) { display: flex; flex-direction: column; overflow: hidden; }
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__panel > .lbq-ui:has(> .lbq-ui-page) { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.lbq-ui .lbq-ui-tabs--fill > .lbq-ui-tabs__panel > .lbq-ui > .lbq-ui-page { flex: 1 1 auto; min-height: 0; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-tabs__bar { flex-direction: column-reverse; align-items: stretch; gap: var(--lbq-space-2); }
    .lbq-ui .lbq-ui-tabs__actions { justify-content: flex-end; flex-wrap: wrap; }
}

/* --- tabbed-split.css --- */
/* Tabs spanning a main panel and a persistent end aside. LBQ_UI_Tabs keeps its own markup and behavior. */
.lbq-ui .lbq-ui-tabbed-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--lbq-tabbed-split-aside-width)); grid-template-rows: auto minmax(0, 1fr); column-gap: var(--lbq-space-4); row-gap: var(--lbq-space-3); flex: 1 1 auto; min-width: 0; min-height: 0; overflow: hidden; }
.lbq-ui .lbq-ui-tabbed-split > .lbq-ui-tabs { display: contents; }
.lbq-ui .lbq-ui-tabbed-split > .lbq-ui-tabs > .lbq-ui-tabs__bar { grid-column: 1 / -1; grid-row: 1; }
.lbq-ui .lbq-ui-tabbed-split > .lbq-ui-tabs > .lbq-ui-tabs__panel { grid-column: 1; grid-row: 2; min-height: 0; overflow-y: auto; }
.lbq-ui .lbq-ui-tabbed-split > .lbq-ui-tabs > .lbq-ui-tabs__panel:not([hidden]),
.lbq-ui .lbq-ui-tabbed-split__aside { display: flex; flex-direction: column; }
.lbq-ui .lbq-ui-tabbed-split__aside { --lbq-field-label-width: var(--lbq-tabbed-split-field-label-width); grid-column: 2; grid-row: 2; min-width: 0; min-height: 0; padding: var(--lbq-space-3); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-canvas); overflow-y: auto; }
.lbq-ui .lbq-ui-tabbed-split__aside > .lbq-ui-stack { flex: 1 1 auto; min-height: 0; }
.lbq-ui .lbq-ui-modal__body:has(.lbq-ui-tabbed-split) { display: flex; flex-direction: column; overflow: hidden; }
.lbq-ui .lbq-ui-modal__body:has(.lbq-ui-tabbed-split) > .lbq-ui-stack,
.lbq-ui .lbq-ui-modal__body:has(.lbq-ui-tabbed-split) .lbq-ui-form:has(.lbq-ui-tabbed-split),
.lbq-ui .lbq-ui-modal__body:has(.lbq-ui-tabbed-split) .lbq-ui-form:has(.lbq-ui-tabbed-split) > .lbq-ui-stack { flex: 1 1 auto; min-height: 0; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-modal__body:has(.lbq-ui-tabbed-split) { overflow-y: auto; }
    .lbq-ui .lbq-ui-tabbed-split { display: flex; flex: none; flex-direction: column; overflow: visible; }
    .lbq-ui .lbq-ui-tabbed-split > .lbq-ui-tabs > .lbq-ui-tabs__panel,
    .lbq-ui .lbq-ui-tabbed-split__aside { overflow: visible; }
}

/* --- toolbar.css --- */
/* Title on the left, actions on the right (destructive, secondary, primary last); stacked on mobile. */
.lbq-ui .lbq-ui-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lbq-space-4); flex-shrink: 0; }
.lbq-ui .lbq-ui-toolbar__heading { display: flex; align-items: center; flex-wrap: wrap; gap: var(--lbq-space-3); min-width: 0; }
.lbq-ui .lbq-ui-toolbar__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--lbq-space-2); margin-left: auto; }
/* Breadcrumb title: one line whatever the depth. Ancestors shrink first (ellipsis, full name as tooltip),
 * the page title last; the actions never shrink. Below 782px only the parent ("‹ parent") and the title stay. */
.lbq-ui .lbq-ui-toolbar:has(> .lbq-ui-toolbar__heading--breadcrumb) { flex-wrap: nowrap; }
.lbq-ui .lbq-ui-toolbar__heading--breadcrumb { flex: 1 1 auto; flex-wrap: nowrap; }
.lbq-ui .lbq-ui-toolbar:has(> .lbq-ui-toolbar__heading--breadcrumb) > .lbq-ui-toolbar__actions { flex: 0 0 auto; flex-wrap: nowrap; }
.lbq-ui .lbq-ui-breadcrumb--page-title { min-width: 0; }
/* The whole path at the page title size; the title keeps its strong weight. */
.lbq-ui .lbq-ui-breadcrumb--page-title > .lbq-ui-breadcrumb__list { flex-wrap: nowrap; font-size: var(--lbq-font-size-lg); }
.lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__item { flex: 0 1 auto; }
.lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__item--title { flex: 0 0.001 auto; }
.lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__separator { flex: 0 0 auto; }
.lbq-ui .lbq-ui-breadcrumb--page-title :is(.lbq-ui-breadcrumb__link, .lbq-ui-breadcrumb__text) { max-width: var(--lbq-toolbar-breadcrumb-item-max-width); }
.lbq-ui .lbq-ui-breadcrumb--page-title :is(.lbq-ui-breadcrumb__link, .lbq-ui-breadcrumb__text, .lbq-ui-breadcrumb__current) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* A section toolbar (inside the page body) stands over the same rule as a tab bar. */
.lbq-ui .lbq-ui-toolbar--section { padding-bottom: var(--lbq-space-2); border-bottom: var(--lbq-border-width) solid var(--lbq-color-border); }
/* Groups whose actions are all hidden take no room. */
.lbq-ui .lbq-ui-toolbar__destructive:not(:has(> :not([hidden]))), .lbq-ui .lbq-ui-toolbar__actions > .lbq-ui-cluster:not(:has(> :not([hidden]))) { display: none; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-toolbar { align-items: stretch; flex-direction: column; }
    .lbq-ui .lbq-ui-toolbar__actions { width: 100%; margin-left: 0; flex-direction: column; align-items: stretch; }
    .lbq-ui .lbq-ui-toolbar__actions > *, .lbq-ui .lbq-ui-toolbar__actions .lbq-ui-button { width: 100%; }
    .lbq-ui .lbq-ui-toolbar__actions > .lbq-ui-cluster { flex-direction: column; align-items: stretch; }
    .lbq-ui .lbq-ui-toolbar:has(> .lbq-ui-toolbar__heading--breadcrumb) > .lbq-ui-toolbar__actions { flex-wrap: wrap; }
    .lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__item:not(.lbq-ui-breadcrumb__item--parent, .lbq-ui-breadcrumb__item--title) { display: none; }
    .lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__item--parent > .lbq-ui-breadcrumb__separator { display: none; }
    .lbq-ui .lbq-ui-breadcrumb--page-title .lbq-ui-breadcrumb__item--parent > :is(.lbq-ui-breadcrumb__link, .lbq-ui-breadcrumb__text)::before { content: "‹ "; }
}

/* --- page.css --- */
/* List/edit page: header (toolbar) separated from the scrollable body by a full-width rule;
 * their inner content follows the closed page width (full, medium 1200px, small 800px). */
.lbq-ui .lbq-ui-page { width: 100%; display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--lbq-color-canvas); }
.lbq-ui .lbq-ui-page__inner { width: 100%; max-width: var(--lbq-page-width-medium); margin: 0 auto; padding: 0 var(--lbq-page-padding-inline); min-width: 0; }
.lbq-ui .lbq-ui-page--full .lbq-ui-page__inner { max-width: none; }
.lbq-ui .lbq-ui-page--medium .lbq-ui-page__inner { max-width: var(--lbq-page-width-medium); }
.lbq-ui .lbq-ui-page--small .lbq-ui-page__inner { max-width: var(--lbq-page-width-small); }
.lbq-ui .lbq-ui-page__header { flex-shrink: 0; padding: var(--lbq-space-4) 0; border-bottom: var(--lbq-border-width) solid var(--lbq-color-border); }
.lbq-ui .lbq-ui-page__header .lbq-ui-toolbar { min-height: var(--lbq-button-height); }
.lbq-ui .lbq-ui-page__body { min-height: 0; min-width: 0; overflow-y: auto; padding: var(--lbq-space-4) 0 var(--lbq-space-5); }
.lbq-ui.lbq-ui--scroll-child { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.lbq-ui .lbq-ui-page--scroll-child { height: 100%; overflow: hidden; }
.lbq-ui .lbq-ui-page--scroll-child > .lbq-ui-page__body { flex: 1 1 auto; overflow: hidden; }
.lbq-ui .lbq-ui-page--scroll-child > .lbq-ui-page__body > .lbq-ui-page__inner { display: flex; height: 100%; min-height: 0; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-page__inner { padding: 0 var(--lbq-space-2); }
    .lbq-ui .lbq-ui-page__body { padding-bottom: var(--lbq-space-4); }
}

/* --- split.css --- */
/* Two-zone canvas. The page holding it fills its host and stops scrolling: each zone scrolls instead.
 * TREE: navigation zone 240-300px; DOCUMENT: half and half. Zones stack below 782px. */
.lbq-ui .lbq-ui-page:has(.lbq-ui-split) { height: 100%; }
.lbq-ui .lbq-ui-page__body:has(.lbq-ui-split), .lbq-ui .lbq-ui-page__body:has(.lbq-ui-split) > .lbq-ui-page__inner { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; }
.lbq-ui .lbq-ui-page__body :is(.lbq-ui-stack, .lbq-ui-form):has(.lbq-ui-split) { flex: 1; min-height: 0; }
.lbq-ui .lbq-ui-split { flex: 1; display: grid; grid-template-columns: minmax(var(--lbq-split-start-min), var(--lbq-split-start-max)) minmax(0, 1fr); gap: var(--lbq-space-4); min-height: 0; }
.lbq-ui .lbq-ui-split--document { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.lbq-ui .lbq-ui-split__start, .lbq-ui .lbq-ui-split__main { min-width: 0; min-height: 0; overflow-y: auto; padding: var(--lbq-space-3); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); }
/* A zone holding fill tabs gives them its height: the tab bar stays, the open panel scrolls or fills. */
.lbq-ui :is(.lbq-ui-split__start, .lbq-ui-split__main):has(> .lbq-ui-tabs--fill) { display: flex; flex-direction: column; overflow: hidden; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-page__body:has(.lbq-ui-split) { overflow-y: auto; }
    .lbq-ui .lbq-ui-page__body:has(.lbq-ui-split) > .lbq-ui-page__inner { flex: none; overflow: visible; }
    .lbq-ui .lbq-ui-split, .lbq-ui .lbq-ui-split--document { flex: none; grid-template-columns: minmax(0, 1fr); }
    .lbq-ui .lbq-ui-split__start, .lbq-ui .lbq-ui-split__main, .lbq-ui :is(.lbq-ui-split__start, .lbq-ui-split__main):has(> .lbq-ui-tabs--fill) { overflow: visible; }
}

/* --- date-navigation.css --- */
/* Date flanked by previous/next icon buttons, at the button height. */
.lbq-ui .lbq-ui-date-navigation { --lbq-control-height: var(--lbq-button-height); --lbq-control-padding-y: 0; --lbq-control-font-size: var(--lbq-button-font-size); display: flex; flex-wrap: wrap; align-items: center; gap: var(--lbq-space-2); margin: 0; padding: 0; }
.lbq-ui .lbq-ui-date-navigation__field { flex: 1; min-width: 0; }
.lbq-ui .lbq-ui-date-navigation .lbq-ui-control { height: var(--lbq-button-height); }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-date-navigation { width: 100%; }
    .lbq-ui .lbq-ui-date-navigation .lbq-ui-button { width: auto; }
}

/* --- document-preview.css --- */
/* Document iframe filling the page body. */
.lbq-ui .lbq-ui-document-preview { display: block; flex: 1; width: 100%; min-height: 70dvh; border: 0; background: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-page__body:has(.lbq-ui-document-preview), .lbq-ui .lbq-ui-page__body:has(.lbq-ui-document-preview) > .lbq-ui-page__inner { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.lbq-ui .lbq-ui-page__body :is(.lbq-ui-stack, .lbq-ui-form, .lbq-ui-fill):has(.lbq-ui-document-preview) { flex: 1; min-height: 0; }

/* --- dropzone.css --- */
/* File drop zone: tinted canvas, dashed border; is-dragging is set by the Core script. */
.lbq-ui .lbq-ui-dropzone { display: flex; flex-direction: column; gap: var(--lbq-space-2); padding: var(--lbq-space-4) var(--lbq-space-5); border: var(--lbq-dropzone-border-width) dashed var(--lbq-color-dropzone-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-dropzone-surface); cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease; }
.lbq-ui .lbq-ui-dropzone:is(:hover, :focus-visible) { border-color: var(--lbq-color-dropzone-border-hover); }
.lbq-ui .lbq-ui-dropzone.is-dragging { background: var(--lbq-color-dropzone-surface-active); border-color: var(--lbq-color-dropzone-border-active); }
.lbq-ui .lbq-ui-dropzone[aria-busy="true"] { opacity: 0.65; cursor: progress; }
.lbq-ui .lbq-ui-dropzone__title { margin: 0; padding: 0; font-weight: var(--lbq-font-weight-strong); color: var(--lbq-color-chrome); }

/* --- drop-target.css --- */
/* Drop targets for draggable cards: a bar hidden until a drag of its group starts, kept at the bottom of the scrolling
 * area; each target is tinted by its tone; is-drop-over is set by the Core script while a card is over it. */
.lbq-ui .lbq-ui-drop-targets { position: sticky; z-index: 1; bottom: 0; display: flex; flex-wrap: wrap; gap: var(--lbq-space-2); margin-top: var(--lbq-space-3); padding: var(--lbq-space-2) 0; background: var(--lbq-color-canvas); }
.lbq-ui .lbq-ui-drop-target { display: flex; flex: 1 1 0; align-items: center; justify-content: center; min-width: var(--lbq-drop-target-min-width); min-height: calc(var(--lbq-button-height) * 2); padding: var(--lbq-space-3); border: var(--lbq-dropzone-border-width) dashed var(--lbq-color-dropzone-border-active); border-radius: var(--lbq-border-radius); background: var(--lbq-color-dropzone-surface-active); color: var(--lbq-color-primary); box-shadow: var(--lbq-shadow-sm); text-align: center; transition: transform 0.15s ease, background-color 0.15s ease; }
.lbq-ui .lbq-ui-drop-target__label { font-weight: var(--lbq-font-weight-strong); font-size: var(--lbq-font-size-md); }
.lbq-ui .lbq-ui-drop-target--success { border-color: var(--lbq-color-success); background: var(--lbq-color-success-surface); color: var(--lbq-color-success); }
.lbq-ui .lbq-ui-drop-target--info { border-color: var(--lbq-color-primary); background: var(--lbq-color-info-surface); color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-drop-target--warning { border-color: var(--lbq-color-warning); background: var(--lbq-color-warning-surface); color: var(--lbq-color-warning); }
.lbq-ui .lbq-ui-drop-target--danger { border-color: var(--lbq-color-danger); background: var(--lbq-color-danger-surface); color: var(--lbq-color-danger); }
.lbq-ui .lbq-ui-drop-target.is-drop-over { border-style: solid; transform: scale(1.03); box-shadow: var(--lbq-shadow-md); }

/* --- document-panel.css --- */
/* Document zone of an edit page: the preview (or the drop zone) fills the zone; removal floats over the preview. */
.lbq-ui .lbq-ui-document-panel { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.lbq-ui .lbq-ui-document-panel__preview, .lbq-ui .lbq-ui-document-panel__picker { position: relative; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.lbq-ui .lbq-ui-document-panel__actions { position: absolute; top: var(--lbq-space-2); right: var(--lbq-space-2); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); box-shadow: var(--lbq-shadow-md); }
.lbq-ui .lbq-ui-document-panel__picker .lbq-ui-dropzone { flex: 1; justify-content: center; align-items: center; text-align: center; }
/* A split zone showing only the drop zone keeps the dashed frame alone: no zone border, padding or surface around it. */
.lbq-ui .lbq-ui-split__start:has(> .lbq-ui-document-panel > .lbq-ui-document-panel__picker:not([hidden])) { padding: 0; border: 0; background: none; }

/* --- chrome.css --- */
/* Dark Lambique band, one role for the app bar above every front screen and the modal header: logo, light
 * ghost buttons, burger below 782px. */
.lbq-ui .lbq-ui-chrome, .lbq-ui.lbq-ui-chrome { min-height: var(--lbq-app-bar-height); padding: 0 var(--lbq-header-padding-x); background: var(--lbq-color-chrome); color: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-chrome__logo { display: block; flex: 0 0 auto; width: auto; height: var(--lbq-brand-logo-height); object-fit: contain; }
.lbq-ui .lbq-ui-chrome__burger { display: none; font-family: inherit; line-height: inherit; box-shadow: none; }
.lbq-ui .lbq-ui-chrome .lbq-ui-button, .lbq-ui.lbq-ui-chrome .lbq-ui-button { min-height: var(--lbq-button-header-height); }
.lbq-ui .lbq-ui-chrome .lbq-ui-button--ghost, .lbq-ui.lbq-ui-chrome .lbq-ui-button--ghost { color: var(--lbq-color-surface); background: transparent; border-color: transparent; }
.lbq-ui .lbq-ui-chrome .lbq-ui-button--ghost:hover, .lbq-ui.lbq-ui-chrome .lbq-ui-button--ghost:hover { color: var(--lbq-color-surface); background: var(--lbq-color-chrome-hover); border-color: transparent; }
.lbq-ui .lbq-ui-chrome .lbq-ui-button--danger, .lbq-ui.lbq-ui-chrome .lbq-ui-button--danger { color: var(--lbq-color-danger-on-chrome); background: transparent; border-color: transparent; }
.lbq-ui .lbq-ui-chrome .lbq-ui-button--danger:hover, .lbq-ui.lbq-ui-chrome .lbq-ui-button--danger:hover { color: var(--lbq-color-danger-on-chrome); background: var(--lbq-color-danger-chrome-hover); border-color: transparent; }
.lbq-ui .lbq-ui-chrome .lbq-ui-date-navigation .lbq-ui-control,
.lbq-ui .lbq-ui-chrome .lbq-ui-date-navigation .lbq-ui-control:hover,
.lbq-ui .lbq-ui-chrome .lbq-ui-date-navigation .lbq-ui-control:focus,
.lbq-ui .lbq-ui-chrome .lbq-ui-date-navigation .lbq-ui-control:active {
    border-color: transparent;
    background-color: var(--lbq-color-chrome);
    color: var(--lbq-color-surface);
    color-scheme: dark;
    text-align: center;
}
.lbq-ui .lbq-ui-chrome .lbq-ui-date-navigation .lbq-ui-control::-webkit-datetime-edit { width: 100%; text-align: center; }
.lbq-ui .lbq-ui-chrome-header { position: relative; flex-wrap: nowrap; }
.lbq-ui .lbq-ui-chrome-header .lbq-ui-toolbar__heading { flex: 1; flex-wrap: nowrap; min-height: var(--lbq-app-bar-height); gap: var(--lbq-header-brand-gap); }
.lbq-ui .lbq-ui-chrome-header__brand { display: block; flex: 0 0 auto; }
.lbq-ui .lbq-ui-chrome-header__title { min-width: 0; overflow-wrap: anywhere; color: var(--lbq-color-surface); font-size: var(--lbq-font-size-header); }
.lbq-ui .lbq-ui-chrome-header__action-line { min-width: 0; margin-left: auto; }
.lbq-ui .lbq-ui-chrome-header__main-actions { display: none; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-chrome__burger { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: var(--lbq-burger-size); min-height: var(--lbq-burger-size); margin: 0 0 0 auto; padding: 0; border: 0; border-radius: var(--lbq-border-radius); background: transparent; color: var(--lbq-color-surface); font-size: var(--lbq-font-size-lg); cursor: pointer; }
    .lbq-ui .lbq-ui-chrome__burger:hover { background: var(--lbq-color-chrome-hover); }
	.lbq-ui .lbq-ui-chrome-header { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: var(--lbq-space-2); row-gap: 0; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__action-line { position: relative; flex: 0 0 100%; min-width: 0; margin: 0; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions { display: flex; align-items: stretch; width: 100%; min-width: 0; gap: var(--lbq-space-2); padding-bottom: var(--lbq-space-2); }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions > .lbq-ui-cluster { width: 100%; flex-wrap: nowrap; align-items: stretch; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions > .lbq-ui-cluster > * { flex: 1 1 0; min-width: 0; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions > .lbq-ui-cluster:has(> .lbq-ui-button--mobile-full-row) { flex-wrap: wrap; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions > .lbq-ui-cluster > .lbq-ui-button--mobile-full-row { flex: 0 0 100%; width: 100%; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions > .lbq-ui-button { flex: 1 1 0; width: 100%; min-width: 0; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-chrome-header__main-actions .lbq-ui-button { overflow-wrap: normal; }
	.lbq-ui .lbq-ui-chrome-header--form .lbq-ui-toolbar__actions { display: none; }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions { position: absolute; z-index: 1; top: 0; right: 0; display: flex; width: min(100%, var(--lbq-modal-width)); max-height: calc(100dvh - var(--lbq-app-bar-height)); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: var(--lbq-space-2); background: var(--lbq-color-chrome); box-shadow: var(--lbq-shadow-md); }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions > .lbq-ui-cluster { display: contents; }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__destructive:has(> :not([hidden])) { display: block; margin: 0; }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-button { flex: 0 0 auto; width: 100%; justify-content: flex-start; overflow-wrap: normal; }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-date-navigation { width: 100%; padding: var(--lbq-space-1) 0; }
	.lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-date-navigation .lbq-ui-button { flex: 0 0 auto; width: auto; justify-content: center; }
	.lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-chrome-header__action-line { position: relative; flex: 0 0 100%; min-height: calc(var(--lbq-button-header-height) + var(--lbq-space-2)); margin: 0; padding-bottom: var(--lbq-space-2); }
	.lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__actions { flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: var(--lbq-space-2); }
	.lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__actions .lbq-ui-cluster { display: contents; }
	.lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__destructive { display: none; }
	.lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__actions .lbq-ui-button { flex: 1 1 0; width: auto; min-width: 0; }
	.lbq-ui .lbq-ui-chrome-header--modal.is-menu-open .lbq-ui-toolbar__actions { position: absolute; z-index: 1; top: 0; right: 0; width: min(100%, var(--lbq-modal-width)); max-height: calc(100dvh - var(--lbq-control-height) - var(--lbq-space-4)); overflow-y: auto; flex-direction: column; padding: var(--lbq-space-2); background: var(--lbq-color-chrome); box-shadow: var(--lbq-shadow-md); }
	.lbq-ui .lbq-ui-chrome-header--modal.is-menu-open .lbq-ui-toolbar__destructive:has(> :not([hidden])) { display: block; margin: 0; }
	.lbq-ui .lbq-ui-chrome-header--modal.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-button { flex: 0 0 auto; width: 100%; justify-content: flex-start; }
}

/* --- action-menu.css --- */
/* Action menu: a ghost button (no caret) opening a light panel aligned right under it. In the dark band below
 * 782px the button shares the action line like the other buttons; in the open burger list the panel stays in flow. */
.lbq-ui .lbq-ui-menu { position: relative; display: inline-flex; }
.lbq-ui .lbq-ui-menu__panel { position: absolute; z-index: var(--lbq-menu-z-index); top: calc(100% + var(--lbq-space-1)); right: 0; display: flex; flex-direction: column; min-width: var(--lbq-menu-min-width); padding: var(--lbq-space-1); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); box-shadow: var(--lbq-shadow-md); }
.lbq-ui .lbq-ui-menu__item { display: block; width: 100%; margin: 0; padding: var(--lbq-space-2) var(--lbq-space-3); border: 0; border-radius: var(--lbq-border-radius); background: transparent; box-shadow: none; color: var(--lbq-color-text); font: inherit; font-size: var(--lbq-button-font-size); font-weight: var(--lbq-button-font-weight); line-height: var(--lbq-button-line-height); text-align: left; text-decoration: none; text-transform: none; white-space: nowrap; cursor: pointer; }
.lbq-ui .lbq-ui-menu__item:hover, .lbq-ui .lbq-ui-menu__item:focus-visible { background: var(--lbq-color-button-ghost-hover-surface); color: var(--lbq-color-text); text-decoration: none; }

@media (max-width: 782px) {
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-menu { display: contents; }
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-menu__trigger { display: none; }
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-menu__panel { position: static; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-menu__item { color: var(--lbq-color-surface); }
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-menu__item:hover,
    .lbq-ui .lbq-ui-chrome-header--form.is-menu-open .lbq-ui-menu__item:focus-visible { background: var(--lbq-color-chrome-hover); color: var(--lbq-color-surface); }
    .lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__actions .lbq-ui-menu { flex: 1 1 0; min-width: 0; }
    .lbq-ui .lbq-ui-chrome-header--modal .lbq-ui-toolbar__actions .lbq-ui-menu__trigger { width: 100%; }
    .lbq-ui .lbq-ui-chrome-header--modal.is-menu-open .lbq-ui-toolbar__actions .lbq-ui-menu { flex: 0 0 auto; flex-direction: column; width: 100%; }
    .lbq-ui .lbq-ui-chrome-header--modal.is-menu-open .lbq-ui-menu__panel { position: static; margin-top: var(--lbq-space-1); box-shadow: none; }
}

/* --- app-bar.css --- */
/* App bar, the dark band (chrome.css) above every front screen: logo to the hub, administration, module links
 * (current one marked, scrolling when they overflow), site on the right. Below 782px the burger opens the
 * links in a panel on the right, administration and site included. */
.lbq-ui.lbq-ui-app-bar { box-sizing: border-box; position: relative; z-index: var(--lbq-app-bar-z-index); display: flex; align-items: center; gap: var(--lbq-space-5); flex-shrink: 0; }
.lbq-ui .lbq-ui-app-bar__home { display: flex; align-items: center; flex: 0 0 auto; }
.lbq-ui .lbq-ui-app-bar__nav { display: flex; flex: 1 1 auto; align-items: center; gap: var(--lbq-space-1); min-width: 0; height: 100%; overflow-x: auto; }
.lbq-ui .lbq-ui-app-bar__link { display: inline-flex; align-items: center; min-height: var(--lbq-button-header-height); box-sizing: border-box; padding: 0 var(--lbq-space-3); border-radius: var(--lbq-border-radius); color: var(--lbq-color-chrome-muted); font-size: var(--lbq-button-font-size); line-height: var(--lbq-button-line-height); text-decoration: none; white-space: nowrap; }
.lbq-ui .lbq-ui-app-bar__link:hover { color: var(--lbq-color-surface); background: var(--lbq-color-chrome-hover); }
.lbq-ui .lbq-ui-app-bar__link[aria-current="page"] { color: var(--lbq-color-surface); background: var(--lbq-color-chrome-current); font-weight: var(--lbq-font-weight-strong); }
.lbq-ui .lbq-ui-app-bar__link--menu { display: none; }
.lbq-ui .lbq-ui-app-bar__icon { display: flex; align-items: center; flex: 0 0 auto; color: var(--lbq-color-chrome-muted); text-decoration: none; }
.lbq-ui .lbq-ui-app-bar__icon:hover { color: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-app-bar__site { margin-left: auto; color: var(--lbq-color-surface); }
.lbq-ui .lbq-ui-app-bar__site-icon { display: block; width: var(--lbq-app-bar-site-icon-size); height: var(--lbq-app-bar-site-icon-size); border-radius: var(--lbq-border-radius); object-fit: cover; }
.lbq-ui .lbq-ui-app-bar__site-name { max-width: var(--lbq-app-bar-site-name-width); overflow: hidden; font-size: var(--lbq-button-font-size); font-weight: var(--lbq-font-weight-strong); text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 782px) {
    .lbq-ui.lbq-ui-app-bar { gap: var(--lbq-space-3); }
    .lbq-ui.lbq-ui-app-bar--nav .lbq-ui-app-bar__icon { display: none; }
    .lbq-ui .lbq-ui-app-bar__nav { display: none; position: absolute; top: 100%; right: 0; min-width: var(--lbq-app-bar-menu-min-width); max-width: 100%; height: auto; max-height: calc(100dvh - var(--lbq-app-bar-height)); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: var(--lbq-space-2); background: var(--lbq-color-chrome); box-shadow: var(--lbq-shadow-md); }
    .lbq-ui.lbq-ui-app-bar.is-menu-open .lbq-ui-app-bar__nav { display: flex; }
    .lbq-ui .lbq-ui-app-bar__link { padding-block: var(--lbq-space-1); white-space: normal; }
    .lbq-ui .lbq-ui-app-bar__link--menu { display: flex; }
}

/* --- form-shell.css --- */
/* Standalone typed editing shell: dark toolbar above a content area that owns its scrolling. */
.lbq-ui.lbq-ui-form-shell { position: fixed; inset: 0; z-index: var(--lbq-modal-z-index); display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--lbq-color-canvas); }
.lbq-ui .lbq-ui-form-shell__content { flex: 1 1 auto; min-width: 0; min-height: 0; overflow: hidden; }
.lbq-ui .lbq-ui-form-shell__content > .lbq-ui { display: flex; height: 100%; overflow: hidden; }
.lbq-ui .lbq-ui-form-shell__content > .lbq-ui > .lbq-ui-page { flex: 1; height: 100%; }

/* --- modal.css --- */
/* Modal: its own .lbq-ui root (it may live anywhere in the page), dark band header (chrome.css) outside the
 * scrolling body. Below 782px: logo/title/burger, then the action line; the burger opens every action. */
.lbq-ui.lbq-ui-modal { position: fixed; inset: 0; z-index: var(--lbq-modal-z-index); height: 100%; display: flex; align-items: center; justify-content: center; padding: var(--lbq-space-4); background: var(--lbq-color-backdrop); }
.lbq-ui .lbq-ui-modal__dialog { display: flex; flex-direction: column; width: min(100%, var(--lbq-modal-width)); height: min(90dvh, var(--lbq-modal-height)); min-height: 0; background: var(--lbq-color-surface); border-radius: var(--lbq-border-radius); overflow: hidden; box-shadow: var(--lbq-shadow-md); }
.lbq-ui .lbq-ui-modal__dialog--wide { width: min(100%, var(--lbq-modal-wide-width)); }
.lbq-ui .lbq-ui-modal__body { overflow-y: auto; min-height: 0; flex: 1; padding: var(--lbq-space-4); }
.lbq-ui .lbq-ui-modal__body > .lbq-ui-stack { min-height: 100%; }

@media (max-width: 782px) {
    .lbq-ui.lbq-ui-modal { padding: 0; }
    .lbq-ui .lbq-ui-modal__dialog { width: 100%; height: 100%; max-height: 100dvh; border-radius: 0; }
}

/* --- busy.css --- */
/* Busy veil (lbq-busy.js) over one container while it works; the page variant covers the screen. */
.lbq-ui.lbq-ui-busy { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; background: var(--lbq-color-busy-veil); }
.lbq-ui.lbq-ui-busy--page { position: fixed; z-index: var(--lbq-overlay-z-index); }
.lbq-ui .lbq-ui-busy__message { padding: var(--lbq-space-1) var(--lbq-space-2); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); color: var(--lbq-color-text); font-size: var(--lbq-font-size-md); font-weight: var(--lbq-font-weight-strong); box-shadow: var(--lbq-shadow-sm); }

/* --- toast.css --- */
/* Notifications (lambique-toast.js, lbq-toasts.php): a stack at the bottom right, above modals and the edit shell. */
.lbq-ui.lbq-ui-toast-stack { position: fixed; right: var(--lbq-space-4); bottom: max(var(--lbq-space-4), env(safe-area-inset-bottom)); z-index: var(--lbq-overlay-z-index); width: var(--lbq-toast-width); max-height: calc(100% - 2 * var(--lbq-space-4)); display: flex; flex-direction: column; gap: var(--lbq-space-2); overflow-y: auto; overscroll-behavior: contain; }
.lbq-ui .lbq-ui-toast { flex: 0 0 auto; display: grid; grid-template-columns: 1fr auto; gap: var(--lbq-space-2); align-items: start; padding: var(--lbq-space-2) var(--lbq-space-3); border: var(--lbq-border-width) solid var(--lbq-color-border); border-radius: var(--lbq-border-radius); background: var(--lbq-color-surface); color: var(--lbq-color-text); box-shadow: var(--lbq-shadow-md); font-size: var(--lbq-font-size-md); }
.lbq-ui .lbq-ui-toast--success { border-color: var(--lbq-color-success); }
.lbq-ui .lbq-ui-toast--error { border-color: var(--lbq-color-danger); }
.lbq-ui .lbq-ui-toast--warning { border-color: var(--lbq-color-warning); }
.lbq-ui .lbq-ui-toast--info { border-color: var(--lbq-color-primary); }
.lbq-ui .lbq-ui-toast__message { margin: 0; color: var(--lbq-color-text); font-weight: var(--lbq-font-weight-strong); }
.lbq-ui .lbq-ui-toast__close { appearance: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--lbq-color-text-muted); font-size: var(--lbq-toast-close-size); line-height: 1; cursor: pointer; }
.lbq-ui .lbq-ui-toast__close:hover, .lbq-ui .lbq-ui-toast__close:focus-visible { color: var(--lbq-color-text); }
@media (max-width: 782px) {
	.lbq-ui.lbq-ui-toast-stack { right: var(--lbq-space-2); left: var(--lbq-space-2); width: auto; }
}
