@import '_content/Microsoft.FluentUI.AspNetCore.Components/Microsoft.FluentUI.AspNetCore.Components.wuc5ioiakb.bundle.scp.css';
@import '_content/Pulse.Components/Pulse.Components.9dy0mgxywd.bundle.scp.css';
@import '_content/Shared.Components/Shared.Components.8kcrwmdllo.bundle.scp.css';

/* /Pages/DemoSignIn.razor.rz.scp.css */
.demo-page[b-9fmwfpfjq0] {
    --header-height: 117px;
    --demo-content-width: 672px;

    --demo-bg-color: #F6FAFF;
    --demo-color-navy: #00375B;
    --demo-color-primary: #00658D;
    --demo-color-body: #3E4850;
    --demo-color-muted: rgba(62, 72, 80, 0.60);
    --demo-card-border: rgba(189, 200, 209, 0.10);
    --demo-card-icon-bg: #E9EEF4;
    --demo-shadow-active: 0 4px 12px rgba(18, 46, 94, 0.12);
    --demo-error-bg: #FFF1F0;
    --demo-error-border: #FFCCC7;
    --demo-error-color: #CF1322;

    display: flex;
    flex-direction: column;
    height: 100vh;
    font-family: Asap, serif;
    background: var(--demo-bg-color);
}

.decorative-element[b-9fmwfpfjq0] {
    background: linear-gradient(135deg, #BCDCBC 0%, #A8D8C2 25%, #75CCD1 50%, #24BAEA 75%, #01B2F2 100%);
    opacity: 0.1;
    border-radius: 12px;
    position: absolute;
    z-index: 0;
}

.top-decorative-element[b-9fmwfpfjq0] {
    width: 600px;
    height: 600px;
    right: 0;
    transform: translate(21.34%, calc(var(--header-height) - 27.2%));
}

.bottom-decorative-element[b-9fmwfpfjq0] {
    width: 400px;
    height: 400px;
    bottom: 0;
    left: 0;
    transform: translate(-32%, calc(-81px + 40.84%));
}


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

.demo-header[b-9fmwfpfjq0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 40px 32px;
    color: var(--demo-color-navy);
    background-color: var(--demo-bg-color);
    z-index: 0;
}

.demo-logo[b-9fmwfpfjq0] {
    width: 122px;
    height: 37px;
}

.demo-back-link[b-9fmwfpfjq0] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    color: var(--demo-color-navy);
}

    .demo-back-link:hover[b-9fmwfpfjq0] {
        color: var(--pl-semantic-primary-color-primary-hover);
    }

[b-9fmwfpfjq0] .demo-back-icon {
    font-size: 18px !important;
}

/* -------------------------Main----------------------------- */

.demo-main[b-9fmwfpfjq0] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 42px 0;
    backdrop-filter: blur(64px);
    overflow: hidden;
}

.demo-title[b-9fmwfpfjq0] {
    margin: 0 0 16px;
    color: var(--color-primary-dark-blue);
    font-size: 48px;
    font-weight: 700;
    line-height: 48px;
    letter-spacing: -1.2px;
    text-align: center;
}

.demo-subtitle[b-9fmwfpfjq0] {
    font-weight: 500;
    font-size: 18px;
    line-height: 28px;
    letter-spacing: 0;
    text-align: center;
    vertical-align: middle;
}

/* ------------------------- Error message ----------------------- */

.demo-error[b-9fmwfpfjq0] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 24px;
    padding: 12px 16px;
    background: var(--demo-error-bg);
    border: 1px solid var(--demo-error-border);
    border-radius: 8px;
    color: var(--demo-error-color);
    font-size: 14px;
    font-weight: 500;
    width: 100%;
    max-width: var(--demo-content-width);
}

[b-9fmwfpfjq0] .demo-error-icon {
    font-size: 18px !important;
    flex-shrink: 0;
}

/* ------------------------- Cards ---------------------------- */

.demo-cards[b-9fmwfpfjq0] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    max-width: var(--demo-content-width);
    margin-top: 48px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 8px;
}

.demo-card:focus[b-9fmwfpfjq0] {
    outline: none;
}

.demo-card[b-9fmwfpfjq0] {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 26px 24px;
    background: var(--pl-neutral-bg-color-bg-container);
    border: 1px solid var(--demo-card-border);
    border-radius: 8px;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    cursor: pointer;
    text-align: left;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
    width: 100%;
}

    .demo-card:hover:not(:disabled)[b-9fmwfpfjq0] {
        border-color: var(--pl-semantic-primary-color-primary-border);
        box-shadow: var(--demo-shadow-active);
    }

.demo-card--signing-in[b-9fmwfpfjq0] {
    border-color: var(--pl-semantic-primary-color-primary-border);
    box-shadow: var(--demo-shadow-active);
}

.demo-card--disabled[b-9fmwfpfjq0] {
    opacity: 0.45;
    cursor: default;
}

/* ------------------------ Card icon ----------------------  */

.demo-card-icon-wrapper[b-9fmwfpfjq0] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 8px;
    background: var(--demo-card-icon-bg);
}

[b-9fmwfpfjq0] .demo-card-icon {
    color: var(--demo-color-primary) !important;
    font-size: 25px !important;
}

/* ------------------------- Card text ----------------------- */

.demo-card-text[b-9fmwfpfjq0] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.demo-card-role[b-9fmwfpfjq0] {
    color: var(--demo-color-navy);
    font-size: 18px;
    font-weight: 600;
    line-height: 28px;
}

.demo-card-description[b-9fmwfpfjq0] {
    color: var(--demo-color-body);
    font-size: 14px;
    line-height: 20px;
}

.demo-card-chevron[b-9fmwfpfjq0] {
    color: #BDC8D1;
    flex-shrink: 0;
    width: 9px;
    height: 12px;
    opacity: 0.4;
}

[b-9fmwfpfjq0] .demo-card-spinner {
    color: var(--demo-color-primary);
    flex-shrink: 0;
}

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

.demo-footer[b-9fmwfpfjq0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 32px 32px;
    flex-wrap: wrap;
    gap: 8px;
    background-color: var(--demo-bg-color);
    z-index: 0;
}

.demo-footer-copyright[b-9fmwfpfjq0] {
    color: var(--demo-color-muted);
    font-size: 12px;
}

.demo-footer-links[b-9fmwfpfjq0] {
    display: flex;
    gap: 24px;
}

    .demo-footer-links a[b-9fmwfpfjq0] {
        color: var(--demo-color-muted);
        font-size: 12px;
        text-decoration: none;
    }

        .demo-footer-links a:hover[b-9fmwfpfjq0] {
            color: var(--pl-semantic-primary-color-primary-hover);
        }
/* /Pages/SignedOut.razor.rz.scp.css */
.logout-page[b-fn37nlkhz5] {
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.message[b-fn37nlkhz5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;
    margin: auto;
}

.logout-title[b-fn37nlkhz5] {
    color: var(--color-primary-dark-blue, #00375B);
    font-family: Asap;
    font-size: 32px;
    font-weight: 600;
    line-height: 40px;
    letter-spacing: -0.96px;
    margin: 0;
}

.logout-button[b-fn37nlkhz5] {
    display: flex;
    justify-content: center;
    align-items: center;
}

[b-fn37nlkhz5] .e-logout-btn {
    width: 200px;
    height: auto;
    margin-top: 10px;
    font-weight: 500;
    font-size: 20px;
    border-radius: 7px;
    padding: 10px 0;
}
/* /Pages/SignIn.razor.rz.scp.css */
.login-page[b-cxesdcxjws] {
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.connecting-state[b-cxesdcxjws] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 400px;
}

.waiting-text[b-cxesdcxjws] {
    margin-top: 20px;
    font-family: Asap, serif;
    font-size: 16px;
}

.login-corner-link[b-cxesdcxjws] {
    position: fixed;
    bottom: 24px;
    color: var(--color-primary-dark-blue, #00375B);
    font-family: Asap, serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: -0.05px;
    text-decoration: none;
}

.login-corner-link:hover[b-cxesdcxjws] {
    text-decoration: underline;
}

.login-corner-link-left[b-cxesdcxjws] {
    left: 24px;
}

.login-corner-link-right[b-cxesdcxjws] {
    right: 24px;
}
/* /View/Components/BlockComponents/DagComponents/PlDagButtonBar.razor.rz.scp.css */
.dag-button-bar[b-jtajj3he9i] {
    display: flex;
    flex-direction: row;
    gap: 1px;
    padding: 0;
    width: 100%;
    height: 100%;
    align-items: stretch;
    justify-content: flex-end;
}

.dag-button[b-jtajj3he9i] {
    aspect-ratio: 1;
    height: 100%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
    border: none;
    outline: none;
    border-radius: 2px;
    transition: all 0.2s ease;
    background: transparent;
    padding: 0;
}

.dag-button:hover[b-jtajj3he9i] {
    background: var(--color-neutral-lighter, #e1dfdd);
}


.dag-button-delete .pl-icon-awesome[b-jtajj3he9i] {
    font-size: 10px;
}

.dag-button:disabled[b-jtajj3he9i] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /View/Components/BlockComponents/DagComponents/PlDagDragBar.razor.rz.scp.css */
.dag-drag-bar[b-2h2ghjkllw] {
    width: 100%;
    height: 100%;
    background: var(--color-neutral-light, #f3f2f1);
    border: none;
    border-right: var(--dag-border-width, 1px) solid var(--color-border, #ccc);
    border-radius: 1px 0 0 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.dag-drag-bar-movable[b-2h2ghjkllw] {
    width: 100%;
    height: 100%;
    background: var(--color-neutral-light, #f3f2f1);
    border: none;
    border-right: var(--dag-border-width, 1px) solid var(--color-border, #ccc);
    border-radius: 1px 0 0 1px;
    cursor: url('icons/cursors/hand.png') 2 2, grab;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.dag-drag-bar-movable:active[b-2h2ghjkllw] {
    cursor: url('icons/cursors/hand-back-fist.png'), grabbing;
}

.dag-drag-dots[b-2h2ghjkllw] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    align-items: center;
}

.drag-dot[b-2h2ghjkllw] {
    width: 3px;
    height: 3px;
    background: var(--color-neutral-dark, #aaa);
    border-radius: 50%;
    display: block;
}

.dag-drag-bar-movable:hover[b-2h2ghjkllw] {
    background: var(--color-neutral-lighter, #e1dfdd);
}
/* /View/Components/BlockComponents/DagComponents/PlDagLink.razor.rz.scp.css */
.dag-link[b-ewdyk30xh0] {
    position: absolute;
    background-color: var(--color-neutral-dark, gray);
    pointer-events: none;
    z-index: 0;
}

.dag-link-vertical[b-ewdyk30xh0] {
    width: 1px;
}

.dag-link-horizontal[b-ewdyk30xh0] {
    height: 1px;
}
/* /View/Components/BlockComponents/DagComponents/PlDagMenu.razor.rz.scp.css */
.pl-dag-drag-bar[b-41oh1ozfur] {
    background: var(--color-neutral-light, #f3f2f1);
    border-right: 1px solid var(--color-border, #ccc);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    z-index: 2; /* Ensure drag bar renders above data fields */
}

.pl-dag-drag-bar.movable[b-41oh1ozfur] {
    cursor: move;
    cursor: grab;
}

.pl-dag-drag-bar.movable:active[b-41oh1ozfur] {
    cursor: grabbing;
}

.pl-dag-drag-bar.movable:hover[b-41oh1ozfur] {
    background: var(--color-neutral-lighter, #e1dfdd);
}

.dag-drag-dots[b-41oh1ozfur] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    align-items: center;
}

.drag-dot[b-41oh1ozfur] {
    width: 3px;
    height: 3px;
    background: var(--color-neutral-dark, #666);
    border-radius: 50%;
    display: block;
}

.pl-dag-buttons-bar[b-41oh1ozfur] {
    display: flex;
    flex-direction: row;
    gap: 1px;
    margin: 0;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
    flex-grow: 0;
    box-sizing: border-box;
    border: 1px solid var(--color-border, #ccc);
    border-radius: 2px;
    padding: 1px;
    z-index: 2;
}

.pl-dag-button:hover[b-41oh1ozfur] {
    background: var(--color-neutral-light, #f3f2f1);
    border-color: var(--color-primary, #0078d4);
    transform: scale(1.05);
}

.pl-dag-button:active[b-41oh1ozfur] {
    background: var(--color-neutral-lighter, #e1dfdd);
    transform: scale(0.95);
}


.pl-dag-button:disabled[b-41oh1ozfur] {
    opacity: 0.4;
    cursor: not-allowed;
}

.pl-dag-button:disabled:hover[b-41oh1ozfur] {
    background: var(--color-background, white);
    border-color: var(--color-border, #ccc);
    transform: none;
}
/* /View/Components/BlockComponents/DagComponents/PlDagNode.razor.rz.scp.css */
.dag-node-container[b-b87595ed23] {
    position: absolute;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.dag-node-row[b-b87595ed23] {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    border: 1px solid var(--color-border, #ccc);
    background: var(--color-background, white);
    box-sizing: border-box;
}

.dag-node-row.dag-node-marked[b-b87595ed23] {
    border: 2px solid var(--color-primary, #0078d4);
    border-color: var(--color-highlight, #0078d4);
}

.dag-node-content[b-b87595ed23] {
    flex: 1;
    display: flex;
    align-items: stretch;
    min-width: 0; /* Allow flexbox to shrink */
}

.dag-collapse-container[b-b87595ed23] {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 5px;
    margin-bottom: 5px;
}
/* /View/Components/BlockComponents/PlCollapseExpand.razor.rz.scp.css */
/* Standard collapse/expand using Font Awesome */
.pl-expanded[b-5sdnfqurp2]::before {
    content: '\f107';
}

.pl-collapsed[b-5sdnfqurp2]::before {
    content: '\f105';
}

.pl-expanded[b-5sdnfqurp2], .pl-collapsed[b-5sdnfqurp2] {
    cursor: pointer;
    color: black;
    font-size: 10px;
    font-family: 'Font Awesome 6 Pro';
}

/* DAG-specific styling - pill-shaped button matching desktop GDI+ rendering */
.pl-collapse-expand-dag[b-5sdnfqurp2] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: white;
    border: 1px solid var(--color-neutral-dark, gray);
    border-radius: 999px;
    cursor: pointer;
    box-sizing: border-box;
    user-select: none;
    -webkit-user-select: none;
    width: 100%;
    height: 100%;
}

/* Plus/minus symbol using CSS - replaces Font Awesome for DAG */
.pl-collapse-expand-dag[b-5sdnfqurp2]::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

/* Plus sign when collapsed (vertical + horizontal lines) */
.pl-collapse-expand-dag.pl-collapsed[b-5sdnfqurp2]::before {
    background: linear-gradient(var(--color-neutral-dark, gray), var(--color-neutral-dark, gray)) center/2px 12px no-repeat,
                linear-gradient(var(--color-neutral-dark, gray), var(--color-neutral-dark, gray)) center/12px 2px no-repeat;
}

/* Minus sign when expanded (horizontal line only) */
.pl-collapse-expand-dag.pl-expanded[b-5sdnfqurp2]::before {
    background: linear-gradient(var(--color-neutral-dark, gray), var(--color-neutral-dark, gray)) center/12px 2px no-repeat;
}

.pl-collapse-expand-count[b-5sdnfqurp2] {
    font-family: 'Arial', sans-serif;
    font-weight: bold;
    font-size: 14px;
    color: var(--color-neutral-dark, gray);
    line-height: 1;
}

.pl-collapse-expand-dag:hover[b-5sdnfqurp2] {
    background: var(--color-neutral-lightest, #f5f5f5);
    border-color: var(--color-primary, #0078d4);
}

.pl-collapse-expand-dag:hover .pl-collapse-expand-count[b-5sdnfqurp2] {
    color: var(--color-primary, #0078d4);
}

.pl-collapse-expand-dag.pl-collapsed:hover[b-5sdnfqurp2]::before {
    background: linear-gradient(var(--color-primary, #0078d4), var(--color-primary, #0078d4)) center/2px 12px no-repeat,
                linear-gradient(var(--color-primary, #0078d4), var(--color-primary, #0078d4)) center/12px 2px no-repeat;
}

.pl-collapse-expand-dag.pl-expanded:hover[b-5sdnfqurp2]::before {
    background: linear-gradient(var(--color-primary, #0078d4), var(--color-primary, #0078d4)) center/12px 2px no-repeat;
}
/* /View/Components/BlockComponents/PlDataAreaBlock.razor.rz.scp.css */
/* Status Indicator — Context B (inline data-area row, no surrounding tile chrome).
   Documented in docs/client_functionality/module_layout/status_indicator.md.
   The customizing model is semantic (`StatusIndicator`); the current visual treatment is a
   coloured left-edge bar, but the indication strategy is decided here on the client and may
   evolve without changing the customizing.
   Width and radius are theme-driven; colour comes from --pl-status-indicator-color set
   inline on the element from the resolved data field's symbol border colour.
   The element's height excludes the area-end / record-separator gap (PlDataAreaBlock.razor
   moves that contribution into margin-bottom), so the border-left does not bleed across the
   inter-row gap.
   Context A (dashboard tile leaf) is handled in PlTileContainer.razor.css, where the same
   class lives on a leaf already chromed by the tile container — there the bar overlays the
   chrome's left edge instead of standing alone. */
.pl-dataareablock.pl-status-indicator[b-6bu03q3xyt] {
    border-left: var(--pl-status-indicator-width, 4px) solid var(--pl-status-indicator-color, transparent);
    border-radius: var(--pl-status-indicator-radius, 4px);
}

/* Customizing-error indicator — only emitted by the renderer when Session.IsCustomizer = true
   AND DataAreaCustomizing.ConfigurationError is populated by DataAreaCustomizingMapper. End
   users never see this; it's a customizer-only signal so a broken JSON / rejected combo
   surfaces visually instead of looking like a layout regression. The hover tooltip on the
   wrapper carries the parser's error message. */
.pl-customizing-error[b-6bu03q3xyt] {
    outline: 2px dashed var(--pl-semantic-error-color-error, #C22704);
    outline-offset: -2px;
    min-height: 24px;
    position: relative;
}

.pl-customizing-error-badge[b-6bu03q3xyt] {
    position: absolute;
    top: 2px;
    right: 4px;
    z-index: 1000;
    padding: 1px 6px;
    border-radius: 3px;
    background: var(--pl-semantic-error-color-error, #C22704);
    color: #FFFFFF;
    font-size: 11px;
    font-weight: 600;
    line-height: 14px;
    pointer-events: none;
}
/* /View/Components/BlockComponents/PlDfBlock.razor.rz.scp.css */
.pl-block[b-de5f3rqdca] {
    position: absolute;
}

.mask-title-rect[b-de5f3rqdca] {
    position: absolute;
    pointer-events: none;
}

/* Record-level D&D highlight styles (dd-source, dd-target, dd-target-ahead/behind)
   live in wwwroot/css/ddstyles.css next to the other drag-and-drop styles. */

/* DAG-specific styling */
.pl-dag-datafield-block[b-de5f3rqdca] {
    border: none !important;
    box-sizing: border-box;
}

/* Data fields styling for DAG blocks */
.pl-dag-datafield-block .pl-df[b-de5f3rqdca] {
    box-sizing: border-box;
}

.pl-dag-datafield-block[b-de5f3rqdca]::before {
    /* Border that wraps around the entire DAG node */
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    border-style: solid;
    border-color: var(--color-border, #ccc);
    border-width: var(--dag-border-width, 1px);
    border-radius: 2px;
    pointer-events: none;
    box-sizing: border-box;
}

/* Marked DAG blocks have thicker border */
.pl-dag-datafield-block[data-marked="true"][b-de5f3rqdca]::before {
    border-color: var(--color-primary, #0078d4);
}

/* DAG content area wrapper - fixed height to prevent button bar overlap */
.pl-dag-content-area[b-de5f3rqdca] {
    position: relative;
    margin: 0;
    padding: 0;
    overflow: hidden; /* Clip content to bounds */
    flex-shrink: 0; /* Don't shrink the content area */
    flex-grow: 0; /* Don't grow the content area */
}
/* /View/Components/BlockComponents/PlFlexDataAreaBlock.razor.rz.scp.css */
/* Flex DA layout. Documented in docs/client_functionality/module_layout/flex_layout.md.
   The body's flex-direction comes from the DAC Layout (Horizontal/Vertical) and is set as an
   inline style on .pl-flex-da-body. The title-area direction is decided by Position
   (Top/Bottom -> row, Start/End -> column) and is also set inline.
   Per-child Alignment is realised with margin-auto on the leading/trailing axis: the first
   End-aligned child gets margin-{leading}: auto so all start-aligned items stay packed at the
   start and the end-aligned items flow to the end. Center alignment uses auto-margins on both
   sides of the centered child. */

.pl-flex-da[b-xw8x3etdeb] {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    /* Padding defaults to the previous hardcoded 4 px 8 px so existing customizings without
       Items.Padding render identically. An inline `padding: …;` emitted by
       PlFlexDataAreaBlock.BuildPaddingStyle from the DAC's `Items.Padding` JSON overrides this
       variable (inline style beats variable substitution under CSS cascade rules). */
    padding: var(--pl-flex-da-padding, 4px 8px);
    /* Soft 4 px corner matching the figma "Frame 31" card (898:15004). Safe to emit on every
       flex DA — the radius is only visible when the area has a non-transparent background or
       a non-zero border, both of which come from the customizing's frame symbol via the
       .pl-symbol-{uid} class, or from JSON Items.Border. A DA without a configured frame
       paints nothing here. */
    border-radius: var(--pl-flex-da-radius, 4px);
}

/* Without a title area the outer wrapper IS the body container; flex-direction is on the body. */
.pl-flex-da:not(.pl-flex-da-with-title)[b-xw8x3etdeb] {
    /* The wrapper has no internal layout role; the body sub-container does the work. */
    flex-direction: column;
}

/* Per-row chrome for flex DAs that are themselves rendered as a row inside *another* flex
   DA's body — i.e. nested rows in the "Zuletzt angesehen" widget figma. The .pl-flex-da-row
   class is emitted by PlFlexDataAreaBlock when the block's parent is a FlexDataAreaBlock.
   A module-root or tile-leaf flex DA does not carry the class — its surrounding chrome
   (module wrapper or tile padding) already supplies the outer padding and the title-area
   negative margins assume an unpadded root.

   Geometry only (padding, corner radius, sibling gap) lives here. The card's
   background-color, border-color, border-width and border-pattern come from the row DAC's
   FrameSymbols[W1] via the .pl-symbol-{uid} class that PlFlexDataAreaBlock co-emits on the
   same root — same source DfBlock.PaintDaFrame uses for the classic absolute-position DA
   frame. A row with the default (transparent/0-width) frame symbol therefore looks like an
   unstyled stack; a customizer dresses the row card by assigning a frame symbol with the
   wanted background + border to the row DAC. */
.pl-flex-da-row[b-xw8x3etdeb] {
    padding: var(--pl-flex-da-row-padding-y, 4px) var(--pl-flex-da-row-padding-x, 8px);
    border-radius: var(--pl-flex-da-row-radius, 4px);
}

/* Inter-row spacing between nested flex DAs is now JSON-driven: the row DAC declares
   `Items.Margin` to open a gap on the matching edge. The previous hardcoded `margin-top: 4px`
   rule (and the corresponding `RecordSeparatorSymbols`-suppression rule) were removed so the
   customizing fully owns spacing — a flex DA without `Items.Margin` produces no gap and packs
   right against its sibling, which matches the JSON-only model. The parent's `Items.Gap` (on
   .pl-flex-da-body) handles the body's gap; here we only governed extra spacing between row
   *cards* and that is now `Items.Margin` on each card. */

/* Title-area positioning: outer wrapper is a flex container; title and body are siblings. */
.pl-flex-da-with-title[b-xw8x3etdeb] {
    flex-direction: column;
}

.pl-flex-da-title-top[b-xw8x3etdeb]    { flex-direction: column; }
.pl-flex-da-title-bottom[b-xw8x3etdeb] { flex-direction: column-reverse; }
.pl-flex-da-title-start[b-xw8x3etdeb]  { flex-direction: row; }
.pl-flex-da-title-end[b-xw8x3etdeb]    { flex-direction: row-reverse; }

.pl-flex-da-title[b-xw8x3etdeb],
.pl-flex-da-body[b-xw8x3etdeb] {
    display: flex;
    box-sizing: border-box;
}

.pl-flex-da-body[b-xw8x3etdeb] {
    flex: 1 1 auto;
    /* flex-direction / gap / align-items come from the inline style emitted by the renderer. */
}

.pl-flex-da-title[b-xw8x3etdeb] {
    flex: 0 0 auto;
    /* Default spacing between title items when TitleArea.Gap is not authored (authored values come as inline style). */
    gap: var(--pl-flex-da-title-gap, 8px);
    /* Match the figma's 49 px title bar height with content offset toward the bottom edge so
       the heading sits just above the separator. align-items (cross axis) is set inline from
       the customizing CrossAlignment; padding here only adjusts main-axis breathing room. */
    padding-bottom: var(--pl-flex-da-title-padding-bottom, 8px);
    min-height: var(--pl-flex-da-title-min-height, 33px);
}

/* Extend the title past the surrounding tile padding so the separator line spans the full
   widget width edge-to-edge, matching the figma design. The cross-axis padding on the title
   restores the inner content position so headings stay aligned with body content. The
   --pl-tile-padding fallback mirrors the default in PlTileContainer.razor.css. */
.pl-flex-da-title-top    > .pl-flex-da-title[b-xw8x3etdeb],
.pl-flex-da-title-bottom > .pl-flex-da-title[b-xw8x3etdeb] {
    margin-left: calc(-1 * var(--pl-tile-padding, 16px));
    margin-right: calc(-1 * var(--pl-tile-padding, 16px));
    padding-left: var(--pl-tile-padding, 16px);
    padding-right: var(--pl-tile-padding, 16px);
}

.pl-flex-da-title-start > .pl-flex-da-title[b-xw8x3etdeb],
.pl-flex-da-title-end   > .pl-flex-da-title[b-xw8x3etdeb] {
    margin-top: calc(-1 * var(--pl-tile-padding, 16px));
    margin-bottom: calc(-1 * var(--pl-tile-padding, 16px));
    padding-top: var(--pl-tile-padding, 16px);
}

/* Title chrome: spacing between the title and the body, plus the theme-driven 1px separator
   line that matches the Figma widget chrome. Both live on the title (not the body) so they
   apply once per widget regardless of how many nested flex DAs the body contains, and so the
   direction follows the title's position automatically: Top -> bottom edge, Bottom -> top edge,
   Start -> right edge, End -> left edge. The separator colour comes from the same chrome
   variable as the tile's inset border, so themes that re-skin tile chrome get it for free. */
.pl-flex-da-title-top    > .pl-flex-da-title[b-xw8x3etdeb] { margin-bottom: var(--pl-flex-da-title-spacing, 12px); border-bottom: var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-flex-da-title-bottom > .pl-flex-da-title[b-xw8x3etdeb] { margin-top:    var(--pl-flex-da-title-spacing, 12px); border-top:    var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-flex-da-title-start  > .pl-flex-da-title[b-xw8x3etdeb] { margin-right:  var(--pl-flex-da-title-spacing, 12px); border-right:  var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-flex-da-title-end    > .pl-flex-da-title[b-xw8x3etdeb] { margin-left:   var(--pl-flex-da-title-spacing, 12px); border-left:   var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }

/* Per-child wrapper. Defaults to start alignment with intrinsic size. */
.pl-flex-item[b-xw8x3etdeb] {
    display: flex;
    box-sizing: border-box;
    flex: 0 0 auto;
    min-width: 0;
    min-height: 0;
}

/* Inherited var: widens hug-by-default controls (PlButton) to fill a stretched cell; both size classes declare it so the nearest cell wins on nesting. */
.pl-flex-size-stretch[b-xw8x3etdeb] {
    flex: 1 1 auto;
    --pl-flex-btn-width: 100%;
}

/* When the wrapper is stretching to fill its share of the outer flex DA, its single inner
   element (PlDataField, PlEmbeddedModule, nested PlFlexDataAreaBlock, …) must also fill the
   wrapper on the main axis. Otherwise the wrapper grows but the field stays at content width
   and the user-visible cell sits inside a mostly-empty stretched cell. .pl-flex-item is a flex
   container (row direction), so the child claims main-axis space via flex-grow; min-width: 0
   keeps single-line content ellipsifying instead of forcing the wrapper open past its share.
   No effect in the Auto-size case — the wrapper is content-sized so there's nothing to
   distribute. ::deep is required because the child belongs to another component's scope. */
.pl-flex-item.pl-flex-size-stretch[b-xw8x3etdeb]  > * {
    flex: 1 1 auto;
    min-width: 0;
}

.pl-flex-size-auto[b-xw8x3etdeb] {
    flex: 0 0 auto;
    --pl-flex-btn-width: fit-content;
}

/* End group: only the first item gets the auto margin; the rest reset it, else flex splits the free space and spreads them. */
.pl-flex-da-body[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]              { margin-left: auto; }
.pl-flex-da-body[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-left: 0; }
.pl-flex-da-body[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]              { margin-top:  auto; }
.pl-flex-da-body[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-top:  0; }

/* Center alignment uses auto-margins on both sides of the centered cluster. */
.pl-flex-da-body[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-left: auto; margin-right: auto; }
.pl-flex-da-body[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-top:  auto; margin-bottom: auto; }

/* Same alignment scheme inside the title area. */
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]              { margin-left: auto; }
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-left: 0; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]              { margin-top:  auto; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-top:  0; }
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-left: auto; margin-right: auto; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-top:  auto; margin-bottom: auto; }

/* Tree / recursive data area: self-field row + chevron above an indented column of child areas.
   See flex_layout.md "Tree / recursive data area". */

/* Self row: chevron on the left, the node's own field cluster on the right. */
.pl-flex-da-tree-self[b-xw8x3etdeb] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--pl-flex-da-tree-chevron-gap, 4px);
}

/* Field cluster: flows in the DAC Layout direction (set inline). */
.pl-flex-da-tree-self-fields[b-xw8x3etdeb] {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    box-sizing: border-box;
}

/* Collapse chevron — the design-system chevron SVG (figma "chevron-down" 1787:738), masked so
   --pl-flex-da-tree-chevron-color drives the colour. Collapsed points right; expanded rotates down. */
.pl-flex-da-tree-chevron[b-xw8x3etdeb] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--pl-flex-da-tree-chevron-size, 14px);
    height: var(--pl-flex-da-tree-chevron-size, 14px);
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

.pl-flex-da-tree-chevron[b-xw8x3etdeb]::before {
    content: "";
    width: var(--pl-flex-da-tree-chevron-size, 14px);
    height: var(--pl-flex-da-tree-chevron-size, 14px);
    background-color: var(--pl-flex-da-tree-chevron-color, #6A778B);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M13.0594 7.99995L12.5281 7.4687L6.53125 1.4687L6 0.937451L4.94063 1.99995L5.47188 2.5312L10.9406 7.99995L5.46875 13.4687L4.9375 14L6 15.0593L6.53125 14.5281L12.5312 8.5312L13.0625 7.99995H13.0594Z' fill='%23000'/%3E%3C/svg%3E") center / var(--pl-flex-da-tree-chevron-size, 14px) var(--pl-flex-da-tree-chevron-size, 14px) no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M13.0594 7.99995L12.5281 7.4687L6.53125 1.4687L6 0.937451L4.94063 1.99995L5.47188 2.5312L10.9406 7.99995L5.46875 13.4687L4.9375 14L6 15.0593L6.53125 14.5281L12.5312 8.5312L13.0625 7.99995H13.0594Z' fill='%23000'/%3E%3C/svg%3E") center / var(--pl-flex-da-tree-chevron-size, 14px) var(--pl-flex-da-tree-chevron-size, 14px) no-repeat;
    transition: transform 0.15s ease;
}

.pl-flex-da-tree-chevron.pl-expanded[b-xw8x3etdeb]::before { transform: rotate(90deg); }

/* Children column: nested child areas stacked and indented one level. */
.pl-flex-da-tree-children[b-xw8x3etdeb] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--pl-flex-da-tree-row-gap, 0px);
    padding-left: var(--pl-flex-da-tree-indent, 20px);
}

/* An empty (fieldless) tree node renders no chevron/self-row, so its children stay flush. */
.pl-flex-da-tree-children-flush[b-xw8x3etdeb] {
    padding-left: 0;
}

/* Per-child alignment inside the self-field row uses the same auto-margin buckets as the body. */
.pl-flex-da-tree-self-fields[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]    { margin-left: auto; }
.pl-flex-da-tree-self-fields[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-left: 0; }
.pl-flex-da-tree-self-fields[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb]    { margin-top:  auto; }
.pl-flex-da-tree-self-fields[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xw8x3etdeb] { margin-top: 0; }
.pl-flex-da-tree-self-fields[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-left: auto; margin-right: auto; }
.pl-flex-da-tree-self-fields[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-center[b-xw8x3etdeb] { margin-top:  auto; margin-bottom: auto; }

/* PlDataField's flex-flow reset flattens the inner datafield-customizing div to static/auto, which
   collapses a listbox (it needs that div to fill the .pl-df cell and anchor the dropdown icon).
   Restore the fill/anchor for listbox items. */
.pl-flex-item-listbox[b-xw8x3etdeb]  .pl-df > div[class*="datafield-customizing-"] {
    position: absolute !important;
    inset: 0 !important;
}

/* Title-area listboxes render with the figma select chrome (Redesign file node 1186:6198); main-axis sizing stays customizing-driven (Flex.Size), min-width is the floor for Auto cells whose absolute input has no intrinsic width. Mirrored in PlTileEmbeddedCell.razor.css for lifted titles. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb] {
    align-self: center;
    height: 32px;
    min-width: 117px;
}

/* The dropdown's Adaptive width measures .pl-df (the MudPopover anchor); flow mode collapses it to 0, so pin it to the wrapper — !important beats PlDataField's inline width: auto. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-df {
    width: 100% !important;
}

/* !important beats the symbol-driven chrome (SymbolCssGenerator emits border/background with !important). */
.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-input-popover-container {
    box-sizing: border-box;
    background-color: #FFFFFF !important;
    border: 1px solid var(--pl-flex-title-select-border, #C4CBDA) !important;
    border-radius: 4px;
    padding-left: 12px;
    padding-right: 30px;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-input-field {
    font-size: 14px;
    line-height: 22px;
    color: var(--pl-flex-title-select-color, #0D1A26);
}

/* The ddl icon is the popover's only open trigger — stretch it over the whole select (native-select click behaviour) and repaint its FA caret as the figma chevron. z-index beats the input's 1. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-popover-icon.ddl-icon {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 3.75l4.5 4.5 4.5-4.5' fill='none' stroke='%238A95A8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 12px;
    cursor: pointer;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-popover-icon.ddl-icon::before {
    content: none;
}

/* Neutralize the sheet listbox's hover fill — it would flood the whole stretched select. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xw8x3etdeb]  .pl-popover-icon.ddl-icon:hover {
    background-color: transparent;
}

/* Static text label — emitted by the body when a DF carries Flex.ShowTitle = true together
   with the default RenderStyle.
   The wrapper is just a span whose font / colour come from the field's symbol class
   (pl-symbol-{uid}); this rule supplies the same symmetric horizontal padding the regular
   flex DF chain gets via .pl-df-flow .pl-datafield-content, so a TitleText label visually
   aligns with neighbouring fields in the row. The flex-item participation comes from the
   wrapping .pl-flex-item div emitted by the renderer around it. */
.pl-flex-da-static-label[b-xw8x3etdeb] {
    padding-left: var(--spacing-field-padding, 3px);
    padding-right: var(--spacing-field-padding, 3px);
}

/* Fallback title — rendered as a synthetic flex item when the host DAC has a TitleArea but no
   Flex.InTitle DFs and the body hosts an embedded module. Picks up the heading typography from
   theme variables; alignment / size buckets come from the regular .pl-flex-align-* /
   .pl-flex-size-* classes already on the wrapper. Documented in
   docs/client_functionality/module_layout/embedded_module.md#default-title-text--module-name. */
.pl-flex-da-title-fallback[b-xw8x3etdeb] {
    align-self: center;
    font-family: var(--pl-flex-da-title-fallback-font-family, 'Asap', sans-serif);
    font-size: var(--pl-flex-da-title-fallback-font-size, 20px);
    font-weight: var(--pl-flex-da-title-fallback-font-weight, 600);
    line-height: var(--pl-flex-da-title-fallback-line-height, 28px);
    color: var(--pl-flex-da-title-fallback-color, #0d1a26);
}

/* Status Indicator — Context B (inline flex DA, no surrounding tile chrome).
   Mirrors the rule on .pl-dataareablock in PlDataAreaBlock.razor.css. The same custom
   property `--pl-status-indicator-color` is set inline on the root .pl-flex-da element by
   PlFlexDataAreaBlock.razor when DataArea.Customizing.StatusIndicator resolves to a colour.
   Width and radius come from the same theme variables as the regular DA renderer.
   Context A (flex DA used as a dashboard tile leaf) is still picked up by the existing
   `::deep > .pl-block.pl-status-indicator` rules in PlTileContainer.razor.css because the
   root .pl-flex-da carries the .pl-block class. */
.pl-flex-da.pl-status-indicator[b-xw8x3etdeb] {
    border-left: var(--pl-status-indicator-width, 4px) solid var(--pl-status-indicator-color, transparent);
    border-radius: var(--pl-status-indicator-radius, 4px);
}

/* Action affordance — applied when FlexLayoutInfo.Action resolves to a child DF's CU_Name.
   Emits a click target across the whole area (handler bound in PlFlexDataAreaBlock.razor),
   paints a grey hover background to signal interactability, and switches text-based child DFs
   (TextInput / TextOutput / Hyperlink, marked .pl-flex-item-text by the renderer) to the
   primary text colour on hover. The .pl-flex-item-no-action-hover opt-out (from
   FlexItemInfo.IgnoreActionHover) lets individual fields keep their own symbol colour — e.g. a
   muted "2 hours ago" caption inside an actionable row.

   The colour override carries !important because .pl-symbol-{uid}, generated by
   SymbolCssGenerator, already sets `color` with !important; specificity alone won't win. The
   ::deep combinator reaches across Blazor's scoped-CSS isolation into the child DataField
   component subtree where .pl-datafield-content lives. */
.pl-flex-da.pl-flex-da-action[b-xw8x3etdeb] {
    cursor: pointer;
    border-radius: var(--pl-flex-da-radius, 4px);
}

.pl-flex-da.pl-flex-da-action:hover[b-xw8x3etdeb] {
    background-color: var(--pl-flex-da-action-hover-bg, var(--pl-neutral-bg-color-bg-text-hover, #DCE0EA));
}

.pl-flex-da.pl-flex-da-action:hover .pl-flex-item-text:not(.pl-flex-item-no-action-hover)[b-xw8x3etdeb],
.pl-flex-da.pl-flex-da-action:hover .pl-flex-item-text:not(.pl-flex-item-no-action-hover)[b-xw8x3etdeb]  .pl-datafield-content,
.pl-flex-da.pl-flex-da-action:hover .pl-flex-item-text:not(.pl-flex-item-no-action-hover)[b-xw8x3etdeb]  .pl-datafield-content > * {
    color: var(--pl-flex-da-action-hover-fg, var(--pl-semantic-primary-color-primary-text, #0070B5)) !important;
}

/* General DF radius inside flex layouts — every <see cref="PlDataField"/> wrapper picks up the
   design-system 4 px corner so any field that paints its own background (via the
   pl-symbol-{uid} class generated by SymbolCssGenerator or the inline background-color from
   GetBackgroundColor on PlDataField) renders as a soft-cornered rectangle instead of a sharp
   one. Matches the figma row chrome (898:14861). Has no visible effect on text-only fields
   that don't paint a background, which is fine — the rule is cheap and keeps the radius
   uniform for any future bg-painting field. */
.pl-flex-da[b-xw8x3etdeb]  .pl-df {
    border-radius: var(--pl-flex-df-radius, 4px);
}

/* Icon tile chrome — figma "Group10 / Icon Project". Triggered by the .pl-flex-bg-tile marker
   emitted on the wrapping .pl-flex-item by the renderer when the item is a Background DF
   carrying a DataFieldBackgroundValue.BinaryUid OR an ImageButton DF carrying a
   DataFieldButtonValue.BinaryUid. Both render the same way visually; the difference is only
   that ImageButton fires a click action. The marker is the only way to identify these cases
   from the wrapper without :has(), which would otherwise need to peek across the Blazor scope
   boundary into the inner PlBackground / PlImageButton components.

   Inflate-outward sizing: the chrome auto-sizes to (icon natural size + 8 px inset on every
   side) so the figma proportions hold regardless of how the customizer authored the rect.
   The authored df_width/df_height is preserved as a *minimum* by DfItemStyle emitting
   min-width/min-height (see PlFlexDataAreaBlock.razor) — a customizer wanting a larger tile
   can still force one, but a small authored rect won't crush the icon. We therefore drop the
   inline width/height pinned by DfItemStyle and PlDataField's PositionStyle on .pl-flex-item
   and .pl-df by overriding back to auto, then let .pl-background-df / .pl-image-button-df
   reach their natural sizes through the chain. The .pl-flex-item / .pl-df relaxation only
   fires for bg-tile items, so every other DF keeps the absolute-positioning contract
   unchanged.

   Structural difference between the two render paths: PlBackground wraps its <img> in a
   <div> that carries the .pl-background-df class — the chrome (padding + radius) lives on that
   wrapper and the inner img stays at intrinsic size. PlImageButton renders the <img> directly
   as the DF root with the .pl-image-button-df class on the img — the chrome lives on the img
   itself, and the inline width/height (no !important when FlowLayout cascades in, see
   PlImageButton.razor) gets overridden by `width: auto` from this rule so the img can grow to
   (intrinsic icon + padding). */
.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb] {
    width: auto !important;
    height: auto !important;
}

.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb]  .pl-df {
    position: static !important;
    width: auto !important;
    height: auto !important;
    top: auto !important;
    left: auto !important;
}

.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb]  .pl-background-df,
.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb]  .pl-image-button-df {
    width: auto;
    height: auto;
    box-sizing: border-box;
    border-radius: var(--pl-flex-bg-tile-radius, 4px);
    padding: var(--pl-flex-bg-tile-padding, 8px);
}

.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb]  .pl-background-df {
    display: flex;
    align-items: center;
    justify-content: center;
}

.pl-flex-item.pl-flex-bg-tile[b-xw8x3etdeb]  .pl-background-df > img {
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
    flex: 0 0 auto;
}

/* Pin Tag pills to their intrinsic content height. The wrapping .pl-flex-item is a flex
   container with the default align-items: normal (→ stretch in a flex context), which would
   otherwise grow the Tag to the wrapper's full cross-axis height (= row height when the body's
   CrossAlignment is Stretch). The wrapper itself still stretches to the row so the
   action-hover area in .pl-flex-da-action keeps covering the whole row — only the Tag inside
   is centered.

   The rule must live here rather than in PlFlexTagItem.razor.css because PlFlexTagItem's
   root element IS the Ant <Tag> Blazor component, so the scope attribute never reaches the
   rendered DOM and ::deep selectors from that file have no scoped ancestor to chain from. The
   .pl-flex-item wrapper, on the other hand, carries this component's scope, so ::deep from
   here resolves to `[b-XXX] .pl-flex-item .pl-flex-tag.ant-tag` and matches. */
.pl-flex-item[b-xw8x3etdeb]  .pl-flex-tag.ant-tag {
    align-self: center;
}

/* Round effect — matches the non-flex .pl-effect-round behaviour from pl-site.css for fields
   inside flex DAs. The marker class .pl-flex-item-round is emitted on the wrapping
   .pl-flex-item by PlFlexDataAreaBlock.RoundEffectClass when the DF declares an
   EffectType.Round entry in its EffectsManager. Without this rule the flex-specific 4 px
   radii defined above (`.pl-flex-da ::deep .pl-df` and the icon-tile chrome) win on
   specificity over the global single-class .pl-effect-round and the Round effect appears
   inert in flex layouts.

   Placed at the end of the file so the source-order tie-break wins against the equal-
   specificity icon-tile rule on .pl-background-df / .pl-image-button-df. */
.pl-flex-item.pl-flex-item-round[b-xw8x3etdeb]  .pl-df,
.pl-flex-item.pl-flex-item-round[b-xw8x3etdeb]  .pl-background-df,
.pl-flex-item.pl-flex-item-round[b-xw8x3etdeb]  .pl-image-button-df {
    border-radius: 50%;
}
/* /View/Components/BlockComponents/PlRootBlock.razor.rz.scp.css */
.pl-root[b-x1q6e85wz1] {
    position: relative;
    overflow: hidden;
    min-width: 100%;
}

.pl-root.pl-main[b-x1q6e85wz1] {
    overflow: visible !important;
    z-index: var(--z-index-main-root);
}

.pl-root.pl-fixed-top[b-x1q6e85wz1],
.pl-root.pl-fixed-bottom[b-x1q6e85wz1],
.pl-root.pl-main-fixed-headers[b-x1q6e85wz1] {
    background: white;
    z-index: var(--z-index-fixed-root);
    min-width: 100%;
    width: fit-content;
}

.pl-root.pl-main-fixed-headers[b-x1q6e85wz1] {
    background: #F3F4F5;
}

.pl-root.pl-fixed-bottom[b-x1q6e85wz1] {
    margin-top: auto;
}
/* /View/Components/BlockComponents/PlRowHoverActions.razor.rz.scp.css */
.pl-row-hover-actions[b-y44zb0zx3a] {
    position: absolute;
    display: flex;
    gap: 4px;
    z-index: calc(var(--z-index-focus-field) + 1);
    pointer-events: auto;
    animation: pl-row-hover-fade-in-b-y44zb0zx3a 0.5s ease;
}

@keyframes pl-row-hover-fade-in-b-y44zb0zx3a {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.pl-row-hover-btn[b-y44zb0zx3a] {
    width: 20px;
    height: 20px;
    box-sizing: border-box;
    border: 1px solid var(--color-neutral-light, #d2d0ce);
    border-radius: 3px;
    background: var(--color-background, #fff);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--color-base-black, #0A090B);
    opacity: 0.8;
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.pl-row-hover-btn:hover[b-y44zb0zx3a] {
    opacity: 1;
    transform: scale(1.1);
}

/* Drop the outline on mouse-click focus, but keep the keyboard :focus-visible ring. */
.pl-row-hover-btn:focus:not(:focus-visible)[b-y44zb0zx3a] {
    outline: none;
    box-shadow: none;
}

[b-y44zb0zx3a] .mud-menu-activator {
    all: unset;
    display: contents;
}

.pl-row-hover-btn[b-y44zb0zx3a]  .anticon {
    color: var(--color-base-black, #0A090B);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    padding: 0;
    margin: 0;
}

    .pl-row-hover-btn[b-y44zb0zx3a]  .anticon svg {
        width: 14px;
        height: 14px;
        display: block;
        shape-rendering: geometricPrecision;
    }

/* Bolder strokes for the "+" glyph. */
.pl-row-hover-insert[b-y44zb0zx3a]  .anticon svg path {
    stroke: currentColor;
    stroke-width: 60;
    stroke-linecap: round;
    stroke-linejoin: round;
    paint-order: stroke fill;
}
/* /View/Components/BlockComponents/PlScaleTitleBlock.razor.rz.scp.css */
.pl-scale-title-block[b-nhy20a0lf1] {
    position: absolute;
    overflow: hidden;
    cursor: default;
}
/* /View/Components/BlockComponents/PlTitleBlock.razor.rz.scp.css */
.pl-titleblock[b-hczf3j2ypy],
.pl-titleblock > div[b-hczf3j2ypy] {
    position: absolute;
}
/* /View/Components/BlockComponents/PlWindow.razor.rz.scp.css */
.pl-window[b-lm9wwcz6h1] {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    width: fit-content;
}

.pl-window.pl-window-stretch[b-lm9wwcz6h1] {
    width: auto;
}

.pl-window-content[b-lm9wwcz6h1] {
    width: fit-content;
    flex: 1 1 auto;
    overflow: hidden;
    min-height: 0;
}

.pl-window-content.pl-window-content-stretch[b-lm9wwcz6h1] {
    width: auto;
}
/* /View/Components/ChartComponents/PlChartWrapper.razor.rz.scp.css */
.pl-chart-wrapper[b-y5imycoxw7] {
    width: 100%;
    height: 100%
}

/* PlChart's root .pl-chart-holder is styled as `display: inline-block !important` in
   PlChart.razor.css, which crushes it to ApexCharts' content size (300×150 fallback) and
   ignores the wrapper's full 100%×100% box. Reaching across the component boundary with
   ::deep flips it to a block that fills both axes — the wrapper itself is already 100% of
   the .pl-df cell, and the chart-specific width:100% branch in PlDataField.PositionStyle
   keeps that cell from collapsing to the same 300 px fallback. The !important is required
   to outrank the inline-block !important in PlChart.razor.css. */
[b-y5imycoxw7] .pl-chart-holder {
    display: block !important;
    height: 100% !important;
}
/* /View/Components/DashboardComponents/Customize/PlDashboardLeafProperties.razor.rz.scp.css */
.pl-dashboard-property-group[b-ni7olq9tj4] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
}

.pl-dashboard-property-label[b-ni7olq9tj4] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: #444;
}

.pl-dashboard-property-label-text[b-ni7olq9tj4] {
    font-size: 12px;
    color: #444;
}

.pl-dashboard-property-label input[type="text"][b-ni7olq9tj4],
.pl-dashboard-property-label input[type="number"][b-ni7olq9tj4],
.pl-dashboard-property-label select[b-ni7olq9tj4] {
    padding: 6px 8px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 4px;
    font-size: 13px;
}

.pl-dashboard-width-options[b-ni7olq9tj4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
}

.pl-dashboard-width-options input[type="number"][b-ni7olq9tj4] {
    width: 56px;
    margin-left: 6px;
    padding: 3px 6px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 3px;
}
/* /View/Components/DashboardComponents/Customize/PlDashboardSidebar.razor.rz.scp.css */
.pl-dashboard-sidebar[b-9zg9ixduaz] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    background: white;
    border-left: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: -2px 0 8px rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    z-index: 10;
}

.pl-dashboard-sidebar-header[b-9zg9ixduaz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    font-weight: 600;
}

.pl-dashboard-sidebar-title[b-9zg9ixduaz] {
    font-size: 14px;
}

.pl-dashboard-sidebar-close[b-9zg9ixduaz] {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 18px;
    color: #666;
    border-radius: 4px;
}

.pl-dashboard-sidebar-close:hover[b-9zg9ixduaz] {
    background: rgba(0, 0, 0, 0.06);
}

.pl-dashboard-sidebar-body[b-9zg9ixduaz] {
    flex: 1 1 auto;
    overflow: auto;
    padding: 12px 14px;
}

.pl-dashboard-sidebar-footer[b-9zg9ixduaz] {
    padding: 10px 14px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.pl-dashboard-sidebar-delete[b-9zg9ixduaz] {
    width: 100%;
    height: 32px;
    border: 1px solid rgba(180, 0, 0, 0.4);
    background: rgba(180, 0, 0, 0.05);
    color: rgb(140, 0, 0);
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

.pl-dashboard-sidebar-delete:hover[b-9zg9ixduaz] {
    background: rgba(180, 0, 0, 0.12);
}
/* /View/Components/DashboardComponents/Customize/PlTileEditOverlay.razor.rz.scp.css */
/* Customize-mode chrome on dashboard tiles. Mirrors the design system's
   Dashboard.jsx WidgetChrome: 1.5px dashed light-blue outline, faint blue
   tint, "Verschieben" drag pill, size segmented control, square red X. */

.pl-tile-edit-overlay[b-o1hawvuar1] {
    position: relative;
    cursor: default;
    outline: 1.5px dashed #9BD1EE;
    outline-offset: -2px;
    transition: outline-color 120ms ease-in-out;
    min-width: 0;
    box-sizing: border-box;
    border-radius: 5px;
}

.pl-tile-edit-overlay.is-selected[b-o1hawvuar1] {
    outline: 2px solid var(--pl-color-primary, #0070B5);
}

.pl-tile-edit-overlay-tint[b-o1hawvuar1] {
    position: absolute;
    inset: 0;
    background: rgba(230, 244, 251, 0.15);
    border-radius: 5px;
    pointer-events: none;
    z-index: 1;
}

.pl-tile-edit-overlay-toolbar[b-o1hawvuar1] {
    position: absolute;
    top: 6px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pl-tile-edit-overlay-toolbar-left[b-o1hawvuar1] {
    left: 6px;
}

.pl-tile-edit-overlay-toolbar-right[b-o1hawvuar1] {
    right: 6px;
}

/* Drag handle pill. Only this element is draggable — the rest of the tile is
   selectable but inert for drag, matching the design's "Ziehen zum Verschieben"
   affordance. */
.pl-tile-edit-overlay-drag[b-o1hawvuar1] {
    height: 24px;
    padding: 0 8px;
    background: #fff;
    border: 1px solid #9BD1EE;
    border-radius: 3px;
    color: #0161B8;
    font-family: Asap, Roboto, sans-serif;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    cursor: grab;
    user-select: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pl-tile-edit-overlay-drag:hover[b-o1hawvuar1] {
    background: #FAFAFC;
}

.pl-tile-edit-overlay-drag:active[b-o1hawvuar1] {
    cursor: grabbing;
}

/* Inline size segmented control. */
.pl-tile-edit-overlay-size[b-o1hawvuar1] {
    height: 24px;
    display: inline-flex;
    background: #fff;
    border: 1px solid #C4CBDA;
    border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.pl-tile-edit-overlay-size button[b-o1hawvuar1] {
    min-width: 28px;
    height: 100%;
    border: 0;
    border-left: 1px solid #E5E8ED;
    background: #fff;
    color: #495769;
    font-family: Asap, Roboto, sans-serif;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}

.pl-tile-edit-overlay-size button:first-child[b-o1hawvuar1] {
    border-left: 0;
}

.pl-tile-edit-overlay-size button.is-active[b-o1hawvuar1] {
    background: #E6F4FB;
    color: #0161B8;
}

.pl-tile-edit-overlay-size button:hover:not(.is-active)[b-o1hawvuar1] {
    background: #FAFAFC;
}

/* Remove button — square, white background, light-red border, red glyph. */
.pl-tile-edit-overlay-remove[b-o1hawvuar1] {
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #F7B1B1;
    border-radius: 3px;
    background: #fff;
    color: #C22704;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pl-tile-edit-overlay-remove:hover[b-o1hawvuar1] {
    background: #FFEDE6;
}

/* Drop indicators — solid blue 4 px bars rendered OUTSIDE the tile so they
   don't bleed across the tile's chrome. */
.pl-tile-drop-indicator[b-o1hawvuar1] {
    position: absolute;
    background: #009FE3;
    border-radius: 2px;
    pointer-events: none;
    z-index: 7;
    box-shadow: 0 0 8px rgba(0, 159, 227, 0.4);
}

.pl-tile-drop-indicator.left-edge[b-o1hawvuar1] {
    left: -10px;
    top: 0;
    bottom: 0;
    width: 4px;
}

.pl-tile-drop-indicator.right-edge[b-o1hawvuar1] {
    right: -10px;
    top: 0;
    bottom: 0;
    width: 4px;
}

.pl-tile-drop-indicator.top-edge[b-o1hawvuar1] {
    top: -10px;
    left: 0;
    right: 0;
    height: 4px;
}

.pl-tile-drop-indicator.bottom-edge[b-o1hawvuar1] {
    bottom: -10px;
    left: 0;
    right: 0;
    height: 4px;
}

/* Ambiguous-below: two stacked indicators below the tile. Primary (blue, new
   Container) on top, accent (orange, new ColumnSet column) below. Active branch
   has full opacity + brighter shadow; inactive branch is dimmed. */
.pl-tile-drop-indicator.ambiguous-primary[b-o1hawvuar1],
.pl-tile-drop-indicator.ambiguous-primary-active[b-o1hawvuar1] {
    left: 0;
    right: 0;
    bottom: -16px;
    height: 4px;
    background: #009FE3;
}

.pl-tile-drop-indicator.ambiguous-primary[b-o1hawvuar1] {
    opacity: 0.35;
    box-shadow: none;
}

.pl-tile-drop-indicator.ambiguous-primary-active[b-o1hawvuar1] {
    box-shadow: 0 0 10px rgba(0, 159, 227, 0.6);
}

.pl-tile-drop-indicator.ambiguous-accent[b-o1hawvuar1],
.pl-tile-drop-indicator.ambiguous-accent-active[b-o1hawvuar1] {
    left: 0;
    right: 0;
    bottom: -28px;
    height: 4px;
    background: #F19822;
}

.pl-tile-drop-indicator.ambiguous-accent[b-o1hawvuar1] {
    opacity: 0.35;
    box-shadow: none;
}

.pl-tile-drop-indicator.ambiguous-accent-active[b-o1hawvuar1] {
    box-shadow: 0 0 10px rgba(241, 152, 34, 0.6);
}
/* /View/Components/DashboardComponents/PlEmbeddedModule.razor.rz.scp.css */
/* Embedded modules whose internals are flex-layouted report DocumentSize 0 (their content sizes
   itself to the parent rather than to authored pixels). The default `width: fit-content` on
   .pl-window-content then evaluates to 0 because the flex chain has no definite anchor. Force
   `min-width: 100%` here so when the host cell stretches (PlFlexDataAreaBlock detects flex-
   layouted embedded modules and switches the wrapper from pl-flex-size-auto to
   pl-flex-size-stretch), pl-window-content fills the cell and pl-main has a definite parent to
   size against. Pixel-layouted modules carry their DocumentSize as inline width on pl-main, so
   pl-window-content's fit-content still anchors there — min-width: 100% never exceeds the
   pixel anchor in that case. */
[b-tp4tv8n7yd] .pl-window-content {
    min-width: 100%;
}

/* PlModule's .pl-module-container no longer carries an inline height (the height: 100% used to be
   inline; it has moved to a `.pl-module-container-standalone` CSS class that we deliberately do
   not emit for embedded use). Re-establish the fill behaviour here so the wrapper's height: 100%
   propagates into the module container. */
[b-tp4tv8n7yd] .pl-module-container {
    height: 100%;
}
/* /View/Components/DashboardComponents/PlPersonalDashboard.razor.rz.scp.css */
/* Personal demo dashboard. Self-contained scoped CSS — disclaimer, alert, KPI cards,
   sections, watchlist rows, plus the chart widgets specific to this layout (donut,
   horizontal bar list, vertical bar chart). */

.pl-personal-dashboard[b-869mfecerq] {
    height: 100%;
    overflow: auto;
    background-color: var(--pl-neutral-bg-color-bg-layout, #F2F4F7);
    font-family: var(--pl-font-family-base, 'Asap', sans-serif);
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-personal-dashboard .pl-demo-dashboard__body[b-869mfecerq] {
    padding: 16px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ---- shared card / typography ---- */

.pl-personal-dashboard .pl-demo-card[b-869mfecerq] {
    background-color: var(--pl-neutral-bg-color-bg-container, #FFFFFF);
    border: 1px solid var(--pl-neutral-border-color-border, #C4CBDA);
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px rgba(0, 0, 0, 0.02);
}

.pl-personal-dashboard .pl-text--success[b-869mfecerq] { color: var(--pl-semantic-success-color-success-active, #21945E); }
.pl-personal-dashboard .pl-text--error[b-869mfecerq] { color: var(--pl-semantic-error-color-error, #C22704); }
.pl-personal-dashboard .pl-text--warning[b-869mfecerq] { color: var(--pl-semantic-warning-color-warning, #F19822); }
.pl-personal-dashboard .pl-text--info[b-869mfecerq] { color: var(--pl-semantic-info-color-info, #0070B5); }
.pl-personal-dashboard .pl-text--link[b-869mfecerq] { color: var(--pl-semantic-info-color-info, #0070B5); }
.pl-personal-dashboard .pl-text--secondary[b-869mfecerq] { color: var(--pl-neutral-text-color-text-secondary, #495769); }
.pl-personal-dashboard .pl-text--tertiary[b-869mfecerq] { color: var(--pl-neutral-text-color-text-tertiary, #6A778B); }

/* ---- alert banner ---- */

.pl-personal-dashboard .pl-demo-alert[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 9px 16px;
    background-color: var(--pl-semantic-warning-color-warning-bg, #FFFBF0);
    border: 1px solid var(--pl-semantic-warning-color-warning-border, #FFDF9E);
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03), 0 1px 6px rgba(0, 0, 0, 0.02), 0 2px 4px rgba(0, 0, 0, 0.02);
    font: inherit;
    font-size: 14px;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.pl-personal-dashboard .pl-demo-alert:disabled[b-869mfecerq] {
    cursor: default;
}

.pl-personal-dashboard .pl-demo-alert__lead[b-869mfecerq] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pl-personal-dashboard .pl-demo-alert__lead i[b-869mfecerq] {
    color: var(--pl-semantic-warning-color-warning, #F19822);
}

.pl-personal-dashboard .pl-demo-alert__chevron[b-869mfecerq] {
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
    font-size: 12px;
}

/* ---- KPI row ---- */

.pl-personal-dashboard .pl-demo-kpis[b-869mfecerq] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.pl-personal-dashboard .pl-demo-kpi[b-869mfecerq] {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
}

.pl-personal-dashboard .pl-demo-kpi:focus[b-869mfecerq] {
    border-color: var(--pl-semantic-info-color-info-border-hover, #0DB5F2);
    outline: none;
}

.pl-personal-dashboard .pl-demo-kpi__label[b-869mfecerq],
.pl-personal-dashboard .pl-demo-kpi__label-row[b-869mfecerq] {
    font-size: 14px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
}

.pl-personal-dashboard .pl-demo-kpi__label-row[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.pl-personal-dashboard .pl-demo-kpi__value-row[b-869mfecerq] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.pl-personal-dashboard .pl-demo-kpi__value[b-869mfecerq] {
    font-size: 28px;
    line-height: 32px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-personal-dashboard .pl-demo-kpi__hint[b-869mfecerq] {
    font-size: 14px;
}

/* ---- 2-col grid ---- */

.pl-personal-dashboard .pl-demo-grid[b-869mfecerq] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

.pl-personal-dashboard .pl-demo-stack[b-869mfecerq] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

/* ---- generic section ---- */

.pl-personal-dashboard .pl-demo-section[b-869mfecerq] {
    display: flex;
    flex-direction: column;
}

.pl-personal-dashboard .pl-demo-section__header[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--pl-neutral-border-color-border-secondary, #DCE0EA);
}

.pl-personal-dashboard .pl-demo-section__title[b-869mfecerq] {
    margin: 0;
    font-size: 20px;
    line-height: 28px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-personal-dashboard .pl-demo-section__body[b-869mfecerq] {
    flex: 1;
    padding: 8px;
}

.pl-personal-dashboard .pl-demo-section__body--padded[b-869mfecerq] {
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pl-personal-dashboard .pl-demo-section__footer[b-869mfecerq] {
    padding: 0 24px 16px;
}

/* ---- recent rows (same look as variant 1) ---- */

.pl-personal-dashboard .pl-demo-row[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 8px;
    border-radius: 4px;
    cursor: pointer;
}

.pl-personal-dashboard .pl-demo-row:focus[b-869mfecerq] {
    background: linear-gradient(99deg, #F2F4F7 21%, #E2E7EE 47%);
    outline: none;
}

.pl-personal-dashboard .pl-demo-row:focus .pl-demo-row__title[b-869mfecerq] {
    color: var(--pl-semantic-info-color-info, #0070B5);
}

.pl-personal-dashboard .pl-demo-row__main[b-869mfecerq] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.pl-personal-dashboard .pl-demo-row__title[b-869mfecerq] {
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;
    color: var(--pl-neutral-text-color-text, #0D1A26);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-personal-dashboard .pl-demo-row__meta[b-869mfecerq] {
    font-size: 14px;
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
    white-space: nowrap;
}

.pl-personal-dashboard .pl-demo-icon-tile[b-869mfecerq] {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--pl-neutral-fill-color-fill-tertiary, #E9ECF1);
    border-radius: 4px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
    font-size: 14px;
}

/* ---- tag / select / button ---- */

.pl-personal-dashboard .pl-demo-tag[b-869mfecerq] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 8px;
    height: 20px;
    background-color: var(--pl-neutral-fill-color-fill-quaternary, #F2F4F7);
    border: 1px solid var(--pl-neutral-border-color-border, #C4CBDA);
    border-radius: 3px;
    font-size: 12px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
    white-space: nowrap;
}

.pl-personal-dashboard .pl-demo-tag--success[b-869mfecerq] {
    background-color: var(--pl-semantic-success-color-success-bg, #EBFAEB);
    border-color: var(--pl-semantic-success-color-success-border, #A8E0AF);
    color: var(--pl-semantic-success-color-success, #32B968);
    font-weight: 600;
}

.pl-personal-dashboard .pl-demo-tag--error[b-869mfecerq] {
    background-color: var(--pl-semantic-error-color-error-bg, #FFEDE6);
    border-color: var(--pl-semantic-error-color-error-border, #FF9063);
    color: var(--pl-semantic-error-color-error, #C22704);
}

.pl-personal-dashboard .pl-demo-select[b-869mfecerq] {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 12px;
    height: 32px;
    min-width: 100px;
    background-color: var(--pl-neutral-bg-color-bg-container, #FFFFFF);
    border: 1px solid var(--pl-neutral-border-color-border, #C4CBDA);
    border-radius: 4px;
    font-size: 14px;
    color: var(--pl-neutral-text-color-text, #0D1A26);
    cursor: not-allowed;
}

.pl-personal-dashboard .pl-demo-select i[b-869mfecerq] {
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
    font-size: 12px;
}

.pl-personal-dashboard .pl-demo-button[b-869mfecerq] {
    margin-top: 8px;
    padding: 8px 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 40px;
    background-color: var(--pl-neutral-bg-color-bg-container, #FFFFFF);
    border: 1px solid var(--pl-neutral-border-color-border, #C4CBDA);
    border-radius: 4px;
    box-shadow: 0 2px 0 rgba(18, 46, 94, 0.07);
    font-size: 16px;
    color: var(--pl-neutral-text-color-text, #0D1A26);
    cursor: pointer;
}

.pl-personal-dashboard .pl-demo-button:disabled[b-869mfecerq] {
    cursor: not-allowed;
}

.pl-personal-dashboard .pl-demo-button__arrow[b-869mfecerq] {
    transform: rotate(45deg);
    font-size: 12px;
}

/* ---- watchlist entries (taller list) ---- */

.pl-personal-dashboard .pl-demo-watch[b-869mfecerq] {
    border: 1px solid #E5E8ED;
    border-radius: 4px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pl-personal-dashboard .pl-demo-watch__head[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.pl-personal-dashboard .pl-demo-watch__title[b-869mfecerq] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.pl-personal-dashboard .pl-demo-watch__name[b-869mfecerq] {
    font-size: 16px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-personal-dashboard .pl-demo-watch__meta[b-869mfecerq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 14px;
}

.pl-personal-dashboard .pl-demo-progress[b-869mfecerq] {
    height: 6px;
    background-color: var(--pl-neutral-fill-color-fill-quaternary, #F2F4F7);
    border-radius: 9999px;
    overflow: hidden;
}

.pl-personal-dashboard .pl-demo-progress__fill[b-869mfecerq] {
    height: 100%;
    background-color: var(--pl-semantic-primary-color-primary, #0070B5);
    border-radius: 9999px;
}

/* ---- horizontal bar list (Manager) — labels rendered in HTML next to the
       ApexChart so the avatar circles + names line up with each bar ---- */

.pl-demo-hbar-list[b-869mfecerq] {
    display: grid;
    grid-template-rows: repeat(5, 1fr);
    gap: 0;
    height: 220px;
    padding: 6px 0;
    box-sizing: border-box;
}

.pl-demo-hbar-row[b-869mfecerq] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
    min-width: 0;
    white-space: nowrap;
}

.pl-demo-hbar-row__name[b-869mfecerq] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-demo-hbar-chart[b-869mfecerq] {
    width: 100%;
}

.pl-demo-hbar-chart[b-869mfecerq]  .apexcharts-canvas {
    margin-left: -10px; /* trim Apex's default left padding so bars start near the labels */
}

.pl-demo-avatar[b-869mfecerq] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    background-color: var(--pl-neutral-fill-color-fill-tertiary, #E9ECF1);
    flex-shrink: 0;
}

/* The Manager card body is a vertical stack — labels grid on top of bars chart */
.pl-demo-card .pl-demo-section__body--padded:has(.pl-demo-hbar-list)[b-869mfecerq] {
    display: grid;
    grid-template-columns: 180px 1fr;
    grid-template-rows: 1fr auto;
    gap: 12px;
    align-items: stretch;
}

.pl-demo-card .pl-demo-section__body--padded:has(.pl-demo-hbar-list) .pl-demo-hbar-list[b-869mfecerq] {
    grid-column: 1;
    grid-row: 1;
}

.pl-demo-card .pl-demo-section__body--padded:has(.pl-demo-hbar-list) .pl-demo-hbar-chart[b-869mfecerq] {
    grid-column: 2;
    grid-row: 1;
}

.pl-demo-card .pl-demo-section__body--padded:has(.pl-demo-hbar-list) .pl-demo-button[b-869mfecerq] {
    grid-column: 1 / -1;
    grid-row: 2;
}

/* ---- donut chart (ApexChart) + center labels + side legend ---- */

.pl-demo-chart-row[b-869mfecerq] {
    flex-direction: row !important;
    align-items: center;
    gap: 24px !important;
}

.pl-demo-donut-host[b-869mfecerq] {
    position: relative;
    width: 200px;
    height: 200px;
    flex-shrink: 0;
}

.pl-demo-donut-host__center[b-869mfecerq] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.pl-demo-donut__label[b-869mfecerq] {
    font-size: 14px;
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
}

.pl-demo-donut__value[b-869mfecerq] {
    font-size: 28px;
    font-weight: 600;
    line-height: 32px;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-demo-legend[b-869mfecerq] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
    flex: 1;
    min-width: 0;
}

.pl-demo-legend__title[b-869mfecerq] {
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-demo-legend__row[b-869mfecerq] {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    align-items: center;
    gap: 8px;
}

.pl-demo-legend__dot[b-869mfecerq] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.pl-demo-legend__label[b-869mfecerq] {
    color: var(--pl-neutral-text-color-text-secondary, #495769);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-demo-legend__value[b-869mfecerq] {
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

/* ---- responsive collapse ---- */

@media (max-width: 1100px) {
    .pl-personal-dashboard .pl-demo-kpis[b-869mfecerq] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pl-personal-dashboard .pl-demo-grid[b-869mfecerq] {
        grid-template-columns: minmax(0, 1fr);
    }
    .pl-demo-chart-row[b-869mfecerq] {
        flex-direction: column !important;
    }
    .pl-demo-hbar[b-869mfecerq] {
        grid-template-columns: 140px 1fr auto;
    }
}
/* /View/Components/DashboardComponents/PlPortfolioDashboard.razor.rz.scp.css */
/* Portfolio demo dashboard. Self-contained scoped CSS — disclaimer, KPI cards,
   sections, plus the portfolio-specific widgets (overview cards, radar legend,
   risks, governance rows, watchlist). */

.pl-portfolio-dashboard[b-cr7slcry48] {
    height: 100%;
    overflow: auto;
    background-color: var(--pl-neutral-bg-color-bg-layout, #F2F4F7);
    font-family: var(--pl-font-family-base, 'Asap', sans-serif);
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-dashboard .pl-demo-dashboard__body[b-cr7slcry48] {
    padding: 16px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ---- shared card / typography ---- */

.pl-portfolio-dashboard .pl-demo-card[b-cr7slcry48] {
    background-color: var(--pl-neutral-bg-color-bg-container, #FFFFFF);
    border: 1px solid #E5E8ED;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    overflow: clip;
}

.pl-portfolio-dashboard .pl-text--success[b-cr7slcry48] { color: var(--pl-semantic-success-color-success-active, #21945E); }
.pl-portfolio-dashboard .pl-text--error[b-cr7slcry48] { color: var(--pl-semantic-error-color-error, #C22704); }
.pl-portfolio-dashboard .pl-text--warning[b-cr7slcry48] { color: var(--pl-semantic-warning-color-warning, #F19822); }
.pl-portfolio-dashboard .pl-text--info[b-cr7slcry48] { color: var(--pl-semantic-info-color-info, #0070B5); }
.pl-portfolio-dashboard .pl-text--secondary[b-cr7slcry48] { color: var(--pl-neutral-text-color-text-secondary, #495769); }

/* ---- KPI row ---- */

.pl-portfolio-dashboard .pl-demo-kpis[b-cr7slcry48] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.pl-portfolio-dashboard .pl-demo-kpi[b-cr7slcry48] {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
}

.pl-portfolio-dashboard .pl-demo-kpi:focus[b-cr7slcry48] {
    border-color: var(--pl-semantic-info-color-info-border-hover, #0DB5F2);
    outline: none;
}

.pl-portfolio-dashboard .pl-demo-kpi__label[b-cr7slcry48] {
    font-size: 14px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
}

.pl-portfolio-dashboard .pl-demo-kpi__value-row[b-cr7slcry48] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.pl-portfolio-dashboard .pl-demo-kpi__value[b-cr7slcry48] {
    font-size: 28px;
    line-height: 32px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-dashboard .pl-demo-kpi__delta[b-cr7slcry48] {
    font-size: 13px;
    font-weight: 600;
}

/* ---- two-column grid (left wide, right narrow) ---- */

.pl-portfolio-dashboard .pl-demo-grid[b-cr7slcry48] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.pl-portfolio-dashboard .pl-portfolio-main[b-cr7slcry48],
.pl-portfolio-dashboard .pl-portfolio-side[b-cr7slcry48] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

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

.pl-portfolio-dashboard .pl-demo-section[b-cr7slcry48] {
    display: flex;
    flex-direction: column;
}

.pl-portfolio-dashboard .pl-demo-section__header[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 49px;
    padding: 0 16px;
    border-bottom: 1px solid #E5E8ED;
}

.pl-portfolio-dashboard .pl-demo-section__title[b-cr7slcry48] {
    margin: 0;
    font-size: 16px;
    line-height: 24px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-dashboard .pl-portfolio-section__icon[b-cr7slcry48] {
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
    font-size: 14px;
}

.pl-portfolio-dashboard .pl-portfolio-section__icon--star[b-cr7slcry48] {
    color: var(--pl-semantic-warning-color-warning, #F19822);
}

.pl-portfolio-dashboard .pl-demo-section__body[b-cr7slcry48] {
    flex: 1;
    padding: 8px;
}

.pl-portfolio-dashboard .pl-demo-section__body--padded[b-cr7slcry48] {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ---- portfolio cards (Figma node 870:21406) ---- */

.pl-portfolio-card[b-cr7slcry48] {
    border: 1px solid rgba(0, 159, 227, 0.2);
    border-radius: 10px;
    padding: 17px;
    background: linear-gradient(90deg, rgba(0, 159, 227, 0.1) 0%, rgba(0, 0, 0, 0) 100%);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pl-portfolio-card__head[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.pl-portfolio-card__title-block[b-cr7slcry48] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.pl-portfolio-card__title[b-cr7slcry48] {
    font-size: 18px;
    line-height: 28px;
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-card__meta[b-cr7slcry48] {
    font-size: 14px;
    line-height: 20px;
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
}

.pl-portfolio-card__budget-block[b-cr7slcry48] {
    text-align: right;
    flex-shrink: 0;
}

.pl-portfolio-card__budget[b-cr7slcry48] {
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    color: #009FE3;
}

.pl-portfolio-card__budget-label[b-cr7slcry48] {
    font-size: 12px;
    line-height: 16px;
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
}

.pl-portfolio-card__progress-row[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
}

.pl-portfolio-card__progress-row > :first-child[b-cr7slcry48] {
    color: var(--pl-neutral-text-color-text-tertiary, #6A778B);
}

.pl-portfolio-card__progress-value[b-cr7slcry48] {
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

/* ---- progress bar (card progress) ---- */

.pl-portfolio-card .pl-demo-progress[b-cr7slcry48] {
    height: 12px;
    background-color: #E5E8ED;
    border-radius: 9999px;
    overflow: hidden;
}

.pl-portfolio-card .pl-demo-progress__fill[b-cr7slcry48] {
    height: 100%;
    background: linear-gradient(90deg, #009FE3 0%, #00375B 100%);
    border-radius: 9999px;
}

/* ---- radar chart ---- */

.pl-portfolio-radar[b-cr7slcry48] {
    align-items: center;
}

.pl-portfolio-radar-legend[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
}

.pl-portfolio-radar-legend__row[b-cr7slcry48] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pl-portfolio-dashboard .pl-demo-legend__dot[b-cr7slcry48] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

/* ---- side column: recent + watchlist list rows ---- */

.pl-portfolio-side__list[b-cr7slcry48] {
    gap: 8px;
}

.pl-portfolio-recent[b-cr7slcry48] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    border-radius: 4px;
}

.pl-portfolio-recent__title[b-cr7slcry48] {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-recent__kind[b-cr7slcry48] {
    font-size: 12px;
    line-height: 16px;
}

.pl-portfolio-watch[b-cr7slcry48] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 14px;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-watch__star[b-cr7slcry48] {
    color: var(--pl-semantic-warning-color-warning, #F19822);
    font-size: 12px;
}

/* ---- risks (Figma node 870:21734) ---- */

.pl-portfolio-risk[b-cr7slcry48] {
    background-color: #FEF2F2;
    border: 1px solid #FFC9C9;
    border-radius: 4px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pl-portfolio-risk__title[b-cr7slcry48] {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

.pl-portfolio-risk__desc[b-cr7slcry48] {
    font-size: 12px;
    line-height: 16px;
    color: var(--pl-neutral-text-color-text-secondary, #495769);
}

.pl-portfolio-risk__footer[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 4px;
}

.pl-portfolio-risk-tag[b-cr7slcry48] {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 8px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 16px;
    white-space: nowrap;
}

.pl-portfolio-risk-tag--high[b-cr7slcry48] {
    background-color: #FFE2E2;
    color: #9F0712;
}

.pl-portfolio-risk-tag--medium[b-cr7slcry48] {
    background-color: #FEF9C2;
    color: #894B00;
}

.pl-portfolio-risk__trend[b-cr7slcry48] {
    font-size: 12px;
    line-height: 16px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pl-portfolio-risk__trend--up[b-cr7slcry48] {
    color: #E7000B;
}

.pl-portfolio-risk__trend--stable[b-cr7slcry48] {
    color: #6A778B;
}

/* ---- Portfolio-Wert ---- */

.pl-portfolio-value__total[b-cr7slcry48] {
    text-align: center;
    padding: 12px 0 8px;
    border-bottom: 1px solid var(--pl-neutral-border-color-border-secondary, #DCE0EA);
}

.pl-portfolio-value__total-amount[b-cr7slcry48] {
    font-size: 28px;
    font-weight: 600;
    color: var(--pl-semantic-info-color-info, #0070B5);
}

.pl-portfolio-value__total-label[b-cr7slcry48] {
    font-size: 13px;
    margin-top: 2px;
}

.pl-portfolio-value__rows[b-cr7slcry48] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 4px;
}

.pl-portfolio-value__row[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
}

.pl-portfolio-value__amount[b-cr7slcry48] {
    font-weight: 600;
    color: var(--pl-neutral-text-color-text, #0D1A26);
}

/* ---- Governance rows ---- */

.pl-portfolio-governance[b-cr7slcry48] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 13px;
}

.pl-portfolio-governance--success[b-cr7slcry48] {
    background-color: var(--pl-semantic-success-color-success-bg, #EBFAEB);
}

.pl-portfolio-governance--success .pl-portfolio-governance__value[b-cr7slcry48] {
    color: var(--pl-semantic-success-color-success-active, #21945E);
}

.pl-portfolio-governance--warning[b-cr7slcry48] {
    background-color: var(--pl-semantic-warning-color-warning-bg, #FFFBF0);
}

.pl-portfolio-governance--warning .pl-portfolio-governance__value[b-cr7slcry48] {
    color: var(--pl-semantic-warning-color-warning, #F19822);
}

.pl-portfolio-governance--info[b-cr7slcry48] {
    background-color: #F1ECFB;
}

.pl-portfolio-governance--info .pl-portfolio-governance__value[b-cr7slcry48] {
    color: #6E3FC0;
}

.pl-portfolio-governance__value[b-cr7slcry48] {
    font-weight: 600;
}

/* ---- responsive ---- */

@media (max-width: 1100px) {
    .pl-portfolio-dashboard .pl-demo-kpis[b-cr7slcry48] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pl-portfolio-dashboard .pl-demo-grid[b-cr7slcry48] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /View/Components/DashboardComponents/PlTileColumn.razor.rz.scp.css */
.pl-tile-column[b-5opmrjh735] {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}
/* /View/Components/DashboardComponents/PlTileColumnSet.razor.rz.scp.css */
.pl-tile-column-set[b-t1ezpdy3ao] {
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
}

/* Non-root tiles fill their flex cell vertically. Root tiles size to content so the dashboard
   surface (grey background applied one level up) determines the outer height. */
.pl-tile-column-set:not(.is-dashboard-root)[b-t1ezpdy3ao] {
    height: 100%;
}

/* Dashboard root: 1px right gutter so cell chrome (border / shadow) doesn't sit exactly on
   .pl-window-content's overflow:hidden clip and lose its rightmost pixel. */
.pl-tile-column-set.is-dashboard-root[b-t1ezpdy3ao] {
    padding-right: 1px;
}
/* /View/Components/DashboardComponents/PlTileContainer.razor.rz.scp.css */
.pl-tile-container[b-l47ouz1lw0] {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* Non-root tiles fill their flex cell vertically. Root tiles size to content so the dashboard
   surface (grey background applied one level up) determines the outer height. */
.pl-tile-container:not(.is-dashboard-root)[b-l47ouz1lw0] {
    height: 100%;
}

/* Dashboard root: 1px right gutter so the rightmost cell's chrome doesn't sit exactly on
   .pl-window-content's overflow:hidden clip and lose its rightmost pixel. The grey surface and
   the matching top inset live one level up on .pl-module-content-area.is-dashboard-module so
   they cover the .pl-module-padded gutter too. */
.pl-tile-container.is-dashboard-root[b-l47ouz1lw0] {
    padding-right: 1px;
}

/* Minimum visual chrome for dashboard tile leaves. Theme-driven; not customizing-driven.
   The 1px border is rendered as an inset box-shadow so it draws inside the cell's border-box —
   a real border at width:100% would be clipped where a row's rightmost cell touches the ancestor's
   right edge (overflow boundary).
   `overflow: hidden` keeps absolute-positioned DataFields (which still carry their authored
   pixel widths) from escaping the cell when the column is narrower than the field's natural width.
   The inset border-shadow renders before clipping, so the border itself is preserved. */
/* `::deep > .pl-block` rewrites to `[scope] > .pl-block` and matches direct .pl-block
   children of every PlTileContainer instance (dashboard root AND nested ones inside Container
   columns). Without this, leaves placed directly under the dashboard root get no chrome.
   `::deep .pl-tile-column > .pl-block` covers leaves inside ColumnSet columns.
   `::deep > .pl-tile-edit-overlay > .pl-block` (and the column variant) keeps chrome on tiles
   that are wrapped in the customize-mode overlay — the overlay sits between the tile container
   and the leaf's .pl-block, so the un-wrapped selectors would otherwise miss them.
   Leaves nested deeper than direct children (e.g., child DAs of a leaf rendered recursively
   via PlTileChildren) are NOT direct children of the column/root and therefore do not get
   chrome — that's intentional, so a tile leaf can hold multiple sub-DAs as one chromed card. */
[b-l47ouz1lw0] > .pl-block,
[b-l47ouz1lw0] .pl-tile-column > .pl-block,
[b-l47ouz1lw0] > .pl-tile-edit-overlay > .pl-block,
[b-l47ouz1lw0] .pl-tile-column > .pl-tile-edit-overlay > .pl-block {
    box-sizing: border-box;
    overflow: hidden;
    background-color: var(--pl-tile-background, #ffffff);
    border-radius: var(--pl-tile-border-radius, 8px);
    box-shadow:
        var(--pl-tile-border-shadow, inset 0 0 0 1px #E5E8ED),
        var(--pl-tile-shadow, 0 1px 2px rgba(0, 0, 0, 0.06));
    padding: var(--pl-tile-padding, 16px);
}

/* DataFields inside a tile cell: anchor to the DfBlock's right edge instead of using the
   customizing-authored pixel width. Otherwise df_width values larger than the (responsive) cell
   would overflow into the chrome's right padding and the overflow:hidden above would clip them
   flush with the cell border, eating the visible right padding. The !important is needed to win
   over the inline width style emitted by PlDataField.
   The :not(.pl-embedded-module *) guard keeps the rule from cascading into DataFields rendered
   inside an embedded module — those carry the embedded module's own authored pixel positions and
   widths, and stretching them to the cell's right edge would overlap titles and shift content. */
[b-l47ouz1lw0] .pl-tile-column .pl-datafield-block:not(.pl-embedded-module *) > .pl-df,
[b-l47ouz1lw0] .pl-tile-container .pl-datafield-block:not(.pl-embedded-module *) > .pl-df {
    right: 0;
    width: auto !important;
    max-width: 100%;
}

/* Status Indicator — Context A (dashboard tile leaf).
   Documented in docs/client_functionality/module_layout/status_indicator.md.
   The customizing model is semantic (`StatusIndicator`); the current visual treatment is a
   coloured left-edge bar, but the indication strategy is decided here on the client and may
   evolve without changing the customizing.
   The leaf already gets tile chrome (background, inset 1 px border via box-shadow, drop shadow,
   16 px padding, border-radius) from the rule above. When `.pl-status-indicator` is present we
   replace the chrome's 1 px inset border with a 4 px coloured bar on the LEFT side only by
   re-emitting the box-shadow stack with an asymmetric inset shadow.
   The inset border-color stays `#E5E8ED` (the tile-chrome colour) on top, right, bottom; the
   left side becomes `var(--pl-status-indicator-color)` at the indicator width. The drop shadow
   underneath is preserved unchanged.
   The `border-left: 0` reset suppresses the bar that PlDataAreaBlock.razor.css applies for
   Context B — inside a tile, the chrome's 16 px padding would otherwise place that border
   inside the chrome rather than at the chrome's outer left edge.
   Only direct children of the dashboard root or a column hit this rule. Inner DAs nested
   inside a tile leaf (rendered recursively by PlTileChildren) are not direct children and
   stay on Context B's plain border-left + radius. */
[b-l47ouz1lw0] > .pl-block.pl-status-indicator,
[b-l47ouz1lw0] .pl-tile-column > .pl-block.pl-status-indicator {
    border-left: 0;
    box-shadow:
        inset 0 1px 0 0 #E5E8ED,
        inset -1px 0 0 0 #E5E8ED,
        inset 0 -1px 0 0 #E5E8ED,
        inset var(--pl-status-indicator-width, 4px) 0 0 0 var(--pl-status-indicator-color, transparent),
        var(--pl-tile-shadow, 0 1px 2px rgba(0, 0, 0, 0.06));
}
/* /View/Components/DashboardComponents/PlTileEmbeddedCell.razor.rz.scp.css */
/* The tile cell is a flex item in a dashboard column / column-set chain that has no definite
   height (the dashboard root sizes to content). PlModule's `pl-module-container` carries an
   inline `height: 100%` for the standalone case where its parent fills the viewport — inside
   a tile that 100% resolves to 0 and the whole chain (.pl-module-content-area, splitter,
   scrollbar, pl-scroll) collapses to zero. We rebuild the chain inside the cell to size to the
   embedded module's intrinsic content height (driven by pl-main's inline DocumentSize) and
   set the cell's `min-height` to that intrinsic content so the `flex: 1 1 0` from the
   FlexStyle (Stretch / Weight) does not collapse it to chrome-only. */

.pl-tile-embedded-cell[b-xmnfgrhjsy] {
    display: flex;
    flex-direction: column;
    min-height: max-content;
}

[b-xmnfgrhjsy] .pl-module-container {
    height: auto;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

/* Flex-column the body chain from the content area down to the scroll viewport so the viewport
   fills the cell: the content-sized module body sits at the top and the horizontal scrollbar
   lands at the cell's bottom edge instead of hugging the content. The cell's min-height:
   max-content still floors the chain at the intrinsic content height, so a content-sized cell
   (no extra space) renders unchanged. */
[b-xmnfgrhjsy] .pl-module-content-area,
[b-xmnfgrhjsy] .fluent-multi-splitter-pane,
[b-xmnfgrhjsy] .scrollbar-container {
    display: flex !important;
    flex-direction: column !important;
}

[b-xmnfgrhjsy] .pl-module-content-area,
[b-xmnfgrhjsy] .fluent-multi-splitter,
[b-xmnfgrhjsy] .fluent-multi-splitter-pane,
[b-xmnfgrhjsy] .scrollbar-container,
[b-xmnfgrhjsy] .pl-scroll-window {
    flex: 1 1 auto !important;
    min-height: 0;
    height: auto !important;
}

/* ─── Lifted title-area chrome ───────────────────────────────────────────────────────────────
   When the embedded module exposes a liftable TitleArea (a DA with FlexLayout.TitleArea and at
   least one DF marked Flex.InTitle), PlTileEmbeddedCell renders a title bar above the module
   body using the same class names as PlFlexDataAreaBlock so the visual result is identical.

   Blazor scoped CSS does not let rules in PlFlexDataAreaBlock.razor.css reach elements
   rendered here, so the title-area chrome is duplicated below. Keep the two files in sync —
   PlFlexDataAreaBlock.razor.css is the source of truth and any visual change there should be
   mirrored here.
   See docs/client_functionality/module_layout/embedded_module.md#widget-title. */

.pl-tile-embedded-cell.pl-flex-da-title-top[b-xmnfgrhjsy]    { flex-direction: column; }
.pl-tile-embedded-cell.pl-flex-da-title-bottom[b-xmnfgrhjsy] { flex-direction: column-reverse; }
.pl-tile-embedded-cell.pl-flex-da-title-start[b-xmnfgrhjsy]  { flex-direction: row; }
.pl-tile-embedded-cell.pl-flex-da-title-end[b-xmnfgrhjsy]    { flex-direction: row-reverse; }

.pl-flex-da-title[b-xmnfgrhjsy],
.pl-flex-da-body[b-xmnfgrhjsy] {
    display: flex;
    box-sizing: border-box;
}

.pl-flex-da-body[b-xmnfgrhjsy] {
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.pl-flex-da-title[b-xmnfgrhjsy] {
    flex: 0 0 auto;
    gap: var(--pl-flex-da-title-gap, 8px);
    /* Match PlFlexDataAreaBlock's title height: 33 px min with an 8 px content offset toward
       the bottom edge so the heading sits just above the separator. */
    padding-bottom: var(--pl-flex-da-title-padding-bottom, 8px);
    min-height: var(--pl-flex-da-title-min-height, 33px);
}

/* Extend the title past the surrounding tile padding so the separator line spans the full
   widget width edge-to-edge. The --pl-tile-padding fallback mirrors the default in
   PlTileContainer.razor.css. */
.pl-tile-embedded-cell.pl-flex-da-title-top    > .pl-flex-da-title[b-xmnfgrhjsy],
.pl-tile-embedded-cell.pl-flex-da-title-bottom > .pl-flex-da-title[b-xmnfgrhjsy] {
    margin-left: calc(-1 * var(--pl-tile-padding, 16px));
    margin-right: calc(-1 * var(--pl-tile-padding, 16px));
    padding-left: var(--pl-tile-padding, 16px);
    padding-right: var(--pl-tile-padding, 16px);
}

.pl-tile-embedded-cell.pl-flex-da-title-start > .pl-flex-da-title[b-xmnfgrhjsy],
.pl-tile-embedded-cell.pl-flex-da-title-end   > .pl-flex-da-title[b-xmnfgrhjsy] {
    margin-top: calc(-1 * var(--pl-tile-padding, 16px));
    margin-bottom: calc(-1 * var(--pl-tile-padding, 16px));
    padding-top: var(--pl-tile-padding, 16px);
}

/* Title chrome: spacing between the title and the body plus the theme-driven 1px separator —
   direction depends on title position. */
.pl-tile-embedded-cell.pl-flex-da-title-top    > .pl-flex-da-title[b-xmnfgrhjsy] { margin-bottom: var(--pl-flex-da-title-spacing, 12px); border-bottom: var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-tile-embedded-cell.pl-flex-da-title-bottom > .pl-flex-da-title[b-xmnfgrhjsy] { margin-top:    var(--pl-flex-da-title-spacing, 12px); border-top:    var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-tile-embedded-cell.pl-flex-da-title-start  > .pl-flex-da-title[b-xmnfgrhjsy] { margin-right:  var(--pl-flex-da-title-spacing, 12px); border-right:  var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }
.pl-tile-embedded-cell.pl-flex-da-title-end    > .pl-flex-da-title[b-xmnfgrhjsy] { margin-left:   var(--pl-flex-da-title-spacing, 12px); border-left:   var(--pl-flex-da-title-separator, 1px solid #E5E8ED); }

/* Per-child wrapper in the title area. */
.pl-flex-item[b-xmnfgrhjsy] {
    display: flex;
    box-sizing: border-box;
    flex: 0 0 auto;
    min-width: 0;
    min-height: 0;
}

.pl-flex-size-stretch[b-xmnfgrhjsy] { flex: 1 1 auto; --pl-flex-btn-width: 100%; }
.pl-flex-size-auto[b-xmnfgrhjsy]    { flex: 0 0 auto; --pl-flex-btn-width: fit-content; }

/* End group: only the first item keeps the auto margin, the rest reset it so they stay together. Mirror of PlFlexDataAreaBlock.razor.css. */
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end[b-xmnfgrhjsy]    { margin-left: auto; }
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xmnfgrhjsy] { margin-left: 0; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end[b-xmnfgrhjsy]    { margin-top:  auto; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-end ~ .pl-flex-item.pl-flex-align-end[b-xmnfgrhjsy] { margin-top:  0; }
.pl-flex-da-title[style*="flex-direction: row"]    > .pl-flex-item.pl-flex-align-center[b-xmnfgrhjsy] { margin-left: auto; margin-right: auto; }
.pl-flex-da-title[style*="flex-direction: column"] > .pl-flex-item.pl-flex-align-center[b-xmnfgrhjsy] { margin-top:  auto; margin-bottom: auto; }

/* Figma select chrome for title-area listboxes — mirror of PlFlexDataAreaBlock.razor.css (the source of truth), needed here for lifted titles. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy] {
    align-self: center;
    height: 32px;
    min-width: 117px;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-df {
    width: 100% !important;
}

/* PlDataField's flex-flow reset flattens the inner datafield-customizing div to static/auto, which
   collapses a listbox (it needs that div to fill the .pl-df cell and anchor the dropdown icon).
   Restore the fill/anchor for listbox items. Mirror of PlFlexDataAreaBlock.razor.css. */
.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-df > div[class*="datafield-customizing-"] {
    position: absolute !important;
    inset: 0 !important;
}

/* !important beats the symbol-driven chrome (SymbolCssGenerator emits border/background with !important). */
.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-input-popover-container {
    box-sizing: border-box;
    background-color: #FFFFFF !important;
    border: 1px solid var(--pl-flex-title-select-border, #C4CBDA) !important;
    border-radius: 4px;
    padding-left: 12px;
    padding-right: 30px;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-input-field {
    font-size: 14px;
    line-height: 22px;
    color: var(--pl-flex-title-select-color, #0D1A26);
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-popover-icon.ddl-icon {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 3.75l4.5 4.5 4.5-4.5' fill='none' stroke='%238A95A8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 12px;
    cursor: pointer;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-popover-icon.ddl-icon::before {
    content: none;
}

.pl-flex-da-title > .pl-flex-item-listbox[b-xmnfgrhjsy]  .pl-popover-icon.ddl-icon:hover {
    background-color: transparent;
}

/* InTitle DFs are rendered as their df_hdg (Customizing.Title) text when set — that's the
   PLANTA-wide convention for labels. Mirrors .pl-flex-da-title-fallback in
   PlFlexDataAreaBlock.razor.css; keep the typography variables in sync. */
.pl-flex-da-title-fallback[b-xmnfgrhjsy] {
    align-self: center;
    font-family: var(--pl-flex-da-title-fallback-font-family, 'Asap', sans-serif);
    font-size: var(--pl-flex-da-title-fallback-font-size, 20px);
    font-weight: var(--pl-flex-da-title-fallback-font-weight, 600);
    line-height: var(--pl-flex-da-title-fallback-line-height, 28px);
    color: var(--pl-flex-da-title-fallback-color, #0d1a26);
}
/* /View/Components/DashboardComponents/PlTileFallbackCell.razor.rz.scp.css */
/* The outer `.pl-tile-fallback-cell` (also carrying `pl-block`) picks up the standard tile
   chrome from PlTileContainer.razor.css (white background, inset border, drop shadow, padding,
   border-radius). We just center the message inside that chrome. */
.pl-tile-fallback-cell[b-ryow5dioix] {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.pl-tile-fallback-cell-message[b-ryow5dioix] {
    color: var(--pl-color-warning, #c97b00);
    font-size: 13px;
    word-break: break-word;
}
/* /View/Components/DataFieldComponents/PlBackground.razor.rz.scp.css */
.pl-effect-blank[b-rnh1b5dreo] {
    background-color: white !important;
}
/* /View/Components/DataFieldComponents/PlButton.razor.rz.scp.css */
[b-fpt00e590y] .e-btn .e-btn-icon {
    display: unset;
    font-size: unset;
    margin-top: unset;
    vertical-align: unset;
    width: auto;
    margin: 0;
    padding: 0;
}

.pl-datafield-content[b-fpt00e590y] {
    overflow: unset !important;
    text-overflow: unset !important;
}

.pl-button[b-fpt00e590y] {
    width: 100%;
    height: 100%;
}

/* Shared layout for all buttons */
.pl-button[b-fpt00e590y]  .ant-btn {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* Unconfigured buttons: mimic MudBlazor appearance */
.pl-button:not(.pl-button-configured)[b-fpt00e590y]  .ant-btn {
    min-width: unset;
    background-color: white !important;
    border-radius: 0 !important;
    padding: 3px 3px !important;
    font-family: 'Roboto', sans-serif;
    letter-spacing: unset;
    text-transform: unset;
}

/* --pl-flex-btn-width comes from the flex cell wrapper (PlFlexDataAreaBlock.razor.css); the fallbacks keep the classic hug-the-caption sizing. */
.pl-button.pl-button-configured[b-fpt00e590y] {
    width: var(--pl-flex-btn-width, fit-content);
    height: fit-content;
}

/* Configured buttons: ignore parent DataField size, let AntDesign handle sizing */
.pl-button.pl-button-configured[b-fpt00e590y]  .ant-btn {
    display: inline-flex;
    position: static !important;
    width: var(--pl-flex-btn-width, auto) !important;
    height: auto !important;
    justify-content: center;
}

.pl-button-icon[b-fpt00e590y] {
    display: inline-block;
    vertical-align: middle;
}

.pl-button-icon-start[b-fpt00e590y] {
    margin-right: 3px;
}

.pl-button-icon-end[b-fpt00e590y] {
    margin-left: 3px;
}

.pl-button .e-btn-content[b-fpt00e590y] {
    display: inline-block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
}

.pl-button[b-fpt00e590y]  .ant-btn > span {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 5px;
}

/* Configured buttons: use flex gap for icon-text spacing */
.pl-button.pl-button-configured[b-fpt00e590y]  .ant-btn > span {
    gap: 8px;
}

/* Configured buttons: zero out icon margins (gap handles spacing) */
.pl-button.pl-button-configured .pl-button-icon[b-fpt00e590y] {
    margin: 0;
}

/* Icon-only configured buttons: square shape matching AntDesign standard sizes */
.pl-button.pl-button-configured.pl-button-icon-only[b-fpt00e590y]  .ant-btn {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    padding: 0 !important;
}

.pl-button.pl-button-configured.pl-button-icon-only[b-fpt00e590y]  .ant-btn.ant-btn-lg {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
}

.pl-button.pl-button-configured.pl-button-icon-only[b-fpt00e590y]  .ant-btn.ant-btn-sm {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
}

.pl-button[b-fpt00e590y]  i.pl-button-icon {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    font-size: 1.1em;
}

/* Outlook subscription button: drop AntDesign's default bottom shadow so it
   matches the borderless look of regular ImageButtons. */
.pl-button[b-fpt00e590y]  .ant-btn.pl-outlook-subscription-button {
    box-shadow: none !important;
}
/* /View/Components/DataFieldComponents/PlCheckBox.razor.rz.scp.css */
.e-icons.e-frame > input[type='checkbox'][b-qxol4qb5np] {
    height: 14px !important;
}
/* /View/Components/DataFieldComponents/PlDataField.razor.rz.scp.css */
.pl-df[b-0tzc8vr7pr] {
    width: 100%;
    height: 100%;
    position: absolute;
}

    .pl-df:focus-within[b-0tzc8vr7pr] {
        z-index: var(--z-index-focus-field) !important;
    }       
    
.pl-datafield-icon[b-0tzc8vr7pr] {
    object-fit: contain;
    padding-left: var(--spacing-field-padding, 3px);
    padding-right: var(--spacing-field-padding, 3px);
}

[b-0tzc8vr7pr] input:not(:focus) {
    color: inherit;
}

[b-0tzc8vr7pr] .pl-horizontaly-centered {
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
}

[b-0tzc8vr7pr] .pl-datafield-content {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

/* Flex-DA-hosted fields (FlowLayout cascade is true). Opening up overflow restores the
   intrinsic-size chain — without it .pl-datafield-content's overflow:hidden reports a
   max-content of 0 to its ancestors, pinning the wrapping .pl-flex-item to the declared
   df_width and never letting content grow the cell. Keep white-space: nowrap so the row
   layout stays single-line; the wrapper grows horizontally instead of wrapping. */
/* In flex flow the field's generated classic-layout rule (position: absolute; width/height: 100%)
   still hits the inner component root and collapses it to 0 when the outer .pl-df is width:auto.
   Reset the inner root to flow so it sizes to content (icon div excluded — no datafield-customizing class). */
.pl-df-flow[b-0tzc8vr7pr]  > div[class*="datafield-customizing-"] {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
}

.pl-df-flow[b-0tzc8vr7pr]  .pl-datafield-content {
    overflow: visible;
    text-overflow: clip;
    /* In a flex DA the field always carries symmetric horizontal breathing room regardless
       of text alignment — otherwise a right- or center-aligned cell would visibly hug one
       edge of its .pl-flex-item / row background while a left-aligned neighbour does not.
       The classic absolute-position layout still gates the padding on alignment via the
       .left-padding / .right-padding classes below, so this override is scoped to flow. */
    padding-left: var(--spacing-field-padding, 3px);
    padding-right: var(--spacing-field-padding, 3px);
}

    [b-0tzc8vr7pr] .pl-datafield-content.right-padding {
        padding-right: var(--spacing-field-padding, 3px);
    }

    [b-0tzc8vr7pr] .pl-datafield-content.left-padding {
        padding-left: var(--spacing-field-padding, 3px);
    }

[b-0tzc8vr7pr] .pl-text-align-right {
    text-align: right;
    justify-content: flex-end !important;
}

[b-0tzc8vr7pr] .pl-text-align-center {
    text-align: center;
    justify-content: center !important;
}

[b-0tzc8vr7pr] .pl-text-align-left {
    text-align: left;
    justify-content: flex-start !important;
}
/* /View/Components/DataFieldComponents/PlFileUpload.razor.rz.scp.css */
.upload-forbidden[b-0part6x82d] {
    cursor: not-allowed;
}

.error-message[b-0part6x82d] {
    padding: 1.5rem 1.5rem 0;
    margin: 0;
    color: red;
}
/* /View/Components/DataFieldComponents/PlFlexTagItem.razor.rz.scp.css */
/* Ant's .ant-tag defaults supply margin, radius, padding, and line-height that don't match
   the Figma tag spec — override them. Colours intentionally absent: the cascaded
   pl-symbol-{uid} rules from SymbolCssGenerator (border-color, background-color, color) already
   carry !important and win against Ant's defaults. */

[b-ls6ij1rmgf] .pl-flex-tag.ant-tag {
    border-radius: 3px !important;
    border-width: 1px !important;
    border-style: solid;
    margin: 0 !important;
    padding: 0 8px !important;
    line-height: 20px !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    font-size: 14px;
    box-sizing: border-box;
}

[b-ls6ij1rmgf] .pl-flex-tag .pl-flex-tag-icon {
    display: inline-flex;
    align-items: center;
    font-size: 14px;
    line-height: 1;
}

[b-ls6ij1rmgf] .pl-flex-tag .pl-flex-tag-text {
    line-height: 20px;
}
/* /View/Components/DataFieldComponents/PlImageButton.razor.rz.scp.css */
img[b-q6sft94f2z] {
    position: relative !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%);
}
/* /View/Components/DataFieldComponents/PlImageEditable.razor.rz.scp.css */
.image-editable-uploader:hover .image-editable img[b-myrt55luop] {
    outline: 1px solid #00a9ff;
}

.image-editable-uploader:hover .remove-img-btn[b-myrt55luop] {
    display: block;
}

.image-editable[b-myrt55luop] {
    position: absolute;
}

.remove-img-btn[b-myrt55luop] {
    display: none;
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.5);
    top: 3px;
    left: unset;
    right: 3px;
    transform: unset;
    z-index: 11;
}

    .remove-img-btn[b-myrt55luop]::before,
    .remove-img-btn[b-myrt55luop]::after {
        content: '';
        display: block;
        height: 1px;
        width: 15px;
        background-color: #1b1b1b;
        position: absolute;
        top: 50%;
        left: 50%;
    }

    .remove-img-btn[b-myrt55luop]::before {
        transform: translate(-50%, 0) rotate(45deg) !important;
    }
    
    .remove-img-btn[b-myrt55luop]::after {
        transform: translate(-50%, 0) rotate(-45deg) !important;
    }
/* /View/Components/DataFieldComponents/PlImageFallback.razor.rz.scp.css */
/* Avatar matches Figma User Avatar (Sidebar / User Dropdown):
   - 1px gradient stroke (full-opacity #0DB5F2 -> #0070B5)
   - Light gradient fill (same gradient at ~30% alpha, on white)
   - Dark blue text #0070B5
   The gradient border is achieved by stacking three background layers:
   the light tint and a white base both clipped to padding-box, and the
   full gradient clipped to border-box showing through a transparent border. */
.pl-image-fallback-initials[b-t9mw17gx8x] {
    width: 100%;
    height: 100%;
    min-width: 28px;
    min-height: 28px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(147deg, rgba(13, 181, 242, 0.3) 11%, rgba(0, 112, 181, 0.3) 100%) padding-box,
        linear-gradient(#FFFFFF, #FFFFFF) padding-box,
        linear-gradient(147deg, #0DB5F2 11%, #0070B5 100%) border-box;
    border: 1px solid transparent;
    color: var(--pl-color-seablue-7, #0070B5);
    font-family: Asap, sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    border-radius: 50%;
    text-transform: uppercase;
    user-select: none;
    overflow: hidden;
    flex-shrink: 0;
}
/* /View/Components/DataFieldComponents/PlInlineBar.razor.rz.scp.css */
.pl-inline-bar-wrapper[b-9c0c64nxsf] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    align-self: center;
}

/* Top/bottom lines hold optional label + value pairs. justify-content: space-between
   produces the figma "label on the left, value on the right" alignment without forcing
   the customizer to pick a separate alignment knob — a single item on the line falls
   back to its natural edge via the auto-margin trick. */
.pl-inline-bar-line-top[b-9c0c64nxsf],
.pl-inline-bar-line-bottom[b-9c0c64nxsf] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

/* Middle line wraps the bar so Start/End label / value slots can sit beside it. The
   bar itself takes flex: 1 to consume remaining space — a Start label + bar + End value
   row therefore shrinks the bar by exactly the labels' widths, matching the figma
   "Budget … 85%" layout. */
.pl-inline-bar-line-mid[b-9c0c64nxsf] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
}

.pl-inline-bar-line-mid > .pl-inline-bar[b-9c0c64nxsf] {
    flex: 1 1 auto;
    min-width: 0;
}

/* A standalone Top/Bottom value (no label on that line) should still hug the trailing
   edge so the figma "65%" / "85%" alignment holds. Putting the value alone on a
   space-between line lands it at the start by default — push it to the end with margin
   so the single-element case visually matches the two-element case. */
.pl-inline-bar-line-top > .pl-inline-bar-value:only-child[b-9c0c64nxsf],
.pl-inline-bar-line-bottom > .pl-inline-bar-value:only-child[b-9c0c64nxsf] {
    margin-left: auto;
}

.pl-inline-bar[b-9c0c64nxsf] {
    position: relative;
    display: block;
    width: 100%;
    height: 8px;
    background-color: var(--pl-inline-bar-track, rgba(0, 0, 0, 0.06));
    border-radius: 4px;
    overflow: hidden;
    align-self: center;
}

.pl-inline-bar-fill[b-9c0c64nxsf] {
    display: block;
    height: 100%;
    border-radius: inherit;
    transition: width 120ms ease-out;
}

/* Label & value typography. Kept intentionally lean — colour / weight match the
   secondary text token used elsewhere in dashboard tiles, so a customizer doesn't need
   to wire up a symbol for a one-off bar caption. */
.pl-inline-bar-label[b-9c0c64nxsf] {
    font-size: 12px;
    line-height: 16px;
    color: var(--pl-text-secondary, #6e6e6e);
    white-space: nowrap;
}

.pl-inline-bar-value[b-9c0c64nxsf] {
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    color: var(--pl-text-primary, #1f1f1f);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Inside variant — overlay the value on the bar's track. The bar is already
   position: relative; this centres the value over the full width so it doesn't drift
   with the fill. Mix-blend-mode keeps the digits readable over both the filled (left)
   and unfilled (right) portions of the track. */
.pl-inline-bar-value-inside[b-9c0c64nxsf] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    color: var(--pl-text-on-bar, #ffffff);
    mix-blend-mode: difference;
    font-size: 10px;
    line-height: 1;
}
/* /View/Components/DataFieldComponents/PlMarkdown.razor.rz.scp.css */
/* Editing: fixed slot size, no grow. White card beats the skin's transparent bg.
   Inner fill+scroll is in PlsMilkdownEditor.razor.css. */
.pl-markdown-wrapper.is-editing[b-55nnw8u097] {
    height: 100% !important;
    overflow: visible !important; /* don't clip the floating toolbar above the field */
    position: relative;
    background: var(--base-white, #fff) !important;
    outline: 1px solid var(--color-primary-light-blue, #00B2F5);
    outline-offset: -1px;
    box-shadow: 0 2px 10px rgba(0, 178, 245, 0.18), 0 1px 3px rgba(0, 0, 0, 0.08);
    z-index: 1;
}
/* /View/Components/DataFieldComponents/PlMultilineTextbox.razor.rz.scp.css */
.pl-multiline-wrapper[b-f2kzzjhm7d] {
    height: 100%;
    width: 100%;
    overflow-y: auto !important;
    box-sizing: border-box;
    position: relative;
}

.pl-multiline[b-f2kzzjhm7d] {
    width: 100%;
    min-height: 100%;
    box-sizing: border-box;
    text-overflow: ellipsis;
    border: none;
    outline: none;
    resize: none;
    line-height: 1.5em !important;
    background: inherit;
    overflow: auto !important;
    padding: 3px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

    .pl-multiline:focus[b-f2kzzjhm7d] {
        outline: none;
        border: none;
    }

/* Re-inherit font/spacing so the edit textarea matches the read-only div (form controls reset letter-spacing → ~1px "shrink" on focus). */
.pl-multiline-editor[b-f2kzzjhm7d] {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    letter-spacing: inherit;
    word-spacing: inherit;
}

/* Editing: stay within the field's slot and scroll, like the desktop client — no escape/grow.
   The wrapper keeps its slot height (base rule) so the field bounds don't change on activation;
   the textarea fills the slot and scrolls its overflow. Visual edit affordance lives on the textarea. */
.pl-multiline-wrapper.is-editing[b-f2kzzjhm7d] {
    position: relative;
    z-index: 1;
}

.pl-multiline-wrapper.is-editing .pl-multiline-editor[b-f2kzzjhm7d] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    resize: none;
    overflow-y: auto;
    background: var(--base-white, #fff);
    /* Outline (not border) so the frame doesn't take layout space — a border with
       box-sizing: border-box would shift the content ~1px on click→edit. */
    outline: 1px solid var(--color-primary-light-blue, #00B2F5);
    outline-offset: -1px;
    box-shadow: 0 2px 10px rgba(0, 178, 245, 0.18), 0 1px 3px rgba(0, 0, 0, 0.08);
}

[b-f2kzzjhm7d] .e-float-input textarea, [b-f2kzzjhm7d] .e-float-input.e-control-wrapper textarea {
    min-height: 0px !important;
}
/* /View/Components/DataFieldComponents/PlOutlookSubscriptionImageButton.razor.rz.scp.css */
i[b-g6nmyw4ysm] {
    position: relative !important;
    margin: auto !important;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
}
/* /View/Components/DataFieldComponents/PlTextBox.razor.rz.scp.css */
.pl-datafield-input-placeholder[b-ncf3tjm0im] {
    cursor: text;
}
/* /View/Components/DataFieldComponents/WebEmbeddedComponents/PlEmbeddedWebpage.razor.rz.scp.css */
.pl-popup-button[b-8ym9m3tuz6] {
    position: absolute;
    width: 50px;
    height: 50px;
    border: none;
    background: lightgrey;
    transition: visibility 0s, opacity 0.5s linear;
}

.pl-iframe-container[b-8ym9m3tuz6] {
    position: relative;
}

.pl-iframe-container iframe[b-8ym9m3tuz6] {
    border: none;
    display: block;
}

.pl-iframe-container .pl-popup-button[b-8ym9m3tuz6] {
    visibility: hidden;
    opacity: 0;
}

.pl-iframe-container:hover .pl-popup-button[b-8ym9m3tuz6] {
    visibility: visible;
    opacity: 0.5;
}

.pl-popup-button-top-left[b-8ym9m3tuz6] {
    left: 0;
    top: 0;
}

.pl-popup-button-top-right[b-8ym9m3tuz6] {
    right: 0;
    top: 0;
}

.pl-popup-button-bottom-left[b-8ym9m3tuz6] {
    left: 0;
    bottom: 0;
}

.pl-popup-button-bottom-right[b-8ym9m3tuz6] {
    right: 0;
    bottom: 0;
}
/* /View/Components/DialogComponents/PlDialogModule.razor.rz.scp.css */
.dialog-header[b-nwxvvhk5nk] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font-size: 18px;
}

    .dialog-header .dialog-title[b-nwxvvhk5nk] {

        font-weight: 600;
    }

.close-button[b-nwxvvhk5nk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    outline: none;
    background: none;
    cursor: pointer;
    flex-shrink: 0;
    opacity: 0.7;
    border-radius: 3px;
}

    .close-button img[b-nwxvvhk5nk] {
        width: 22px;
        height: 22px;
    }

    .close-button:hover[b-nwxvvhk5nk] {
        opacity: 1;
    }

    .close-button:focus-visible[b-nwxvvhk5nk] {
        opacity: 1;
        outline: 2px solid var(--pl-neutral-border-color-border);
        outline-offset: 2px;
    }
    
.pl-dialog-module-content-wrapper[b-nwxvvhk5nk]{
    flex: 1 1 0;
    min-height: 0;
}    
/* /View/Components/DialogComponents/PlMessageBox.razor.rz.scp.css */
.pl-msgbox-text-container[b-v7rf94pa6d] {
    display: flex;
    align-items: center;
    gap: 20px;
}

.pl-msgbox-inputs[b-v7rf94pa6d] {
    margin-top: 10px;
}

.pl-msgbox-actions[b-v7rf94pa6d] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
}
/* /View/Components/DialogComponents/PlPasswordChange.razor.rz.scp.css */
.password-title[b-y0fr2px9ij] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--mud-palette-primary);
    letter-spacing: 0.5px;
    margin: 4px 0;
}

.change-password-content[b-y0fr2px9ij] {
    width: 100%;
}

.password-field-container[b-y0fr2px9ij] {
    margin-bottom: 10px;
}

.password-label[b-y0fr2px9ij] {
    display: block;
    margin-bottom: 6px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--mud-palette-primary-darken);
    letter-spacing: 0.3px;
}

.password-input[b-y0fr2px9ij] {
    width: 100%;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, 0.23);
    border-radius: 4px;
    font-size: 1rem;
    line-height: 1;
    transition: border-color 0.2s ease;
}

    .password-input:focus[b-y0fr2px9ij] {
        outline: none;
        border-color: var(--mud-palette-primary);
        box-shadow: 0 0 0 2px rgba(var(--mud-palette-primary-rgb), 0.2);
    }

.error-message[b-y0fr2px9ij] {
    color: var(--mud-palette-error);
    font-size: 0.875rem;
    margin-top: 8px;
    font-weight: 500;
}
/* /View/Components/DialogComponents/ScheduleGenerationComponents/PlCreateScheduleMessageBox.razor.rz.scp.css */
[b-aq1xegcslg] .mud-button {
    padding: 10px 20px;
    border-radius: 4px;
    background: #F3F4F5;
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.08);

    text-transform: none !important;

    font-size: 16px;
    text-align: center;
    line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}
[b-aq1xegcslg] .mud-button:hover {
    background: #E3E5E8;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}
[b-aq1xegcslg] .mud-button-filled.mud-button-filled-primary {
    color: #FFF;
    background-color: var(--mud-palette-primary);
}
[b-aq1xegcslg] .mud-button-filled.mud-button-filled-primary:hover {
    background-color: #004575;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}
.ai-button-content[b-aq1xegcslg] {
    display: flex;
    align-items: center;
}

.text-14px[b-aq1xegcslg] {
    color: #3C3F43;
    font-family: Asap, serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 14px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

.pl-title-text[b-aq1xegcslg] {
    align-self: stretch;

    color: #000;
    font-family: Asap, serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}
/* /View/Components/DialogComponents/ScheduleGenerationComponents/PlGeneratedScheduleDialog.razor.rz.scp.css */
[b-iqhynrwdnj] .mud-button {
    padding: 10px 20px;
    border-radius: 4px;
    background: #F3F4F5;
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.08);

    text-transform: none !important;

    font-size: 16px;
    text-align: center;
    line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}
[b-iqhynrwdnj] .mud-button:hover {
    background: #E3E5E8;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}
[b-iqhynrwdnj] .mud-button-filled.mud-button-filled-primary {
    color: #FFF;
    background-color: var(--mud-palette-primary);
}
[b-iqhynrwdnj] .mud-button-filled.mud-button-filled-primary:hover {
    background-color: #004575;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}
.ai-button-content[b-iqhynrwdnj] {
    display: flex;
    align-items: center;
}

.custom-dialog-container[b-iqhynrwdnj] {
    position: fixed;
    display: flex;
    padding: 10px 16px;
    bottom: 55px;
    left: 50%;
    transform: translateX(-50%);
    z-index: var(--z-index-custom-dialog-container);
    width: auto;
    border-radius: 8px;
    background: white;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12);
    gap: 10px;
}

.custom-dialog-container[b-iqhynrwdnj]::after {
    content: '';
    position: absolute;
    inset: 0;
    padding: 1px; /* Border width */
    border-radius: 8px;
    background: linear-gradient(to right, #01B0F3 0%, #016AB4 100%);
    -webkit-mask:
            linear-gradient(#fff 0 0) content-box,
            linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.generated-schedule-text[b-iqhynrwdnj] {
    color: #000;
    font-family: Asap, serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0.4px;
}
/* /View/Components/DialogComponents/ScheduleGenerationComponents/PlGenerateScheduleDialog.razor.rz.scp.css */
[b-cnz4kd2u8n] .ant-input,
.df-container[b-cnz4kd2u8n]  .pl-popover-input {
    background-color: white;
    border: 1px solid var(--mud-palette-lines-inputs) !important;
    border-radius: var(--mud-default-borderradius);
    box-shadow: none !important;
    color: #000;
    font-family: Asap, serif !important;
    font-size: var(--font-size-body, 16px) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 20px; /* 125% */
    letter-spacing: var(--Font-Spacing-spacing-input, 0.15px);
    padding: 10px 8px !important;
    margin: 0;
}

.date-input-container .df-container[b-cnz4kd2u8n]  .pl-popover-input {
    border: none !important;
    background-color: transparent;
}

[b-cnz4kd2u8n] .ant-input:hover {
    border-color: rgba(0, 0, 0, 0.87) !important;
}

[b-cnz4kd2u8n] .ant-input:focus {
    border-color: var(--mud-palette-primary) !important;
    border-width: 2px !important;
    box-shadow: none !important;
    outline: none;
}

[b-cnz4kd2u8n] textarea.ant-input {
    resize: none;
}

.pl-dialog-title-text[b-cnz4kd2u8n] {
    color: #000;
    font-family: Asap, serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    line-height: 19.02px; /* 79.25% */
    letter-spacing: 0.4px;
}

[b-cnz4kd2u8n] .pl-popover-icon {
    padding-right: 8px;
}

.text-14px[b-cnz4kd2u8n] {
    color: #3C3F43;
    font-family: Asap, serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 14px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

.input-container[b-cnz4kd2u8n] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    flex-shrink: 0;
    width: 100%;
}

[b-cnz4kd2u8n] .ant-tag {
    background-color: white;
    margin: 4px;
    height: 24px;
    padding: 0 8px;
    border-radius: var(--mud-default-borderradius);
    border-color: var(--mud-palette-lines-inputs);
}

[b-cnz4kd2u8n] .ant-tag:hover {
    background-color: var(--mud-palette-action-default-hover);
}

/* Projektsteckbrief expansion panel — match the MudExpansionPanel look (grey card with rounded corners). */
[b-cnz4kd2u8n] .ant-collapse {
    background: #F4F6F8;
    border: none;
    border-radius: 4px;
    margin-top: 16px;
    width: 100%;
}

[b-cnz4kd2u8n] .ant-collapse > .ant-collapse-item {
    border: none;
}

[b-cnz4kd2u8n] .ant-collapse-content {
    background: transparent;
    border-top: none !important;
}

/* AntDesign also draws a bottom border on the header itself — disable it so we don't get a double line. */
[b-cnz4kd2u8n] .ant-collapse-item > .ant-collapse-header,
[b-cnz4kd2u8n] .ant-collapse-item > .ant-collapse-header::after {
    border-bottom: none !important;
    padding: 16px 24px;
}

/* Collapse with the expand icon on the right side — flip header layout and tweak arrow spacing. */
[b-cnz4kd2u8n] .ant-collapse-icon-position-right .ant-collapse-header {
    display: flex;
    flex-direction: row-reverse;
}

[b-cnz4kd2u8n] .ant-collapse-arrow {
    margin-left: 0 !important;
    margin-right: 5px !important;
}

[b-cnz4kd2u8n] .ant-collapse-expand-icon {
    margin: auto 0 !important;
}

[b-cnz4kd2u8n] .ant-collapse-content-box {
    padding: 0 24px 16px !important;
}

/*
 * NOTE: AntDesign Modal's header / body / footer wrap our ChildContent from the OUTSIDE,
 * and the portal lives in <body> after AntDesign moves it via JS. Those wrappers have no
 * scoped ancestor, so ::deep cannot reach them — those rules live in the <style> block
 * inside PlGenerateScheduleDialog.razor (global, scoped via WrapClassName).
 */

[b-cnz4kd2u8n] .anticon svg {
    max-height: 19px;
}

.mud-dialog .mud-dialog-title[b-cnz4kd2u8n] {
    padding: 24px 24px 20px;
    border-bottom: 1px solid #DEE2E6;
}

.pl-tipcontainer[b-cnz4kd2u8n] {
    display: flex;
    padding: 3px 6px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 2px;
    background: linear-gradient(116deg, #A4DBF2 17.06%, #40B0E3 94.37%);
}

.pl-tip-text[b-cnz4kd2u8n] {
    color: #3C3F43;
    font-family: Asap, serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 16px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

.pl-tip-heading[b-cnz4kd2u8n] {
    color: #0D1A26;
    font-family: Asap, serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 14px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

.pl-title-text[b-cnz4kd2u8n] {
    align-self: stretch;

    color: #000;
    font-family: Asap, serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

.pl-expansion-title[b-cnz4kd2u8n] {
    min-width: 420px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.expansion-content[b-cnz4kd2u8n] {
    border-top: 1px solid #DEE2E6;
    display: flex;
    padding-top: 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
}

.pl-title-content[b-cnz4kd2u8n] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pl-content-container[b-cnz4kd2u8n] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    align-self: stretch;
}

.pl-tooltip-container[b-cnz4kd2u8n] {
    display: contents;
}

.date-input-container[b-cnz4kd2u8n] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    align-self: stretch;
}

.df-container[b-cnz4kd2u8n] {
    background: white;
}

.df-container[b-cnz4kd2u8n]  > .pl-df {
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
}

.df-container[b-cnz4kd2u8n]  > .pl-df > div {
    border-radius: var(--mud-default-borderradius);
    border-color: var(--mud-palette-lines-inputs) !important;
    border-width: 1px !important;
    border-style: solid !important;
    transition: border-width,border-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;

    box-shadow: none !important;
}

.df-container[b-cnz4kd2u8n]  > .pl-df > div.pl-focused-df:focus-within {
    border-color: var(--mud-palette-primary) !important;
    border-width: 2px !important;
}

.pl-generating-container[b-cnz4kd2u8n] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 40px 0;
}

.pl-generating-text[b-cnz4kd2u8n] {
    font-size: 14px;
    color: #495057;
}

/* /View/Components/ExcelExport/PlExcelExportDialog.razor.rz.scp.css */
[b-rliro9xs0e] .mud-typography, [b-rliro9xs0e] .mud-input > input.mud-input-root,
[b-rliro9xs0e] .e-combobox input, .pl-layout-group-label[b-rliro9xs0e],
[b-rliro9xs0e] .pl-popover-owner, [b-rliro9xs0e] .pl-default-export-tab,
[b-rliro9xs0e] .pl-bulk-export-tab, [b-rliro9xs0e] .pl-popover-owner input::placeholder {
    color: #000;
    font-family: Asap, serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 19px; /* 118.75% */
    letter-spacing: 0.15px;
}
[b-rliro9xs0e] .mud-typography-h6, [b-rliro9xs0e] .mud-button {
    color: #000;
    font-family: Asap, serif;
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    line-height: 19.02px; /* 79.25% */
    letter-spacing: 0.4px;
}

[b-rliro9xs0e] label {
    margin: 0;
}

[b-rliro9xs0e] .pl-bottom-gap {
    margin-bottom: 13px;
}

[b-rliro9xs0e] .pl-top-gap {
    margin-top: 24px;
}

[b-rliro9xs0e] .pl-default-export-tab, [b-rliro9xs0e] .pl-bulk-export-tab {
    color: #3C3F43;
    text-align: center;
    font-weight: 500;
    line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);

    border: 1px solid #DEE2E6;
    text-transform: none !important;
    min-height: 0 !important;
}

[b-rliro9xs0e] .pl-default-export-tab {
    border-radius: 4px 0 0 4px;
}

[b-rliro9xs0e] .pl-bulk-export-tab {
    border-radius: 0 4px 4px 0;
}

[b-rliro9xs0e] .pl-default-export-tab.pl-active-tab, [b-rliro9xs0e] .pl-bulk-export-tab.pl-active-tab {
    color: #005794;
    border: 1px solid #005794;
    background: #EFF8FF;
}

[b-rliro9xs0e] .mud-tabs-tabbar.mud-tabs-border-top {
    border: none !important;
}

[b-rliro9xs0e] .mud-tab-slider.mud-tab-slider-horizontal {
    height: 0;
}

[b-rliro9xs0e] .mud-icon-button{
    padding: 0;
}

[b-rliro9xs0e] .mud-checkbox > p {
    margin-left: 8px;
}

[b-rliro9xs0e] .e-ddl-icon {
    width: 46px;
}

[b-rliro9xs0e] .pl-popover-owner {
    display: flex;
    height: var(--spacing-field-height-dense, 40px) !important;
    padding: var(--spacing-padding-md, 16px) var(--spacing-padding-sm, 14px);
    align-items: center;
    gap: var(--spacing-padding-xs, 8px);
    align-self: stretch;
    border-radius: var(--border-radius-default, 4px);
    border: 1px solid var(--color-theme-lines-inputs, #BDBDBD);
    background: var(--color-theme-white, #FFF);
}
    [b-rliro9xs0e] .pl-popover-owner:hover {
        border-color: var(--mud-palette-action-default) !important;
    }
    [b-rliro9xs0e] .pl-popover-owner:focus-within {
        border-width: 2px !important;
        border-color: var(--mud-palette-primary) !important;
    }
    [b-rliro9xs0e] .pl-popover-owner input {
        height: auto !important;
    }
        [b-rliro9xs0e] .pl-popover-owner input::placeholder {
            color: var(--color-theme-gray-default, #9E9E9E);
            font-size: var(--font-size-body, 16px);
            line-height: var(--font-line-height-input, 19px); /* 118.75% */
        }
[b-rliro9xs0e] .mud-input>input.mud-input-root-outlined {
    padding: 10.5px 14px !important;
}

[b-rliro9xs0e] .mud-button {
    padding: 10px 20px;
    border-radius: 4px;
    background: #F3F4F5;
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.08);

    text-transform: none !important;

    font-size: 16px;
    text-align: center;
    line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

[b-rliro9xs0e] .mud-button:hover {
    background: #E3E5E8;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}

[b-rliro9xs0e] .mud-button-filled.mud-button-filled-primary {
    color: #FFF;
    background-color: var(--mud-palette-primary);
}

[b-rliro9xs0e] .mud-button-filled.mud-button-filled-primary:hover {
    background-color: #004575;
    box-shadow: 0 5px 6px 0 rgba(0, 0, 0, 0.12);
}

[b-rliro9xs0e] .mud-tabs-tabbar .mud-tabs-tabbar-inner {
    min-height: 0;
    padding-bottom: 8px;
}

[b-rliro9xs0e] .e-input-group:not(.e-disabled) .e-input-group-icon:hover, .e-input-group.e-control-wrapper:not(.e-disabled) .e-input-group-icon:hover[b-rliro9xs0e] {
    background: rgba(0, 0, 0, 0);
    color: #495057;
}

.pl-panel-content[b-rliro9xs0e] {
    padding: 16px;
    height: 216px;
    overflow: hidden;
    border-radius: 4px;
    background: #F3F4F5;
    text-align: left;
}

.pl-layout-group-label[b-rliro9xs0e] {
    color: #3C3F43;
    font-size: 14px;
    line-height: 100%; /* 14px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
    margin-bottom: 12px;
}

.pl-dialog-actions[b-rliro9xs0e] {
    display: flex;
    gap: 12px;
}
/* /View/Components/GlobalOverlay/PlProgressOverlayProvider.razor.rz.scp.css */
.progress-overlay[b-z34r4bckko] {
    position: absolute;
    inset: 0;
    /* Must sit above the toolbar (--z-index-top-element) so it dims and blocks it. */
    z-index: calc(var(--z-index-top-element) + 1000);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background-color: rgba(255, 255, 255, 0.5);
}

.progress-message[b-z34r4bckko] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 500;
}
/* /View/Components/HeaderComponents/PlBusyIndicator.razor.rz.scp.css */
.busymode-animation-container[b-hwcbnvpebm] {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 4px;
    z-index: calc(var(--z-index-top-element) + 5);
}

[b-hwcbnvpebm] .mud-progress-linear-bar {
    background-color: #009dd9 !important;
}
/* /View/Components/HeaderComponents/PlColumnChooser.razor.rz.scp.css */
.text[b-5xblphg7cv], input.checkbox[b-5xblphg7cv] {
    vertical-align: middle;
}

.context-menu-item[b-5xblphg7cv] {
    font-size: 11px;
    display: flex;
    gap: 5px;
    align-items: center;
}
/* /View/Components/HeaderComponents/PlTitleTemplate.razor.rz.scp.css */
.title[b-ye7ag7kt5v] {
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    height: 100%;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
}

    .title > .title-text[b-ye7ag7kt5v] {
        flex-shrink: 1;
        flex-grow: 1;
        flex-basis: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        font-family: 'Roboto', serif;
    }

.title-text.left[b-ye7ag7kt5v] {
    padding-left: var(--spacing-field-padding, 3px);
}

.title-text.right[b-ye7ag7kt5v] {
    padding-right: var(--spacing-field-padding, 3px);
}

/* Ensure drag cursor is not overridden during title drag operations */
body.dragging-title[b-ye7ag7kt5v], body.dragging-title *[b-ye7ag7kt5v] {
    cursor: url("icons/cursors/hand-back-fist.png"), grabbing !important;
}

/* Prevent pointer events on other elements during drag to avoid cursor conflicts */
body.dragging-title *:not(.title)[b-ye7ag7kt5v] {
    pointer-events: none;
}

/* Keep pointer events on dragged title for smooth interaction */
body.dragging-title .title[b-ye7ag7kt5v] {
    pointer-events: auto;
}

/* Plus icon styling */
.pl-title-plus-icon[b-ye7ag7kt5v] {
    cursor: pointer;
    margin: auto 3px;
    display: inline-flex;
    align-items: center;
}

    .pl-title-plus-icon[b-ye7ag7kt5v]  .anticon {
        color: #28a745;
        font-size: 15px;
        line-height: 0;
        pointer-events: none;
    }

        .pl-title-plus-icon[b-ye7ag7kt5v]  .anticon svg {
            shape-rendering: geometricPrecision;
        }

            .pl-title-plus-icon[b-ye7ag7kt5v]  .anticon svg path {
                stroke: currentColor;
                stroke-width: 60;
                stroke-linecap: round;
                stroke-linejoin: round;
                paint-order: stroke fill;
            }

    .pl-title-plus-icon:hover[b-ye7ag7kt5v]  .anticon {
        color: #34ce57;
    }

    .pl-title-plus-icon:active[b-ye7ag7kt5v]  .anticon {
        color: #1e7e34;
    }
/* /View/Components/HelpDeskComponents/PlFeedback.razor.rz.scp.css */
.feedback-container[b-2e06xknvua] {
    font-family: Asap, sans-serif;
    width: 100%;
    height: 100%;
    margin: auto;
    overflow: hidden;
}

.feedback-header[b-2e06xknvua] {
    display: flex;
    width: 100%;
    padding: 16px 24px;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    background: linear-gradient(285deg, #132836 6.92%, #263C4A 96.33%);
}

.feedback-title[b-2e06xknvua] {
    align-self: stretch;
    color: #FFF;
    font-family: Asap, sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 19px;
    letter-spacing: 0.15px;
}

.feedback-header p[b-2e06xknvua] {
    color: #FFF;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%; /* 22.4px */
    letter-spacing: 0.15px;
    margin-bottom: 0;
}

.feedback-body[b-2e06xknvua] {
    height: 100%;
    padding: 16px 24px;
    display: flex;
    flex-flow: column;
    justify-content: stretch;
    gap: 16px;
}

.sentiment-selector[b-2e06xknvua] {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 16px;
}

.sentiment-btn[b-2e06xknvua] {
    display: flex;
    height: 55px;
    font-size: 2.5em;
    padding: 12px 16px;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex: 1 0 0;
    border: 1px solid transparent;
    border-radius: 4px;
    background: #FFF;
    color: #8A95A8;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.08);
    outline: none;
}

    .sentiment-btn.active[b-2e06xknvua] {
        border: 1px solid #005794;
        color: #005794;
        background: #EFF8FF;
        box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.08);
    }

.category-selector[b-2e06xknvua] {
    display: inline-flex;
    align-items: flex-start;
    align-content: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}

    .category-selector button[b-2e06xknvua] {
        display: flex;
        padding: 6px 12px;
        justify-content: center;
        align-items: center;
        gap: 10px;
        border-radius: 4px;
        border: 1px solid #DEE2E6;
        color: #3C3F43;
        text-align: center;
        font-family: Asap, sans-serif;
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
        letter-spacing: var(--font-letter-spacing-caption, 0.4px);
        outline: none;
    }

        .category-selector button.active[b-2e06xknvua] {
            border: 1px solid #005794;
            color: #005794;
            background: #EFF8FF;
            box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.08);
        }

.form-group[b-2e06xknvua] {
    margin-bottom: 0;
}

    .form-group label[b-2e06xknvua] {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        color: #344D5F;
        font-family: Asap, sans-serif;
        font-size: 16px;
        font-style: normal;
        font-weight: 600;
        line-height: 140%; /* 22.4px */
        letter-spacing: 0.15px;
        margin-bottom: 0;
    }

    .form-group.email-group[b-2e06xknvua] {
        display: flex;
        width: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

        .form-group.email-group input[b-2e06xknvua] {
            display: flex;
            font-size: 14px;
            height: var(--spacing-field-height-dense, 40px);
            padding: var(--spacing-padding-md, 12px) var(--spacing-padding-sm, 10px);
            align-items: center;
            gap: var(--spacing-padding-xs, 8px);
            align-self: stretch;
            border-radius: var(--border-radius-default, 4px);
            border: 1px solid #DEE2E6;
            background: var(--color-theme-white, #FFF);
            outline: none;
        }

            .form-group.email-group input:focus[b-2e06xknvua] {
                outline: 1px solid #005794;
            }

            .form-group.email-group input.invalid[b-2e06xknvua] {
                border: 1px solid #dc3545;
            }

            .form-group.email-group input.invalid:focus[b-2e06xknvua] {
                outline: 1px solid #dc3545;
            }

        .form-group.email-group .form-text[b-2e06xknvua] {
            color: #3C3F43;
            font-family: Asap, sans-serif;
            font-size: 14px;
            font-style: normal;
            font-weight: 400;
            line-height: 130%; /* 18.2px */
            letter-spacing: var(--font-letter-spacing-caption, 0.4px);
        }

    .form-group.feedback-group .textarea-container[b-2e06xknvua] {
        position: relative;
        width: 100%;
    }

    .form-group.feedback-group textarea[b-2e06xknvua] {
        display: flex;
        font-size: 14px;
        width: 100%;
        height: 180px;
        padding: var(--spacing-padding-md, 12px) var(--spacing-padding-sm, 10px);
        padding-bottom: 30px;
        align-items: flex-start;
        gap: var(--spacing-padding-xs, 8px);
        flex-shrink: 0;
        border-radius: var(--border-radius-default, 4px);
        border: 1px solid #DEE2E6;
        background: var(--color-theme-white, #FFF);
        box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.06);
        resize: none;
        outline: none;
        box-sizing: border-box;
    }

        .form-group.feedback-group textarea:focus[b-2e06xknvua] {
            outline: 1px solid #005794;
        }

    .form-group.feedback-group .character-count[b-2e06xknvua] {
        position: absolute;
        bottom: 8px;
        right: 12px;
        color: #8A95A8;
        font-family: Asap, sans-serif;
        font-size: 12px;
        font-style: normal;
        font-weight: 400;
        line-height: 100%;
        letter-spacing: 0.4px;
        pointer-events: none;
    }

.feedback-send-btn[b-2e06xknvua] {
    width: 100%;
    display: inline-flex;
    padding: 10px 16px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 4px;
    background: #005794;
    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.08);
    outline: none;
}

.optional-tag[b-2e06xknvua] {
    display: flex;
    padding: 2px 4px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 4px;
    background: #DEDEE4;
    color: #3C3F43;
    font-family: Asap, sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%; /* 12px */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
}

[b-2e06xknvua] .feedback-send-btn {
    width: 100%;
    display: inline-flex;
    padding: 10px 16px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 4px;
    background: #005794;
    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.08);
    color: #FFF;
    text-align: center;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: var(--font-line-height-caption, 19.02px); /* 118.875% */
    letter-spacing: var(--font-letter-spacing-caption, 0.4px);
    text-transform: none;
    outline: none;
}

    [b-2e06xknvua] .feedback-send-btn:hover {
        background: #004b7f;
    }

    [b-2e06xknvua] .feedback-send-btn:disabled {
        background: lightgray !important;
    }


[b-2e06xknvua] .feedback-send-btn .button-text {
    margin-left: 8px;
}

.feedback-footer[b-2e06xknvua] {
    color: #344D5F;
    font-family: Asap, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%;
    letter-spacing: 0.15px;
}

.feedback-confirmation[b-2e06xknvua] {
    display: flex;
    flex-flow: column;
    padding: 40px 24px;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.feedback-confirmation-check[b-2e06xknvua] {
    color: #018E88;
    width: 58px;
    height: 58px;
    flex-shrink: 0;
    font-size: 55px;
}

.feedback-confirmation-title[b-2e06xknvua] {
    color: #00847F;
    text-align: center;
    font-family: Asap, sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 19px; /* 95% */
    letter-spacing: 0.15px;
    margin-top: 10px;
}

.feedback-confirmation-text[b-2e06xknvua] {
    color: #132836;
    text-align: center;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%; /* 22.4px */
    letter-spacing: 0.15px;
    margin-bottom: 20px;
}

.feedback-error-icon[b-2e06xknvua] {
    color: #dc3545;
    width: 58px;
    height: 58px;
    flex-shrink: 0;
    font-size: 55px;
}

.feedback-error-title[b-2e06xknvua] {
    color: #dc3545;
    text-align: center;
    font-family: Asap, sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 19px;
    letter-spacing: 0.15px;
    margin-top: 10px;
}

.feedback-error-text[b-2e06xknvua] {
    color: #132836;
    text-align: center;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%;
    letter-spacing: 0.15px;
    margin-bottom: 20px;
}
/* /View/Components/HelpDeskComponents/PlFeedbackItem.razor.rz.scp.css */
.feedback-footer[b-7go5zql797] {
    color: #344D5F;
    font-family: Asap, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%;
    letter-spacing: 0.15px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
    padding: 0 24px 16px 24px;
}
/* /View/Components/HelpDeskComponents/PlHelpDesk.razor.rz.scp.css */
.help-desk-container[b-y73mv9yykv] {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    color: #132836;
}

.help-desk-header[b-y73mv9yykv] {
    width: 100%;
    height: auto;
    min-height: 60px;
    padding: 16px 20px;
    border-bottom: 1px solid #e9ecef;
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-self: stretch
}

    .help-desk-header .close-button[b-y73mv9yykv] {
        max-width: 25px;
        max-height: 25px;
        min-width: 25px;
        min-height: 25px;
        font-size: 20px;
        border: none;
        outline: none;
    }

        .help-desk-header .close-button:focus[b-y73mv9yykv],
        .help-desk-header .close-button:active[b-y73mv9yykv] {
            border: none;
            outline: none;
            box-shadow: none;
        }

        .help-desk-header .close-button:hover[b-y73mv9yykv] {
            color: #ff3300;
        }

.help-desk-title[b-y73mv9yykv] {
    display: flex;
    flex-direction: row;
    gap: 6px;
}

    .help-desk-title .title-text[b-y73mv9yykv] {
        color: inherit;
        leading-trim: both;
        text-edge: cap;
        font-family: Asap;
        font-size: 20px;
        font-style: normal;
        font-weight: 500;
        line-height: normal;
    }

    .help-desk-title .title-icon[b-y73mv9yykv] {
        display: flex;
        width: 24px;
        height: 24px;
        justify-content: center;
        align-items: center;
        background-color: #455A6B;
        -webkit-mask: url(icons/accordionIcon.svg) no-repeat center;
        mask: url(icons/accordionIcon.svg) no-repeat center;
    }

.help-desk-content[b-y73mv9yykv] {
    width: 100%;
    flex: 1;
    overflow-y: auto;
    max-height: 785px;
    min-height: 650px;
}

.back-button[b-y73mv9yykv] {
    font-size: 1.3em;
    padding-top: 3px;
    width: 1em;
    outline: none;
}

.help-desk-items-list[b-y73mv9yykv] {
    width: 100%;
    padding: 16px 24px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.help-desk-footer[b-y73mv9yykv] {
    width: 100%;
    height: auto;
}

.help-desk-footer-content[b-y73mv9yykv] {
    padding: 20px;
    height: 60px;
    text-align: center;
    vertical-align: middle;
}

.help-desk-help-link[b-y73mv9yykv] {
    color: #005794;
    font-family: Asap;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
}

.ai-footer-content[b-y73mv9yykv] {
    color: #5B687B;
    text-align: center;
    font-family: Asap;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    padding: 16px;
}
/* /View/Components/HelpDeskComponents/PlHelpDeskItem.razor.rz.scp.css */
.help-desk-item[b-ef6460usoj] {
    width: 100%;
    display: flex;
    height: 60px;
    padding: 8px 12px;
    align-items: center;
    gap: 16px;
    border-radius: 4px;
    border: 1px solid #DEE2E6;
    font-family: Asap, sans-serif;
    color: #132836;
    cursor: pointer;
}

    .help-desk-item.disabled[b-ef6460usoj] {
        user-select: none;
        pointer-events: none;
        cursor: not-allowed;
        opacity: 0.4;
        background-color: #fafafa;
    }

    .help-desk-item.disabled[b-ef6460usoj]  a {
        pointer-events: auto !important;
        cursor: pointer !important;
    }

    .help-desk-item:hover:not(.disabled)[b-ef6460usoj] {
        background: #00b2f50f;
        box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.08) !important;
    }

    .help-desk-separator[b-ef6460usoj] {
        width: 382px;
        height: 1px;
        background: #DEE2E6;
        margin: 12px 0;
    }

.help-desk-item-title[b-ef6460usoj] {
    color: #132836;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.help-desk-item-icon[b-ef6460usoj] {
    width: 25px;
    height: 30px;
    font-size: 22px;
}

.help-desk-item-content[b-ef6460usoj] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    flex: 1 0 0;
}

.help-desk-item-description[b-ef6460usoj] {
    color: #132836;
    font-family: Asap, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    user-select: none;
    white-space: nowrap;  
}

.help-desk-nav-icon[b-ef6460usoj] {
    font-size: 16px;
    padding: 12px 5px;
}

.item-label[b-ef6460usoj] {
    padding: 3px 6px;
    justify-content: center;
    align-items: center;
    border-radius: 2px;
    font-family: Asap, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
}

    .item-label.doku[b-ef6460usoj] {
        background: #D6DAE6;
    }

    .item-label.tipp[b-ef6460usoj] {
        background: #018E88;
        color: #FFF;
    }

    .item-label.video[b-ef6460usoj] {
        background: #F3A945;
        color: #FFF;
    }

    .item-label.tutorial[b-ef6460usoj] {
        background: #A4DBF2;
        color: #FFF;
    }
/* /View/Components/HelperComponents/PlAnimateAutoHeight.razor.rz.scp.css */
.collapsed[b-hrlo0a9rv0] {
    height: 0;
}

.expanded[b-hrlo0a9rv0] {
    height: auto;
}
/* /View/Components/HelperComponents/PlDotSpinner.razor.rz.scp.css */
.pl-dot-spinner[b-z1nvxvgpga] {
    --radius: 16px;
    --dot: 6px;
    position: relative;
    width: calc(var(--radius) * 2);
    height: calc(var(--radius) * 2);
}

.pl-dot-spinner__dot[b-z1nvxvgpga] {
    position: absolute;
    width: var(--dot);
    height: var(--dot);
    border-radius: 50%;
    background: #1890ff;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    animation: pl-dot-pulse-b-z1nvxvgpga 1s linear infinite;
    animation-delay: calc((var(--i) - 9) * 0.125s);
}

.pl-dot-spinner__dot:nth-child(1)[b-z1nvxvgpga] { --angle:   0deg; --i: 1; }
.pl-dot-spinner__dot:nth-child(2)[b-z1nvxvgpga] { --angle:  45deg; --i: 2; }
.pl-dot-spinner__dot:nth-child(3)[b-z1nvxvgpga] { --angle:  90deg; --i: 3; }
.pl-dot-spinner__dot:nth-child(4)[b-z1nvxvgpga] { --angle: 135deg; --i: 4; }
.pl-dot-spinner__dot:nth-child(5)[b-z1nvxvgpga] { --angle: 180deg; --i: 5; }
.pl-dot-spinner__dot:nth-child(6)[b-z1nvxvgpga] { --angle: 225deg; --i: 6; }
.pl-dot-spinner__dot:nth-child(7)[b-z1nvxvgpga] { --angle: 270deg; --i: 7; }
.pl-dot-spinner__dot:nth-child(8)[b-z1nvxvgpga] { --angle: 315deg; --i: 8; }

@keyframes pl-dot-pulse-b-z1nvxvgpga {
    0% {
        transform: rotate(var(--angle)) translateY(calc(-1 * var(--radius))) scale(1.1);
        opacity: 1;
    }
    100% {
        transform: rotate(var(--angle)) translateY(calc(-1 * var(--radius))) scale(0.5);
        opacity: 0.3;
    }
}
/* /View/Components/HelperComponents/PlInput.razor.rz.scp.css */
.pl-input-wrapper[b-qoc4wgm7o5] {
    position: relative;
    width: 100%;
    height: 100%;
}

.pl-input-container[b-qoc4wgm7o5] {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

.pl-input-base[b-qoc4wgm7o5] {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    word-spacing: inherit;
    text-indent: 0;
    box-sizing: border-box;
    text-align: inherit;
    vertical-align: top;
}

.pl-input-backdrop[b-qoc4wgm7o5] {
    white-space: nowrap;
    overflow: hidden;
    color: transparent;
    pointer-events: none;
    align-content: center;
}

.pl-input-field[b-qoc4wgm7o5] {
    background: transparent;
    color: inherit;
    caret-color: currentColor;
    z-index: 1;
    outline: none;
}

.pl-input-field[b-qoc4wgm7o5]::placeholder {
    color: var(--placeholder-color, #999);
    opacity: 1;
}
/* /View/Components/HelperComponents/PlModal.razor.rz.scp.css */
/* Custom close button styling */
[b-jxg632l421] .pl-custom-close-button {
    position: relative;
    padding: 4px;
    color: rgba(0, 0, 0, 0.45);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    background: transparent;
    border: 0;
    outline: 0;
    cursor: pointer;
    transition: all 0.3s;
    border-radius: 4px;
}

[b-jxg632l421] .pl-custom-close-button:hover {
    color: rgba(0, 0, 0, 0.88);
    background-color: rgba(0, 0, 0, 0.06);
}

[b-jxg632l421] .pl-custom-close-button .ant-modal-close-x {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: 16px;
    font-style: normal;
    line-height: 22px;
    text-align: center;
    text-transform: none;
    text-rendering: auto;
}

/* Fullscreen button styling */
[b-jxg632l421] .pl-modal-fullscreen-button {
    color: rgba(0, 0, 0, 0.55);
    transition: all 0.3s;
    background: transparent;
    border-radius: 4px;
    padding: 4px;
}

[b-jxg632l421] .pl-modal-fullscreen-button:hover {
    color: rgba(0, 0, 0, 0.88) !important;
    background-color: rgba(0, 0, 0, 0.06);
}
/* /View/Components/HelperComponents/PlPopover.razor.rz.scp.css */
.pl-popover-owner[b-kck6k2h8z9] {
    width: auto;
    height: auto;
}

.pl-tooltip-module-owner[b-kck6k2h8z9] {
    height: 100%;
    width: 100%;
}

.pl-tooltip-module-owner:has(.pl-button-configured)[b-kck6k2h8z9] {
    width: fit-content;
    height: fit-content;
}

[b-kck6k2h8z9] .e-ddl-icon {
    border: none !important;
}

.pl-popover-content[b-kck6k2h8z9] {
    background-color: white;
    display: flex;
    max-height: 500px;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

[b-kck6k2h8z9] .pl-scroll {
    overflow-x: hidden !important;
}

.pl-popup-module[b-kck6k2h8z9] {
    overflow: hidden;
    flex: 1 1 auto;
    min-width: 0;
}
/* /View/Components/LoginComponents/PlLoginForm.razor.rz.scp.css */
.login-form[b-4f8qebc46l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.login-form-content[b-4f8qebc46l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 0 40px;
    max-width: calc(100vw - 80px);
}

.login-logo[b-4f8qebc46l] {
    height: 128px;
    width: auto;
    margin-bottom: 16px;
}

.login-button[b-4f8qebc46l] {
    margin-top:10px;
}

.login-title[b-4f8qebc46l] {
    color: var(--color-primary-dark-blue, #00375B);
    font-family: Asap, serif;
    font-size: 28px;
    font-style: normal;
    font-weight: 600;
    line-height: 36px;
    letter-spacing: -0.84px;
    text-align: center;
}

.login-username[b-4f8qebc46l], .login-password[b-4f8qebc46l], .login-button[b-4f8qebc46l] {
    width: 300px;
    max-width: 100%;
}

.login-form-footer[b-4f8qebc46l] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: flex;
    padding: 24px 0px;
    justify-content: center;
    align-items: center;
}

.login-alert[b-4f8qebc46l] {
    text-align: center;
    margin-top: 20px;
    color: darkred;
    font-size: 16px;
    font-family: inherit;
}

[b-4f8qebc46l] .ant-input-lg {
    height: 40px;
    font-size: 14px;
    border-radius: 4px;
}

[b-4f8qebc46l] .ant-input-affix-wrapper-lg {
    height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 4px;
    align-items: center;
}

[b-4f8qebc46l] .ant-input-affix-wrapper-lg > input.ant-input {
    font-size: 14px;
    line-height: 1.5;
    height: auto;
}

[b-4f8qebc46l] .e-login-btn {
    width: 100%;
    height: auto;
    font-weight: 500;
    font-size: 20px;
    border-radius: 7px;
    padding: 10px 0;
}

/* /View/Components/LoginComponents/PlMessageContainer.razor.rz.scp.css */
.message-text[b-j1d0fyv7ro] {
    text-align: center;
    margin-top: 20px;
    font-size: 20px;
}

    .message-text .info[b-j1d0fyv7ro] {
        color: rgb(0,72,111);
    }

.form-holder[b-j1d0fyv7ro] {
    width: max(350px, 70%);
    height: auto;
    margin: auto;
    padding: 30px;
    background: inherit;
    background-color: rgba(255, 255, 255, .15);
    backdrop-filter: blur(5px);
    border-radius: 5px;
    font-family: Arial, Helvetica, sans-serif;
    overflow: auto;
}

/* The timeout button was previously a MudButton Color.Warning. AntDesign renders it as a
   primary (blue) button, so restore the original warning (orange) fill using the PLANTA
   warning design tokens. */
[b-j1d0fyv7ro] .pl-btn-warning.ant-btn-primary {
    background-color: var(--pl-semantic-warning-color-warning) !important;
    border-color: var(--pl-semantic-warning-color-warning) !important;
}

[b-j1d0fyv7ro] .pl-btn-warning.ant-btn-primary:hover,
[b-j1d0fyv7ro] .pl-btn-warning.ant-btn-primary:active {
    background-color: var(--pl-semantic-warning-color-warning-active) !important;
    border-color: var(--pl-semantic-warning-color-warning-active) !important;
}
/* /View/Components/MenuComponents/PlMenuNode.razor.rz.scp.css */
/* Checkmark shown inside the icon slot for checked menu items */
.pl-logo-menu-icon[b-ux5gcp8sgy] {
    color: var(--color-primary, #1890ff);
    font-weight: bold;
}

/* Subtle indicator on checked items */
.pl-logo-menu-item-checked .pl-logo-menu-label[b-ux5gcp8sgy] {
    font-weight: 600;
}
/* /View/Components/ModuleComponents/PlAgileModuleTabItem.razor.rz.scp.css */
.pulse-board-loading-state[b-97xxytm4m6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 240px;
    gap: 16px;
    color: var(--mud-palette-text-secondary, #5e6c84);
}

.pulse-board-loading-spinner[b-97xxytm4m6] {
    width: 32px;
    height: 32px;
    border: 3px solid #dfe1e6;
    border-top-color: #0078d4;
    border-radius: 50%;
    animation: pulse-board-spin-b-97xxytm4m6 1s linear infinite;
}

@keyframes pulse-board-spin-b-97xxytm4m6 {
    to {
        transform: rotate(360deg);
    }
}

.pulse-project-settings-placeholder[b-97xxytm4m6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 100%;
    padding: 24px;
    text-align: center;
}

.pulse-project-settings-placeholder h3[b-97xxytm4m6] {
    margin: 0;
}
/* /View/Components/ModuleComponents/PlDockedModule.razor.rz.scp.css */
.pl-docked-module[b-6qw69ndn9t] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.pl-docked-module-header[b-6qw69ndn9t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 16px 16px 24px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--pl-neutral-border-color-border-secondary);
}

.pl-docked-module-title[b-6qw69ndn9t] {
    font-family: Asap, sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.33;
    color: var(--pl-neutral-text-color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1;
}

.pl-docked-module-header-actions[b-6qw69ndn9t] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.pl-docked-module-header-btn[b-6qw69ndn9t] {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    outline: none;
    padding: 0;
    cursor: pointer;
    border-radius: 3px;
    color: var(--pl-neutral-text-color-text-heading);
    transition: background 0.15s;
}

.pl-docked-module-header-btn:hover[b-6qw69ndn9t] {
    background: rgba(0, 0, 0, 0.06);
}

.pl-docked-module-header-btn:focus-visible[b-6qw69ndn9t] {
    outline: 2px solid var(--pl-neutral-border-color-border);
    outline-offset: 2px;
}

.pl-docked-module-close-btn img[b-6qw69ndn9t] {
    width: 22px;
    height: 22px;
}

.pl-docked-module-body[b-6qw69ndn9t] {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
/* /View/Components/ModuleComponents/PlDockLayout.razor.rz.scp.css */
.pl-dock-layout-root[b-7m24qva9r0] {
    display: grid;
    position: relative;
    width: 100%;
    height: 100%;
}

.pl-dock-layout-fill[b-7m24qva9r0] {
    grid-area: fill;
    position: relative;
    overflow: hidden;
}

.pl-dock-layout-right[b-7m24qva9r0] {
    grid-area: right;
    position: relative;
    overflow: hidden;
}

.pl-dock-layout-bottom[b-7m24qva9r0] {
    grid-area: bottom;
    position: relative;
    overflow: hidden;
}

/* Overlay mode: fill spans the root; zone wrappers float on top with inline width/height. */
.pl-dock-layout-overlay[b-7m24qva9r0] {
    display: block;
}

.pl-dock-layout-overlay > .pl-dock-layout-fill[b-7m24qva9r0] {
    width: 100%;
    height: 100%;
}

.pl-dock-layout-overlay > .pl-dock-layout-right[b-7m24qva9r0] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
}

.pl-dock-layout-overlay > .pl-dock-layout-bottom[b-7m24qva9r0] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
/* /View/Components/ModuleComponents/PlDockResizeHandle.razor.rz.scp.css */
.pl-dock-resize-handle[b-wo3ii7gn0k] {
    position: relative;
    z-index: calc(var(--z-index-docked-panel) + 2);
    background: transparent;
    user-select: none;
    touch-action: none;
}

.pl-dock-resize-handle-right[b-wo3ii7gn0k] {
    grid-area: right;
    justify-self: start;
    align-self: stretch;
    width: 6px;
    height: 100%;
    margin-left: -3px;
    cursor: col-resize;
}

.pl-dock-resize-handle-bottom[b-wo3ii7gn0k] {
    grid-area: bottom;
    align-self: start;
    justify-self: stretch;
    width: 100%;
    height: 6px;
    margin-top: -3px;
    cursor: row-resize;
}

.pl-dock-resize-handle-indicator[b-wo3ii7gn0k] {
    position: absolute;
    background: var(--pl-neutral-border-color-border);
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
}

.pl-dock-resize-handle-right .pl-dock-resize-handle-indicator[b-wo3ii7gn0k] {
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
}

.pl-dock-resize-handle-bottom .pl-dock-resize-handle-indicator[b-wo3ii7gn0k] {
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    transform: translateY(-50%);
}

    .pl-dock-resize-handle:hover .pl-dock-resize-handle-indicator[b-wo3ii7gn0k],
    .pl-dock-resize-handle.is-dragging .pl-dock-resize-handle-indicator[b-wo3ii7gn0k] {
        opacity: 1;
    }

/* Overlay mode: absolutely positioned; centred on the zone's inner edge via inline right/bottom. */
.pl-dock-resize-handle-overlay[b-wo3ii7gn0k] {
    position: absolute;
    grid-area: auto;
    justify-self: auto;
    align-self: auto;
    margin: 0;
}

.pl-dock-resize-handle-overlay-right[b-wo3ii7gn0k] {
    top: 0;
    bottom: 0;
    height: auto;
}

.pl-dock-resize-handle-overlay-bottom[b-wo3ii7gn0k] {
    left: 0;
    right: 0;
    width: auto;
}
/* /View/Components/ModuleComponents/PlDockZone.razor.rz.scp.css */
.pl-dock-zone[b-atqx1i3hgs] {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    height: 100%;
    z-index: var(--z-index-docked-panel);
    background: var(--pl-neutral-bg-color-bg-container);
    overflow: hidden;
    box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
                0px 3px 6px 0px rgba(0, 0, 0, 0.12),
                0px 9px 28px 0px rgba(0, 0, 0, 0.05);
}

.pl-dock-zone-right[b-atqx1i3hgs] {
    border-left: 1px solid var(--pl-neutral-border-color-border);
    border-bottom-right-radius: var(--border-radius-default, 4px);
}

.pl-dock-zone-bottom[b-atqx1i3hgs] {
    border-top: 1px solid var(--pl-neutral-border-color-border);
    border-bottom-right-radius: var(--border-radius-default, 4px);
    border-bottom-left-radius: var(--border-radius-default, 4px);
}

.pl-dock-zone.is-on-top[b-atqx1i3hgs] {
    z-index: calc(var(--z-index-docked-panel) + 1);
}

.pl-dock-zone-body[b-atqx1i3hgs] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.pl-dock-zone.is-collapsed .pl-dock-zone-body[b-atqx1i3hgs] {
    display: none;
}

/* Collapsed strip: replaces the body when the zone is collapsed. Lists the docked
   modules' names as buttons; clicking a name re-expands the zone and activates that
   module. The strip markup is built imperatively in PlModulesHolder so its elements
   don't carry this component's scope attribute — selectors must use ::deep to match. */
[b-atqx1i3hgs] .pl-dock-collapsed-strip {
    display: flex;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-vertical {
    flex-direction: column;
    align-items: stretch;
    padding: 8px 0;
    gap: 4px;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-horizontal {
    flex-direction: row;
    align-items: stretch;
    padding: 0 8px;
    gap: 4px;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 4px;
    background: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    color: var(--pl-neutral-text-color-text-heading);
    font-family: inherit;
    font-size: 13px;
    border-radius: 3px;
    min-width: 0;
    overflow: hidden;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-item:hover {
    background: rgba(0, 0, 0, 0.06);
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-item:focus-visible {
    outline: 2px solid var(--pl-neutral-border-color-border);
    outline-offset: -2px;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-item.is-active {
    color: var(--pl-neutral-text-color-text-heading);
    font-weight: 600;
}

[b-atqx1i3hgs] .pl-dock-collapsed-strip-item-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Right (vertical) strip: rotate labels so they read along the strip. */
[b-atqx1i3hgs] .pl-dock-collapsed-strip-vertical .pl-dock-collapsed-strip-item-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}
/* /View/Components/ModuleComponents/PlModule.razor.rz.scp.css */
.pl-module-container[b-2gcrqs2199] {
    display: flex;
    flex-direction: column;
}

/* Standalone callers (panel-hosted modules, tooltip popups, module tabs) live inside a parent
   with a definite height and rely on the container filling it. Embedded callers (PlEmbeddedModule,
   PlTileEmbeddedCell) opt out by not emitting this class so their own scoped CSS can govern
   sizing without fighting an inline style. */
.pl-module-container.pl-module-container-standalone[b-2gcrqs2199] {
    height: 100%;
}

.pl-module-content-area[b-2gcrqs2199] {
    position: relative;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.pl-module-content-area.pl-module-padded[b-2gcrqs2199] {
    padding: 0 24px;
    background-color: var(--pl-neutral-bg-color-bg-container);
}

/* Demo-dashboard sketch (DemoDashboardSettings) — full-bleed surface, the demo component
   owns its own padding/background and sticky disclaimer, so we drop the standard padded
   chrome here. */
.pl-module-content-area.pl-module-demo-dashboard[b-2gcrqs2199] {
    padding: 0;
    background-color: var(--pl-neutral-bg-color-bg-layout, #F2F4F7);
}

/* Dashboard-module surface: grey "layout" background extending edge-to-edge across the module
   wrapper (including the .pl-module-padded gutter), with matching 24px top and bottom insets so
   the spacing matches the existing left/right gutter. The grey makes the white tiles stand out. */
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199] {
    background-color: var(--pl-tile-dashboard-bg, var(--pl-neutral-bg-color-bg-layout, #F2F4F7));
}

.pl-module-content-area.is-dashboard-module.pl-module-padded[b-2gcrqs2199] {
    padding-top: 24px;
    padding-bottom: 24px;
}

/* Dashboard scroll/root chain: stretch every layer to the available width so the dashboard
   becomes a flex viewport. Outside dashboards the chain uses customizing-derived widths
   (.pl-window-content: fit-content, .pl-root: min-width 100% + inline width=DocumentSize.Width)
   to support horizontal scroll for sheet-style modules; inside a dashboard we want the tile
   flex layout to drive sizing instead. !important is needed on .pl-root because PlRootBlock
   emits an inline pixel width/height from the layout calculation.
   The `:not(.pl-embedded-module *)` guard keeps these rules from cascading into nested embedded
   modules' window chain — those need their default `fit-content` + `overflow: hidden` so the
   embedded module clips collapsed child rows the same way it does when shown standalone. */
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-window:not(.pl-embedded-module *),
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .scrollbar-container:not(.pl-embedded-module *) {
    width: 100%;
}

.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-window-content:not(.pl-embedded-module *) {
    width: 100%;
    overflow: visible;
}

.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-root.pl-main:not(.pl-embedded-module *) {
    width: 100% !important;
    height: auto !important;
}

/* Flex-module scroll/root chain: same width-fill goal as the dashboard rules, but without the
   `:not(.pl-embedded-module *)` guard. A flex module is often itself the body of a dashboard
   tile (the host's `PlEmbeddedModule` wraps it), so the inner `.pl-window-content` etc. sit
   *inside* a `.pl-embedded-module` ancestor — the guard would exclude them and the inner
   widget would stay at `fit-content`, never spanning the tile. The trade-off: a flex module
   that itself hosts another embedded module via a ModuleControl DF will also have that
   grandchild stretched, but `PlEmbeddedModule.razor.css` already pins
   `.pl-window-content { min-width: 100% }` for the embedded case, so the additional
   `width: 100%` is consistent rather than conflicting. */
.pl-module-content-area.is-flex-module[b-2gcrqs2199]  .pl-window,
.pl-module-content-area.is-flex-module[b-2gcrqs2199]  .scrollbar-container {
    width: 100%;
}

.pl-module-content-area.is-flex-module[b-2gcrqs2199]  .pl-window-content {
    width: 100%;
    overflow: visible;
}

.pl-module-content-area.is-flex-module[b-2gcrqs2199]  .pl-root.pl-main {
    width: 100% !important;
    height: auto !important;
}

/* The .pl-scroll wrapper has the native horizontal scrollbar suppressed by
   .pl-hidden-horizontal-scrollbars (a custom scrollbar widget is created by JS for
   sheet-style modules). Dashboards don't use that widget — re-enable the native scrollbar so
   horizontal overflow caused by column min-widths exceeding the viewport stays reachable. */
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-hidden-horizontal-scrollbars {
    scrollbar-width: auto;
    -ms-overflow-style: auto;
}
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-hidden-horizontal-scrollbars::-webkit-scrollbar:horizontal {
    height: 8px !important;
}
.pl-module-content-area.is-dashboard-module[b-2gcrqs2199]  .pl-hidden-horizontal-scrollbars::-webkit-scrollbar:horizontal * {
    display: revert !important;
}

/* Embedded modules still get the JS-created custom scrollbar widget, which would overlap the
   re-enabled native scrollbar above. Suppress the custom widget so the native scrollbar is the
   single source of truth inside embedded modules. */
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-custom-scrollbar,
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-custom-horizontal-scrollbar {
    display: none !important;
}

/* Custom widget suppressed above, so restore the native horizontal scrollbar. !important beats
   the inline overflow-x/scrollbar-width that PlModule.razor.js sets to hide it. */
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-hidden-horizontal-scrollbars {
    overflow-x: auto !important;
    scrollbar-width: thin !important;
    -ms-overflow-style: auto !important;
}
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-hidden-horizontal-scrollbars::-webkit-scrollbar:horizontal {
    height: 8px !important;
}
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-hidden-horizontal-scrollbars::-webkit-scrollbar:horizontal * {
    display: revert !important;
}
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-hidden-horizontal-scrollbars::-webkit-scrollbar-thumb:horizontal {
    background-color: var(--pl-neutral-fill-color-fill-secondary);
    border-radius: 4px;
}
.pl-module-content-area[b-2gcrqs2199]  .pl-embedded-module .pl-hidden-horizontal-scrollbars::-webkit-scrollbar-track:horizontal {
    background: transparent;
}

[b-2gcrqs2199] .fluent-multi-splitter {
    height: 100%;
    min-height: 0;
}

.pl-hidden-scrollbars[b-2gcrqs2199]::-webkit-scrollbar {
    width: 0;
}

.pl-hidden-scrollbars[b-2gcrqs2199] {
    -ms-overflow-style: none;
}

.pl-overflow-hidden[b-2gcrqs2199] {
    overflow: hidden;
}

.pl-scroll[b-2gcrqs2199] {
    height: 100%;
    overflow: auto;
    position: relative;
}

.scrollbar-container[b-2gcrqs2199] {
    position: relative;
    overflow: hidden;
    height: 100%;
    width: 100%;
}

/* Custom Scrollbars */
.pl-custom-scrollbar[b-2gcrqs2199] {
    position: absolute;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: var(--z-index-scrollbar);
    border-radius: 4px;
    background-color: transparent;
    right: 9px;
    top: 4px;
    bottom: 4px;
    height: auto;
    width: 7px;
}

.pl-scrollbar-thumb[b-2gcrqs2199] {
    position: absolute;
    background-color: var(--pl-neutral-fill-color-fill-secondary);
    cursor: pointer;
    border-radius: 4px;
    top: 0;
    right: 0;
    width: 100%;
    min-height: 30px;
    transition: background-color 0.2s;
}

.pl-scrollbar-thumb:hover[b-2gcrqs2199] {
    background-color: var(--pl-neutral-fill-color-fill-content-hover);
}

.pl-custom-horizontal-scrollbar[b-2gcrqs2199] {
    position: absolute;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: var(--z-index-scrollbar);
    border-radius: 4px;
    background-color: transparent;
    scrollbar-width: thin;
    scrollbar-color: #666 transparent;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 8px;
}

.pl-horizontal-scrollbar-thumb[b-2gcrqs2199] {
    position: absolute;
    background-color: var(--pl-neutral-fill-color-fill-secondary);
    cursor: pointer;
    border-radius: 4px;
    left: 0;
    bottom: 0;
    height: 100%;
    min-width: 30px;
    transition: background-color 0.2s;
}

.pl-horizontal-scrollbar-thumb:hover[b-2gcrqs2199] {
    background-color: var(--pl-neutral-fill-color-fill-content-hover);
}

/* Hide native horizontal scrollbars */
.pl-hidden-horizontal-scrollbars[b-2gcrqs2199] {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.pl-hidden-horizontal-scrollbars[b-2gcrqs2199]::-webkit-scrollbar:horizontal {
    height: 0 !important;
}

.pl-hidden-horizontal-scrollbars::-webkit-scrollbar:horizontal *[b-2gcrqs2199] {
    display: none !important;
}

/* Auto-scroll icon */
.pl-autoscroll-icon[b-2gcrqs2199] {
    position: fixed;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: rgba(0,0,0,0.3);
    border: 2px solid rgba(255,255,255,0.5);
    z-index: var(--z-index-top-element);
    pointer-events: none;
}

/* Scroll content positioning */
.scroll-content[b-2gcrqs2199] {
    position: relative;
}
/* /View/Components/ModuleComponents/PlModuleSearchBar.razor.rz.scp.css */
.pl-module-search-bar[b-lrcr0084ml] {
    position: relative;
    flex-shrink: 0;
    flex-grow: 0;

    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;

    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background-color: #f5f5f5;
    border-top: 1px solid #ddd;
    font-size: 12px;
    height: var(--searchbar-height, 36px);
    z-index: var(--z-index-top-element) !important;
}

.pl-module-search-bar.hidden[b-lrcr0084ml] {
    display: none;
}

.pl-search-close-btn[b-lrcr0084ml] {
    background: none;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    padding: 4px 8px;
    color: #666;
    font-size: 16px;
    line-height: 1;
}

.pl-search-close-btn:hover[b-lrcr0084ml] {
    color: #333;
    background-color: #e0e0e0;
}

.pl-search-input-container[b-lrcr0084ml] {
    position: relative;
    flex: 1;
    max-width: 300px;
    min-width: 100px;
}

.pl-search-input[b-lrcr0084ml] {
    width: 100%;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 12px;
}

.pl-search-input:focus[b-lrcr0084ml] {
    outline: none;
    border-color: #0078d4;
}

.pl-search-counter[b-lrcr0084ml] {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 11px;
    pointer-events: none;
    background-color: transparent;
    padding: 0 4px;
}

.pl-search-counter.no-results[b-lrcr0084ml] {
    color: #d32f2f;
}

.pl-search-buttons[b-lrcr0084ml] {
    display: flex;
    gap: 2px;
}

.pl-search-btn[b-lrcr0084ml] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    font-size: 12px;
    line-height: 1;
    min-width: 28px;
    outline: none;
    border-radius: 3px;
}

.pl-search-btn:hover:not(:disabled)[b-lrcr0084ml] {
    background-color: #e0e0e0;
}

.pl-search-btn:disabled[b-lrcr0084ml] {
    opacity: 0.5;
    cursor: not-allowed;
}

.pl-icon-chevron-up[b-lrcr0084ml]::before {
    content: "\f077";
}

.pl-icon-chevron-down[b-lrcr0084ml]::before {
    content: "\f078";
}

.pl-icon-xmark[b-lrcr0084ml]::before {
    content: "\f00d";
}

.pl-search-status[b-lrcr0084ml] {
    color: #666;
    font-size: 12px;
    margin-left: auto;
}

.pl-icon-close[b-lrcr0084ml] {
    display: inline-block;
}

.pl-search-switch-label[b-lrcr0084ml] {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 12px;
    margin-left: 10px;
    margin-top: auto;
    margin-bottom: auto;
}

.pl-search-switch-label span[b-lrcr0084ml] {
    user-select: none;
}

[b-lrcr0084ml] .ant-switch {
    min-width: 32px;
    height: 16px;
    line-height: 16px;
}

[b-lrcr0084ml] .ant-switch-handle {
    width: 12px;
    height: 12px;
    top: 2px;
    left: 2px;
}

[b-lrcr0084ml] .ant-switch-checked .ant-switch-handle {
    left: calc(100% - 14px);
}

[b-lrcr0084ml] .ant-checkbox-wrapper > span {
    font-size: 12px;
}
/* /View/Components/ModuleComponents/PlModulesHolder.razor.rz.scp.css */
.pl-modules-holder-root[b-ppibmh8s9z] {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.pl-modules-holder-body[b-ppibmh8s9z] {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
}
/* /View/Components/ModuleComponents/PlModuleTabs.razor.rz.scp.css */
/* Wrapper layout — scoped to this component */
.pl-module-tabs-wrapper[b-64krwg8uqd] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 4px;
    isolation: isolate;
}
/* /View/Components/ModuleVariantComponents/PlModuleVariantsHolder.razor.rz.scp.css */
.pl-mv-container[b-dqkg1cc40s] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 315px;
    border: 1px solid var(--color-black-100, #E7E7E7);
    background: #FFF;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.10);
}

.pl-mv-items-wrapper[b-dqkg1cc40s] {
    overflow-y: auto;
    display: flex;
    width: 100%;
    padding: 8px 8px;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.pl-mv-items-collection[b-dqkg1cc40s] {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
}

.pl-mv-item[b-dqkg1cc40s] {
    display: flex;
    padding: 8px 8px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    cursor: pointer;
    color: var(--color-base-black, #0A090B);
    text-align: center;
    font-family: Asap;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    gap: 10px;
}

    .pl-mv-item:hover[b-dqkg1cc40s] {
        border-radius: 12px;
        background: var(--color-base-background, #F0F8FF);
    }

    .pl-mv-item:hover:has(input)[b-dqkg1cc40s]{
        background: unset;
    }

    .pl-mv-item label[b-dqkg1cc40s] {
        cursor: pointer;
    }

    .pl-mv-item label.selected[b-dqkg1cc40s] {
        cursor: pointer;
        font-weight: 600;
    }

    .pl-mv-item input[b-dqkg1cc40s] {
        padding: 5px 5px;
        height: 35px;
        width: 100%;
    }

.pl-mv-item-actions[b-dqkg1cc40s] {
    display: flex;
    align-items: flex-start;
    gap: 5px;
}

.pl-mv-separator[b-dqkg1cc40s] {
    width: 315px;
    height: 1px;
    background: #D1D1D1;
}

.pl-module-variant-btn[b-dqkg1cc40s] {
    color: var(--color-primary-light-blue, #00B2F5);
    width: 18px;
    height: 18px;
    font-size: 16px;
    font-weight: 500;
}

.pl-module-variant-btn:hover[b-dqkg1cc40s] {
    filter: brightness(1.1);
}

.favorite-btn[b-dqkg1cc40s]::before {
    content: "\f005";
    color: var(--color-mv-favorite, #F1D70F);
 }

.favorite-set-btn[b-dqkg1cc40s]::before {
    content: "\f005";
    font-weight: 900;
    color: var(--color-mv-favorite, #F1D70F);
}


.pl-icon-delete[b-dqkg1cc40s]::before {
    color: var(--color-mv-remove, #E7481D);
}

.save-btn[b-dqkg1cc40s]::before {
    content: "\f0c7";
    font-size: 17px;
    color: var(--color-mv-modified, #23960B);
}

.pl-mv-create-container[b-dqkg1cc40s] {
    display: flex;
    padding: 12px 16px;
    height: 66px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
}

.pl-mv-create-button[b-dqkg1cc40s] {
    display: flex;
    padding: 10px 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    border-radius: 4px;
    background: var(--color-primary-light-blue, #00B2F5);
    color: var(--color-theme-white, #FFF);
    text-align: center;
    font-family: Asap;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
}

.pl-mv-create-button:hover[b-dqkg1cc40s] {
    filter: brightness(1.05);
}
/* /View/Components/PanelComponents/PlPanel.razor.rz.scp.css */
.pl-panel[b-p7k4plm0z0] {
    position: relative;
    height: 100%;
}
/* /View/Components/PanelComponents/PlPanelTabHeader.razor.rz.scp.css */
.pl-panel-tab-header[b-utvknmlgd5] {
    display: flex;
    width: 170px;
    padding: 8px;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.pl-panel-tab-header:hover[b-utvknmlgd5] {
}

.pl-panel-tab-header-icon[b-utvknmlgd5] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border-radius: 32px;
    background: #005794;
}

.pl-panel-tab-header-text[b-utvknmlgd5] {
    overflow: hidden;
    text-overflow: ellipsis;
    color: black;
    color: var(--color-base-black, #0A090B);
    font-family: Asap;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
}
/* /View/Components/PanelComponents/PlPanelTabs.razor.rz.scp.css */
.pl-panels-container[b-2xdhhev6xe] {
    height: 100%;
    border-radius: 4px;
    border: 1px solid var(--pl-neutral-border-color-border);
    background: var(--pl-neutral-bg-color-bg-container);
}

/* Only target the panel-level Tabs, not nested module Tabs */
[b-2xdhhev6xe] .pl-panel-tabs {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Content area fills remaining space above tab bar */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-content-holder {
    flex: 1;
    min-height: 0;
    overflow: auto;
    border-radius: 4px 4px 0 0;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-content-holder > .ant-tabs-content {
    height: 100%;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane {
    height: 100%;
}

/* Tab bar at bottom */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav {
    margin: 0;
    border-radius: 0 0 4px 4px;
    border-top: 1px solid var(--pl-neutral-border-color-border);
    min-height: 36px;
}

/* Hide AntDesign default bottom border */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav::before {
    display: none;
}

/* Tab list spacing and vertical centering */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-list {
    gap: var(--spacing-field-padding, 3px);
    padding-left: var(--spacing-field-padding, 3px);
    align-items: center;
}

/* Individual tab buttons — override Card defaults */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-list > .ant-tabs-tab {
    white-space: nowrap;
    text-transform: none;
    height: 32px;
    letter-spacing: normal;
    padding: 0 6px !important;
    border-radius: 0 !important;
    border: none !important;
    background: transparent !important;
    margin: 0 !important;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-list > .ant-tabs-tab:hover {
    background: #F0F8FF !important;
    border-radius: 5px !important;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-list > .ant-tabs-tab-active {
    background: #F0F8FF !important;
    border-radius: 5px !important;
}

/* Hide close button until tab is hovered or active */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-tab .pl-tab-close-btn {
    opacity: 0;
    transition: opacity 0.2s;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-tab:hover .pl-tab-close-btn,
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-tab-active .pl-tab-close-btn {
    opacity: 0.7;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-tab .pl-tab-close-btn {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-tab .pl-tab-close-btn:hover {
    opacity: 1;
    background: rgba(0, 0, 0, 0.06);
    border-radius: 50%;
}

/* Dialog-only panels: panel body hidden, but the modal still shows via the global MudDialogProvider */
.pl-hidden-dialog-panels[b-2xdhhev6xe] {
    display: none;
}

/* Hide ink bar */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-ink-bar {
    display: none;
}

/* Hide "add" button */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-add {
    display: none;
}

/* Scroll/overflow buttons */
[b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav .ant-tabs-nav-operations {
    display: flex;
}

/* Hide tab bar in single-panel mode */
[b-2xdhhev6xe] .pl-panel-tabs.pl-panel-tabs--single > .ant-tabs-nav {
    display: none;
}

[b-2xdhhev6xe] .pl-panel-tabs.pl-panel-tabs--single > .ant-tabs-content-holder {
    border-radius: 4px;
}

/* PWA adjustments when window controls overlay is active */
@media (display-mode: window-controls-overlay) {
    [b-2xdhhev6xe] .pl-panel-tabs > .ant-tabs-nav {
        margin-bottom: 8px;
    }
}
/* /View/Components/PdfPreview/PlPdfPreviewDialog.razor.rz.scp.css */
.pl-pdf-preview-container[b-4us9fot5za] {
    display: flex;
    flex-direction: row;
    min-height: 500px;
    max-height: 70vh;
    gap: 16px;
    overflow: hidden;
}

.pl-pdf-preview-content[b-4us9fot5za] {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
}

.pl-pdf-preview-options[b-4us9fot5za] {
    width: 220px;
    flex-shrink: 0;
    border-left: 1px solid var(--pl-border-color, #d9d9d9);
    padding-left: 16px;
    display: flex;
    flex-direction: column;
}

.pl-pdf-preview-options-header[b-4us9fot5za] {
    font-weight: 600;
    font-size: 14px;
    color: var(--pl-text-primary, #333);
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--pl-border-color, #d9d9d9);
}

.pl-pdf-preview-options-content[b-4us9fot5za] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pl-pdf-preview-option-group[b-4us9fot5za] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pl-pdf-preview-option-label[b-4us9fot5za] {
    font-size: 13px;
    color: var(--pl-text-secondary, #666);
    font-weight: 500;
}

.pl-pdf-preview-loading[b-4us9fot5za] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    height: 400px;
    color: var(--pl-text-secondary, #666);
}

.pl-pdf-preview-empty[b-4us9fot5za] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 400px;
    color: var(--pl-text-secondary, #999);
    font-size: 14px;
}

.pl-pdf-preview-footer[b-4us9fot5za] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

/* Grid layout styles */
.pl-pdf-preview-grid[b-4us9fot5za] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 30px; /* Leave space for grid-info */
    overflow: auto;
    padding: 8px;
    background: #f5f5f5;
    border: 1px solid var(--pl-border-color, #d9d9d9);
}

.pl-pdf-preview-grid.pl-pdf-preview-grid-single[b-4us9fot5za] {
    bottom: 0; /* No space needed for grid-info on single page */
}

.pl-pdf-preview-row[b-4us9fot5za] {
    display: flex;
    flex-direction: row;
    gap: 16px;
    justify-content: center;
    width: fit-content;
    min-width: 100%;
    margin-bottom: 16px;
}

.pl-pdf-preview-row:last-child[b-4us9fot5za] {
    margin-bottom: 0;
}

.pl-pdf-preview-cell[b-4us9fot5za] {
    position: relative;
    border: 1px solid var(--pl-border-color, #d9d9d9);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    background: white;
}

.pl-pdf-preview-grid-image[b-4us9fot5za] {
    display: block;
    max-height: 550px;
    width: auto;
}

.pl-pdf-preview-page-label[b-4us9fot5za] {
    position: absolute;
    bottom: 4px;
    right: 4px;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
}

.pl-pdf-preview-grid-info[b-4us9fot5za] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 14px;
    color: var(--pl-text-secondary, #666);
    height: 22px;
}
/* /View/Components/PlErrorBoundary.razor.rz.scp.css */
.kill-session-text[b-c7skfo1wdf] {
    font-size: 12px;
    z-index: var(--z-index-global-error);
}

    .kill-session-text > p[b-c7skfo1wdf] {
        display: inline-block;
        padding-right: 10px;
    }
/* /View/Components/PlGlobalReconnectMessage.razor.rz.scp.css */
#components-reconnect-modal.pl-reconnect-modal[b-ygx9p2ferh] {
    position: fixed;
    inset: 0;
    z-index: var(--z-index-global-error) !important;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.8) !important;
    text-align: center;
    font-weight: bold;
    transition: visibility linear 500ms;
}

.components-reconnect-hide[b-ygx9p2ferh]
{
    visibility: hidden;
    display: none;
}

.pl-reconnect-modal > div > div[b-ygx9p2ferh] {
    display: none;
}

.pl-components-reconnect-show[b-ygx9p2ferh], .pl-components-reconnect-show > div > .pl-components-reconnect-show[b-ygx9p2ferh],
.components-reconnect-show[b-ygx9p2ferh], .components-reconnect-show > div > .components-reconnect-show[b-ygx9p2ferh],
.components-reconnect-failed[b-ygx9p2ferh], .components-reconnect-failed > div > .components-reconnect-failed[b-ygx9p2ferh], 
.components-reconnect-rejected[b-ygx9p2ferh], .components-reconnect-rejected > div > .components-reconnect-rejected[b-ygx9p2ferh]
{
    visibility: visible;
    display: block;
}

.components-reconnect-show > div > .pl-components-reconnect-show[b-ygx9p2ferh],
.components-reconnect-failed > div > .pl-components-reconnect-show[b-ygx9p2ferh],
.components-reconnect-rejected > div > .pl-components-reconnect-show[b-ygx9p2ferh]
{
    display: none !important;
}
/* /View/Components/PlGlobalSearchBar.razor.rz.scp.css */
.pl-toolbar-search[b-gz5971iii2] {
    display: flex;
    width: 30%;
    min-width: 400px;
    padding: 8px 20px;
    align-items: center;
    gap: 4px;
    border-radius: 8px;
    background: rgba(248, 248, 248, 0.24);
    cursor: pointer;
}

.pl-toolbar-search.disabled[b-gz5971iii2] {
    opacity: 0.5;
    pointer-events: none;
}

.pl-toolbar-search-placeholder[b-gz5971iii2] {
    color: #fff;
    opacity: .5;
    font-weight: 100;
    font-family: Asap, sans-serif;
    font-size: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-toolbar-search-shortcut[b-gz5971iii2] {
    color: #fff;
    opacity: .35;
    font-weight: 100;
    font-family: Asap, sans-serif;
    font-size: 13px;
    margin-left: auto;
    white-space: nowrap;
}

.pl-toolbar-search-icon[b-gz5971iii2]::before {
    font-size: 14px;
    content: "\f002";
    opacity: .7;
}

/* Overlay backdrop */
.pl-search-overlay-backdrop[b-gz5971iii2] {
    position: fixed;
    inset: 0;
    background: rgba(0, 55, 91, 0.20);
    z-index: var(--z-index-global-overlay-element);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 60px;
}

/* Dialog card */
.pl-search-dialog[b-gz5971iii2] {
    width: 785px;
    max-width: 90vw;
    max-height: 70vh;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Dialog header */
.pl-search-dialog-header[b-gz5971iii2] {
    display: flex;
    align-items: center;
    padding: 14px 18px;
    gap: 10px;
    border-bottom: 1px solid #eee;
}

.pl-search-dialog-icon[b-gz5971iii2]::before {
    font-size: 16px;
    content: "\f002";
    color: #999;
}

.pl-search-dialog-input-wrapper[b-gz5971iii2] {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.pl-search-dialog-input[b-gz5971iii2] {
    width: 100%;
    border: none;
    outline: none;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    background: transparent;
    color: #333;
    padding: 0;
    margin: 0;
}

.pl-search-dialog-placeholder[b-gz5971iii2] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    pointer-events: none;
    color: #999;
    font-family: Asap, sans-serif;
    font-size: 16px;
    gap: 8px;
}

.pl-search-shortcut[b-gz5971iii2] {
    font-size: 13px;
    opacity: .6;
}

.pl-search-dialog-close[b-gz5971iii2] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 4px;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pl-search-dialog-close:hover[b-gz5971iii2] {
    background: #f0f0f0;
    color: #555;
}

.pl-icon-xmark[b-gz5971iii2]::before {
    content: "\f00d";
}

/* Results area */
.pl-search-dialog-results[b-gz5971iii2] {
    flex: 1;
    min-height: 0;
    padding: 18px 24px;
    display: flex;
    flex-direction: column;
}

.pl-search-dialog-results:not(:has(*))[b-gz5971iii2] {
    padding: 0;
}

/* Loading indicator */
.pl-search-loading[b-gz5971iii2] {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 32px;
}


[b-gz5971iii2] .pl-module-container {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

[b-gz5971iii2] .pl-module-content-area {
    display: flex;
    flex-direction: column;
}

[b-gz5971iii2] .fluent-multi-splitter {
    flex: 1;
    min-height: 0;
}

[b-gz5971iii2] .pl-scroll {
    overflow-x: hidden !important;
}

.center-content[b-gz5971iii2]  div[data-role="module-content"] {
    width: fit-content;
    margin: auto;
}
/* /View/Components/PlMainViewHolder.razor.rz.scp.css */
.main[b-t0i2y20o7z] {
    background-color: white;
    display: flex;
    flex-direction: column;
    overflow-y: hidden;
    flex-basis: 100%;
    flex-shrink: 1;
    flex-grow: 1;
}

[b-t0i2y20o7z] .pl-main-layout {
    height: calc(100vh - var(--static-elements-height, 0px));
}

[b-t0i2y20o7z] .pl-sidebar {
    background: var(--pl-neutral-bg-color-bg-layout, #F2F4F7) !important;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    /* Stay above docked panels (z=600) so bottom-docked modules don't overlap us. */
    position: relative;
    z-index: 700;
}

[b-t0i2y20o7z] .pl-sidebar--overlay {
    overflow: visible !important;
}

[b-t0i2y20o7z] .pl-sidebar--no-transition {
    transition: none !important;
}

[b-t0i2y20o7z] .pl-sidebar > * {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

[b-t0i2y20o7z] .pl-sidebar .ant-layout-sider-trigger {
    display: none;
}

[b-t0i2y20o7z] .pl-sidebar.ant-layout-sider-has-trigger {
    padding-bottom: 0;
}

[b-t0i2y20o7z] .pl-content {
    overflow: hidden;
    flex: 1;
}
/* /View/Components/ScaleChartComponents/ContextMenuButtons/PlContextMenuCheckBox.razor.rz.scp.css */
.ctxt-menu-checkbox[b-t4780scwz9] {
    display: flex;
    gap: 10px;
    align-items: center;
}
/* /View/Components/ScaleChartComponents/ContextMenuButtons/PlScaleContextMenuButton.razor.rz.scp.css */
.scale-btn[b-7h53zjtb9p] {
    background-color: rgb(0, 105, 155) !important;
    border: 1px solid rgb(0, 105, 155) !important;
    border-radius: 4px;
    color: #fff;
    font-size: 1.4rem;
    height: fit-content;
    line-height: 21px;
    margin: 2px 0;
    padding: 1px 7px;
    min-height: 28px;
    min-width: 50px;
    width: 100%;
}

    .scale-btn:hover[b-7h53zjtb9p] {
        background-color: rgb(0, 82, 124) !important;
    }
    
    .scale-btn.not-active[b-7h53zjtb9p] {
        background-color: #6d8ba9;
    }
/* /View/Components/ScaleChartComponents/ContextMenuButtons/PlScaleContextMenuButtonsGroup.razor.rz.scp.css */
.scale-btn-group[b-n2af8mr0gp] {
    display: flex;
    gap: 5px;
    justify-content: space-between;
    min-width: 120px;
}
/* /View/Components/ScaleChartComponents/PlBarLine.razor.rz.scp.css */
span.bar-line[b-kzweu54r5f],
span.bar-line-connector[b-kzweu54r5f] {
    position: absolute;
    z-index: var(--z-index-bar-lines);
}

span.bar-line[b-kzweu54r5f] {
    height: 1px;
}

span.bar-line-connector[b-kzweu54r5f] {
    width: 1px;
}
/* /View/Components/ScaleChartComponents/PlScaleChart.razor.rz.scp.css */
.scale[b-c3u92ij0x5] {
    position: absolute;
    width: fit-content;
    display: flex;
}

.scale-options[b-c3u92ij0x5] {
    position: sticky;
    width: fit-content;
    height: 100%;
    left:  0;
}

#scale-chart-container.not-expanded[b-c3u92ij0x5] {
    overflow-x: auto;
    overflow-y: hidden;
}

#scale-chart-container[b-c3u92ij0x5] {
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    width: 100%;
}

#scale-chart-container.page-scroll[b-c3u92ij0x5] {
    cursor: url('icons/cursors/up-down-left-right.svg') 2 2, auto !important;
}

.overflow-wrapper[b-c3u92ij0x5] {
    min-width: 100%;
    position: absolute;
}

.scale-container[b-c3u92ij0x5] {
    position: absolute;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

.scale-container span[b-c3u92ij0x5] {
    border-right: none !important;
    border-bottom: none !important;
    border-top: none !important;
    position: absolute;
    height: 100%;
    z-index: var(--z-index-scale-chart);
}

.vertical-title-scale-grid[b-c3u92ij0x5] {
    width: 100%;
    position: absolute;
}

.vertical-header-row[b-c3u92ij0x5] {
    border: 1px dotted #bababa;
    border-collapse: collapse;
}

.scale-chart-bar-links-container[b-c3u92ij0x5] {
    position: relative;
}
/* /View/Components/ScaleChartComponents/PlScaleChartBarLink.razor.rz.scp.css */
div[id*='bar-link-'][b-epnw44vx9a] {
    width: 1px;
    height: 1px;
    z-index: var(--z-index-bar-links);
}

.link-line[b-epnw44vx9a] {
    border-left: 1px solid #0000cc;
    border-top: 1px solid #0000cc;
    width: 0;
    height: 0;
    cursor: pointer;
    position: absolute;
}

.link-line.connector.target[b-epnw44vx9a]::after {
    content: '';
    background: #0000cc;
    display: block;
    position: absolute;
    width: 4px;
    height: 4px;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 100%;
    border: 1px solid #0000cc;
    border-radius: 50%;
}

.link-line[b-epnw44vx9a],
.link-line.connector.target[b-epnw44vx9a]::after {
    outline: 0 solid #0000cc;
}

div[id*='bar-link-']:hover .link-line[b-epnw44vx9a],
div[id*='bar-link-']:hover .link-line.connector[b-epnw44vx9a]::after,
div[id*='bar-link-']:has(:hover) .link-line[b-epnw44vx9a],
div[id*='bar-link-']:has(:hover) .link-line.connector[b-epnw44vx9a]::after,
div[id*='bar-link-']:focus-within .link-line[b-epnw44vx9a],
div[id*='bar-link-']:focus-within .link-line.connector[b-epnw44vx9a]::after {
    outline-width: 1px;
    transition-delay: 0.5s;
}

.barlink-in-highlight[b-epnw44vx9a],
.barlink-in-highlight > .link-line[b-epnw44vx9a],
.barlink-out-highlight[b-epnw44vx9a],
.barlink-out-highlight > .link-line[b-epnw44vx9a] {
    z-index: var(--z-index-bar-links-highlight) !important;
}

.barlink-in-highlight .link-line[b-epnw44vx9a],
.barlink-in-highlight .link-line.connector[b-epnw44vx9a]::after {
    background: #ff6819 !important;
    border-color: #ff6819 !important;
    outline: 1px solid #ff6819 !important;
}

.barlink-out-highlight .link-line[b-epnw44vx9a],
.barlink-out-highlight .link-line.connector[b-epnw44vx9a]::after {
    background: #008000 !important;
    border-color: #008000 !important;
    outline: 1px solid #008000 !important;
}
/* /View/Components/ScaleChartComponents/PlScaleChartGrid.razor.rz.scp.css */
#chart-timeline-header-table-container[b-n2ufql8c3r] {
    height: 100%;
}

.chart-timeline-split-lines-table[b-n2ufql8c3r] {
    height: 100%;
}

td.chart-timeline-splitter-cell[b-n2ufql8c3r] {
    border-left: 1px dotted #d1d1d1;
    padding: 0;
    height: 100%;
}

/* /View/Components/ScaleComponents/PlBar.razor.rz.scp.css */
.pl-bar[b-c8gnfkscmb] {
    position: absolute;
    height: 100%;
    min-width: 100%;
    width: fit-content;
    cursor: default;
    display: flex;
}

.pl-bar:focus .bar-rectangle[b-c8gnfkscmb], .pl-bar:has(*:focus) .bar-rectangle[b-c8gnfkscmb] {
    outline: 1px dashed rgba(0, 0, 0, 0.5);
}

.pl-bar .barlink-radio[b-c8gnfkscmb] {
    position: absolute;
    z-index: var(--z-index-bar-radio);
    cursor: pointer;
    height: 15px;
    width: 15px;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease-in;
    transform: translateY(-50%);
    -webkit-transition-delay: 0.3s;
    -moz-transition-delay: 0.3s;
    -o-transition-delay: 0.3s;
    transition-delay: 0.3s;
    transition-property: opacity, visibility;
}

.pl-bar:hover .barlink-radio[b-c8gnfkscmb],
.pl-datafield-block:has(.non-linkable-bar:hover) .barlink-radio[b-c8gnfkscmb],
.barlink-radio:checked[b-c8gnfkscmb] {
    visibility: visible !important;
    opacity: 1 !important;
    -webkit-transition-delay: 0.2s;
    -moz-transition-delay: 0.2s;
    -o-transition-delay: 0.2s;
    transition-delay: 0.2s;
    transition-property: opacity, visibility;
}

.left-barlink-radio-btn[b-c8gnfkscmb] {
    left: calc(0px - 15px - 5px);
}
.right-barlink-radio-btn[b-c8gnfkscmb] {
    left: calc(100% + 5px);
}

.bar-wrapper[b-c8gnfkscmb] {
    height: 100%;
    width: 100%;
    display: flex;
    position: relative;
    z-index: var(--z-index-bar-wrapper);
}

.bar-tag[b-c8gnfkscmb] {
    font-size: 1rem;
    height: fit-content;
    line-height: 0.875rem;
    margin: 0;
    top: 50%;
    position: absolute;
    white-space: nowrap;
}

.bar-rectangle[b-c8gnfkscmb] {
    display: block;
    height: 100%;
    width: 100%;
    margin: 0;
    position: relative;
}

    .bar-rectangle.solid-bar[b-c8gnfkscmb]::before,
    .bar-rectangle.solid-bar[b-c8gnfkscmb]::after {
        font-family: 'Font Awesome 6 Pro';
        font-size: 15px;
        line-height: 13px;
        position: absolute;
        display: none;
    }
    .bar-rectangle.solid-bar[b-c8gnfkscmb]::before {
        content: "\f100";
        left: 0;
    }
    .bar-rectangle.solid-bar[b-c8gnfkscmb]::after {
        content: "\f101";
        right: 0;
    }
    
    .bar-rectangle .bar-rect-effect[b-c8gnfkscmb] {
        width: 100%;
        height: 100%;
    }
    
.solid-bar[b-c8gnfkscmb] {
    overflow: hidden;
}

.dotted-bar[b-c8gnfkscmb] {
    background-color: transparent !important;
    background-repeat: repeat-x;
    background-size: 6px !important;
    border-color: transparent !important;
    height: 11px;
}

.transparent-bar[b-c8gnfkscmb] {
    background-color: transparent !important;
    border: none;
    color: #000;
}

.transparent-bar[b-c8gnfkscmb]::before,
.transparent-bar[b-c8gnfkscmb]::after {
    content: "";
    position: absolute;
    top: 0;
    width: 9px;
    min-height: 7px;
    height: 7.8px;
    pointer-events: all;
    background-repeat: no-repeat !important;
}

.transparent-bar[b-c8gnfkscmb]::before {
    left: 0;
    transform: translateX(-50%);
}

.transparent-bar[b-c8gnfkscmb]::after {
    right: 0;
    transform: translateX(50%);
}

.transparent-bar + .bar-text[b-c8gnfkscmb] {
    color: #000;
}

body:not(:has(.moving)) .active-bar[b-c8gnfkscmb] {
    cursor: url('icons/cursors/hand.png') 2 2, auto;
}

/*body:not(:has(.resizing)) .active-bar .resize-handle {*/
/*    cursor: col-resize !important;*/
/*}*/

.moving:not(.resizing)[b-c8gnfkscmb] {
    cursor: url('icons/cursors/hand-back-fist.png') 2 2, auto;
    user-select: none;
}

.resizing:not(.moving)[b-c8gnfkscmb] {
    user-select: none;
}

.resize-handle[b-c8gnfkscmb] {
    cursor: col-resize !important;
    height: 100%;
    position: absolute;
    top: 0;
    width: 8px;
}

.bar-rectangle.transparent-bar .resize-handle[b-c8gnfkscmb] {
    pointer-events: all;
}

.resize-handle-left[b-c8gnfkscmb] {
    left: -5px;
}

.resize-handle-right[b-c8gnfkscmb] {
    right: -5px;
}

.bar-rectangle.transparent-bar .resize-handle-left[b-c8gnfkscmb] {
    left: -9px;
    z-index: var(--z-index-behind);
}
.bar-rectangle.transparent-bar .resize-handle-right[b-c8gnfkscmb] {
    right: -9px;
}
/* /View/Components/ScaleComponents/PlScaleTitleLine.razor.rz.scp.css */
.title[b-cph8z5vbdr] {
    position: absolute;
    background-color: #F3F4F5;
    text-align: center;
    cursor: default;
}
/* /View/Components/StatusbarComponents/PlStatusbar.razor.rz.scp.css */
.pl-status-bar[b-hu5s33tqyn] {
    position: fixed;
    left: 0;
    bottom: 0;
    max-width: 800px;
    min-width: 100px;
    background-color: deepskyblue;
    color: white;
    text-align: left;
    padding-left: 10px;
    padding-right: 10px;
    font-size: 12px;
    z-index: var(--z-index-top-element);
}
/* /View/Components/UserMenuComponents/Legacy/PlLegacyUserMenuContent.razor.rz.scp.css */
/* Top-level wrapper for the legacy single-root renderer.
   Uses ::deep to reach child leaf/group/chevron elements that live in
   separate scoped components. */

.pl-legacy-usermenu-wrapper[b-nb5xd33w4m] {
    display: flex;
    flex-direction: column;
}

.pl-legacy-usermenu-item-wrapper[b-nb5xd33w4m] {
    padding: 0;
    width: 100%;
}

.pl-legacy-usermenu-group-wrapper[b-nb5xd33w4m] {
    width: 100%;
}

/* Collapsed sidebar: hide labels, chevrons and group titles so only icons
   remain. Group children stay hidden via DataArea.Collapsed (set by
   PlUserMenu.CollapseAllChildren) — no extra CSS needed for that. */

.pl-legacy-usermenu-wrapper.collapsed[b-nb5xd33w4m]  .pl-legacy-usermenu-group-title-slot,
.pl-legacy-usermenu-wrapper.collapsed[b-nb5xd33w4m]  .pl-legacy-usermenu-group-chevron,
.pl-legacy-usermenu-wrapper.collapsed[b-nb5xd33w4m]  .pl-legacy-usermenu-item-labels {
    display: none !important;
}

.pl-legacy-usermenu-wrapper.collapsed[b-nb5xd33w4m]  .pl-legacy-usermenu-item,
.pl-legacy-usermenu-wrapper.collapsed[b-nb5xd33w4m]  .pl-legacy-usermenu-group-header {
    padding: 0 8px !important;
    justify-content: flex-start !important;
}
/* /View/Components/UserMenuComponents/Legacy/PlLegacyUserMenuFooter.razor.rz.scp.css */
/* Fixed footer for legacy single-root user menus.
   Matches leaf-row sizing so it sits flush under the scrollable content.
   Hover gradient mirrors the original PlSidebarFooter (166deg). */

.pl-legacy-usermenu-footer[b-5tg7fss41v] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px 0;
    flex-shrink: 0;
}

.pl-legacy-usermenu-footer-item[b-5tg7fss41v] {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 8px;
    cursor: pointer;
    border-radius: 4px;
    color: #0d1a26;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-weight: 500;
    user-select: none;
    -webkit-user-select: none;
    overflow: hidden;
    white-space: nowrap;
    transition: background 0.2s ease;
}

.pl-legacy-usermenu-footer-item:hover[b-5tg7fss41v] {
    background: linear-gradient(166deg, #f2f4f7 0%, #e2e7ee 100%);
}

.pl-legacy-usermenu-footer-killswitch:hover[b-5tg7fss41v] {
    color: #c4262e;
}

.pl-legacy-usermenu-footer-icon[b-5tg7fss41v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #6a778b;
}

.pl-legacy-usermenu-footer-icon[b-5tg7fss41v]  .anticon,
.pl-legacy-usermenu-footer-icon[b-5tg7fss41v]  .anticon svg {
    width: 16px;
    height: 16px;
    font-size: 16px;
    line-height: 1;
}

.pl-legacy-usermenu-footer-label[b-5tg7fss41v] {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pl-legacy-usermenu-footer.collapsed .pl-legacy-usermenu-footer-item[b-5tg7fss41v] {
    justify-content: flex-start;
}
/* /View/Components/UserMenuComponents/Legacy/PlLegacyUserMenuGroup.razor.rz.scp.css */
/* Legacy collapsible group header. Mirrors pre-#2209 PlUserMenuGroup:
   16 px icon, recursive item-typography title, 12 px chevron at #6A778B,
   smooth height-tween for children via PlAnimateAutoHeight. */

.pl-legacy-usermenu-group[b-yhmw2iru6z] {
    margin: 0;
    padding: 0;
}

.pl-legacy-usermenu-group-header[b-yhmw2iru6z] {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    white-space: nowrap;
    gap: 8px;
    padding: 0 8px;
    width: 100%;
    height: 24px;
}

.pl-legacy-usermenu-group-header:hover[b-yhmw2iru6z] {
    background: linear-gradient(166deg, #f2f4f7 0%, #e2e7ee 100%);
    border-radius: 2px;
}

.pl-legacy-usermenu-group-icon[b-yhmw2iru6z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #6a778b;
}

.pl-legacy-usermenu-group-icon img[b-yhmw2iru6z] {
    width: 16px;
    height: 16px;
    object-fit: contain;
    display: block;
}

.pl-legacy-placeholder-icon[b-yhmw2iru6z] {
    color: #6a778b;
    font-size: 16px;
    width: 16px;
    text-align: center;
}

.pl-legacy-usermenu-group-title-slot[b-yhmw2iru6z] {
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
    height: 100%;
}

/* The nested title item must not exceed the 24px header row nor stack its own hover on the header's. */
.pl-legacy-usermenu-group-title-slot[b-yhmw2iru6z]  .pl-legacy-usermenu-item {
    padding-left: 0;
    height: 100%;
}

.pl-legacy-usermenu-group-title-slot[b-yhmw2iru6z]  .pl-legacy-usermenu-item:hover {
    background: none;
}

.pl-legacy-usermenu-group-chevron[b-yhmw2iru6z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    color: #6a778b;
    transition: transform 0.3s ease;
}

.pl-legacy-usermenu-group-chevron svg[b-yhmw2iru6z] {
    width: 12px;
    height: 12px;
    fill: currentColor;
}

.pl-legacy-usermenu-group.expanded > .pl-legacy-usermenu-group-header > .pl-legacy-usermenu-group-chevron[b-yhmw2iru6z] {
    transform: rotate(90deg);
}

[b-yhmw2iru6z] .pl-legacy-usermenu-child-content {
    overflow: hidden;
    padding-left: 20px;
}
/* /View/Components/UserMenuComponents/Legacy/PlLegacyUserMenuItem.razor.rz.scp.css */
/* Legacy leaf row — mirrors pre-#2209 PlUserMenuItem + PlUserMenuToolbarItem.
   Default typography is the top-level look (16 px / #0d1a26 / weight 500).
   Last-level rows downshift to 14 px / #495769 / weight 400 via the
   .last-level modifier. */

.pl-legacy-usermenu-item[b-hzhlinltke] {
    cursor: pointer;
    display: flex;
    flex-direction: row;
    align-items: center;
    overflow: hidden;
    flex-grow: 1;
    flex-wrap: nowrap;
    column-gap: 8px;
    padding: 0 8px;
    border-radius: 4px;
    color: #0d1a26;
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 1em;
    height: 32px;
    user-select: none;
    -webkit-user-select: none;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.pl-legacy-usermenu-item.top-level[b-hzhlinltke] {
    font-size: 16px;
    font-weight: 500;
}

.pl-legacy-usermenu-item.last-level[b-hzhlinltke] {
    color: #495769;
    font-size: 14px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

.pl-legacy-usermenu-item.no-gap[b-hzhlinltke] {
    column-gap: 0 !important;
}

.pl-legacy-usermenu-item.flex-grow-shrink[b-hzhlinltke] {
    flex: 1;
}

.pl-legacy-usermenu-item:hover[b-hzhlinltke] {
    background: linear-gradient(153deg, #f2f4f7 0%, #e2e7ee 100%);
}

.pl-legacy-usermenu-item-icon[b-hzhlinltke] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #6a778b;
    font-size: 16px;
}

.pl-legacy-usermenu-item-img[b-hzhlinltke] {
    position: relative;
    color: #6a778b;
    width: 16px;
    height: 16px;
    display: block;
}

.pl-legacy-usermenu-item-icon .pl-usermenu-icon[b-hzhlinltke] {
    width: 16px;
    height: 16px;
    display: block;
}

.pl-legacy-usermenu-item-labels[b-hzhlinltke] {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 5px;
    min-width: 0;
}

.pl-legacy-usermenu-item-label[b-hzhlinltke] {
    display: block;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: normal;
}

.pl-legacy-usermenu-item-label.accented[b-hzhlinltke] {
    font-weight: 600;
}

.pl-legacy-usermenu-item-label.flex-grow-shrink[b-hzhlinltke] {
    flex: 1;
}
/* /View/Components/UserMenuComponents/PlDropdownDataArea.razor.rz.scp.css */
.pl-user-dropdown-trigger[b-p5g0hrzej5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0 12px;
    background: #FFFFFF;
    border: 1px solid #C4CBDA;
    border-radius: 4px;
    box-shadow: 0px 2px 0px 0px rgba(18, 46, 94, 0.07);
    cursor: pointer;
    transition: border-color 0.2s ease;
    height: 40px;
    width: 100%;
    box-sizing: border-box;
}

    /* border-image strips border-radius in every browser; use a solid primary-hover
       color instead so the 4px corners stay rounded on hover. */
    .pl-user-dropdown-trigger:hover[b-p5g0hrzej5] {
        border-color: var(--pl-semantic-primary-color-primary-hover, #009ADB);
    }

.pl-user-avatar[b-p5g0hrzej5] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(170deg, #0DB5F2, #0070B5);
    color: #FFFFFF;
    font-family: Asap, sans-serif;
    font-size: 12px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}

    /* The rendered datafield wrapper sits inside the round avatar.
       The dynamic symbol CSS (.pl-symbol-XXXXXX) gives every datafield a
       1px gray border with !important. At the same 28x28 size as the
       round parent that border bleeds inside the circle, so strip it.
       ::deep is required because the wrapper is rendered by a child
       component and !important is required to beat the symbol rule. */
    .pl-user-avatar[b-p5g0hrzej5]  [id^="datafield-"] {
        display: flex;
        align-items: center;
        justify-content: center;
        border: none !important;
        background: transparent !important;
    }

    .pl-user-avatar > [id^="datafield-"] > img[b-p5g0hrzej5] {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
    }

.pl-user-name[b-p5g0hrzej5] {
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #0D1A26;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-p5g0hrzej5] .pl-user-chevron {
    font-size: 14px;
    color: #6A778B;
    flex-shrink: 0;
}

.pl-user-dropdown-collapsed[b-p5g0hrzej5] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 40px;
}
/* /View/Components/UserMenuComponents/PlLogo.razor.rz.scp.css */
.logo-container[b-51dx6amg3j] {
    display: flex;
    align-items: center;
    align-self: center;
    cursor: pointer;
}

    .logo-container.disabled[b-51dx6amg3j] {
        pointer-events: none;
        cursor: default;
        opacity: 0.03;
    }

.pl-usermenu-logo[b-51dx6amg3j] {
    position: relative;
}

.pl-usermenu-logo img[b-51dx6amg3j] {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    object-fit: contain;
    transition: opacity 500ms ease;
    display: block;
}

.pl-usermenu-logo--collapsed[b-51dx6amg3j] {
    filter: invert(18%) sepia(57%) saturate(2594%) hue-rotate(179deg) brightness(99%) contrast(101%);
}

.pl-usermenu-logo.is-open .pl-usermenu-logo--collapsed[b-51dx6amg3j],
.pl-usermenu-logo.is-collapsed .pl-usermenu-logo--opened[b-51dx6amg3j] {
    opacity: 0;
}
/* /View/Components/UserMenuComponents/PlSidebarHeader.razor.rz.scp.css */
.pl-sidebar-header[b-n6z0vtdna5] {
    flex: 0 0 auto;
}

.pl-sidebar-header-row[b-n6z0vtdna5] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 40px;
    overflow: visible;
}

/* AntDesign Dropdown wraps trigger in an extra div */
[b-n6z0vtdna5] .pl-sidebar-header-row > div:first-child {
    min-width: 0;
}

.pl-sidebar-logo-button[b-n6z0vtdna5] {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background 0.2s ease;
    position: relative;
}

    .pl-sidebar-logo-button:hover[b-n6z0vtdna5] {
        background: linear-gradient(166deg, var(--pl-semantic-contrast-color-gradient-bg-hover-from) 0%, var(--pl-semantic-contrast-color-gradient-bg-hover-to) 100%);
    }

    /* Single-stop gradient so hover→active interpolates; a solid color would blink. */
    .pl-sidebar-logo-button.active[b-n6z0vtdna5] {
        background: linear-gradient(166deg, var(--pl-semantic-contrast-color-gradient-bg-active) 0%, var(--pl-semantic-contrast-color-gradient-bg-active) 100%);
    }

.pl-sidebar-logo-full[b-n6z0vtdna5] {
    height: 28px;
    width: 93px;
    object-fit: contain;
    flex-shrink: 0;
}

.pl-sidebar-chevron[b-n6z0vtdna5] {
    width: 14px;
    height: 14px;
    font-size: 14px;
    line-height: 1;
    color: #0D1A26;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pl-sidebar-actions[b-n6z0vtdna5] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.pl-header-btn[b-n6z0vtdna5] {
    width: 32px;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.pl-header-btn-text[b-n6z0vtdna5] {
    background: none;
    border: none;
}

    .pl-header-btn-text:hover[b-n6z0vtdna5] {
        background: linear-gradient(166deg, var(--pl-semantic-contrast-color-gradient-bg-hover-from) 0%, var(--pl-semantic-contrast-color-gradient-bg-hover-to) 100%);
    }

.pl-header-btn-default[b-n6z0vtdna5] {
    background: #FFFFFF;
    border: 1px solid #C4CBDA;
    box-shadow: 0px 2px 0px 0px rgba(18, 46, 94, 0.07);
}

    .pl-header-btn-default:hover[b-n6z0vtdna5] {
        border-color: var(--pl-semantic-primary-color-primary-hover, #009ADB);
    }

    .pl-header-btn-default:disabled[b-n6z0vtdna5] {
        opacity: 0.5;
        cursor: not-allowed;
    }

.pl-header-btn-icon[b-n6z0vtdna5] {
    width: 14px;
    height: 14px;
    display: block;
}

.pl-sidebar-header-collapsed[b-n6z0vtdna5] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 40px;
}

.pl-sidebar-logo-icon[b-n6z0vtdna5] {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

[b-n6z0vtdna5] .pl-sidebar-divider.ant-divider {
    margin: 0;
    border-color: #C4CBDA;
}
/* /View/Components/UserMenuComponents/PlUserDropdown.razor.rz.scp.css */
.pl-user-dropdown-root[b-32litjrqgj] {
    width: 100%;
}

.pl-user-dropdown-trigger[b-32litjrqgj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0 12px;
    background: #FFFFFF;
    border: 1px solid #C4CBDA;
    border-radius: 4px;
    box-shadow: 0px 2px 0px 0px rgba(18, 46, 94, 0.07);
    cursor: pointer;
    transition: border-color 0.2s ease;
    height: 40px;
    width: 100%;
    box-sizing: border-box;
}

    /* border-image strips border-radius in every browser; use a solid primary-hover
       color instead so the 4px corners stay rounded on hover. */
    .pl-user-dropdown-trigger:hover[b-32litjrqgj] {
        border-color: var(--pl-semantic-primary-color-primary-hover, #009ADB);
    }

.pl-user-avatar[b-32litjrqgj] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(170deg, #0DB5F2, #0070B5);
    color: #FFFFFF;
    font-family: Asap, sans-serif;
    font-size: 12px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pl-user-name[b-32litjrqgj] {
    font-family: Asap, sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #0D1A26;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-32litjrqgj] .pl-user-chevron {
    font-size: 14px;
    color: #6A778B;
    flex-shrink: 0;
}

.pl-user-dropdown-collapsed[b-32litjrqgj] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 40px;
}
/* /View/Components/UserMenuComponents/PlUserMenu.razor.rz.scp.css */
.pl-sidebar-inner[b-ur0au54j9l] {
    height: 100%;
    padding: 8px 16px 16px;
}

.pl-sidebar-inner--overlay[b-ur0au54j9l] {
    position: absolute;
    top: 0;
    left: 0;
    width: 280px;
    height: 100%;
    z-index: 100;
    background: var(--pl-neutral-bg-color-bg-layout, #F2F4F7);
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.12);
    border-right: 1px solid #C4CBDA;
    /* GPU-composited translate avoids the double-paint that clip-path + Sider width caused. */
    animation: sidebar-slide-in-b-ur0au54j9l 160ms ease-out;
    will-change: transform;
}

@keyframes sidebar-slide-in-b-ur0au54j9l {
    /* (64px - 100%) leaves the 64px collapsed slice visible at frame 0
       and survives changes to either width without manual math. */
    from {
        transform: translateX(calc(64px - 100%));
    }
    to {
        transform: translateX(0);
    }
}

.pl-sidebar-inner--overlay-closing[b-ur0au54j9l] {
    position: absolute;
    top: 0;
    left: 0;
    width: 280px;
    height: 100%;
    z-index: 100;
    background: var(--pl-neutral-bg-color-bg-layout, #F2F4F7);
    border-right: 1px solid #C4CBDA;
    animation: sidebar-slide-out-b-ur0au54j9l 140ms ease-in forwards;
    will-change: transform;
    pointer-events: none;
    overflow: hidden;
}

@keyframes sidebar-slide-out-b-ur0au54j9l {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(calc(64px - 100%));
    }
}

.pl-sidebar-layout[b-ur0au54j9l] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    /* Figma: 16px between sections; explicit <Divider>s sit in the middle with 0 margin. */
    gap: 16px;
}

/* Between-section dividers use Figma's border color #c4cbda, no extra margin. */
[b-ur0au54j9l] .pl-sidebar-divider.ant-divider-horizontal {
    margin: 0 !important;
    border-block-start: 1px solid #c4cbda !important;
    border-top: 1px solid #c4cbda !important;
    min-width: 0 !important;
}

[b-ur0au54j9l] .pl-sidebar-divider.pl-content-divider {
    margin: 16px 0 !important;
}

.pl-sidebar-content[b-ur0au54j9l] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    /* Figma: thin right-edge scrollbar. Gutter is not reserved; the 32 px
       collapsed-sidebar content area must fit a 16 px icon + 2×8 px padding,
       which leaves no room for a 6 px reserved gutter. */
    scrollbar-width: thin;
    scrollbar-color: #c4cbda transparent;
}

.pl-sidebar-content[b-ur0au54j9l]::-webkit-scrollbar {
    width: 6px;
}

.pl-sidebar-content[b-ur0au54j9l]::-webkit-scrollbar-track {
    background: transparent;
}

.pl-sidebar-content[b-ur0au54j9l]::-webkit-scrollbar-thumb {
    background: #c4cbda;
    border-radius: 3px;
}

.pl-sidebar-content[b-ur0au54j9l]::-webkit-scrollbar-thumb:hover {
    background: #6a778b;
}

/* Hide scrollbar in collapsed (icon-only) mode — there's no room and it distracts. */
.pl-sidebar-content.collapsed[b-ur0au54j9l] {
    scrollbar-width: none;
}

.pl-sidebar-content.collapsed[b-ur0au54j9l]::-webkit-scrollbar {
    display: none;
}

/* /View/Components/UserMenuComponents/PlUserMenuContent.razor.rz.scp.css */
/* ===== PLANTA sidebar — Main root renderer =====
   Design tokens from Figma node 26637:43271
     --typography/font-size/fontsize      : 14px
     --typography/font-size/fontsizelg    : 16px
     --colors/neutral/text/colortext       : #0d1a26  (default label)
     --colors/neutral/text/colortextlabel  : #495769  (group header)
     --colors/neutral/text/colortexttertiary : #6a778b (suffix, icons)
     --colors/semantic/primary/colorprimarytext     : #0070b5 (selected text)
     --colors/semantic/primary/gradientprimaryfrom  : #0db5f2 (selected border)
     --colors/neutral/bg/colorbglayout     : #f2f4f7
     --colors/neutral/colorbgbase          : #ffffff
     --colors/neutral/border/colorborder   : #c4cbda
     --components/button/global/controloutlinewidth : 2px (selected border width)
     --border-radius/borderradius          : 4px
     --border-radius/borderradiusxs        : 2px
     --space/padding/paddingxs             : 8px
     --space/margin/marginxs               : 8px
     --space/margin/marginxxs              : 4px
   ======================================================== */

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-content,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-content .ant-menu-sub {
    background: transparent !important;
    border-inline-end: none !important;
    font-family: Asap, sans-serif;
    user-select: none;
    -webkit-user-select: none;
}

/* Figma: sidebar root uses flex-column; each menu itself has no padding. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu {
    padding: 0 !important;
    line-height: 1;
}

/* ----- Leaf items (Meine Tätigkeiten, Elektrohängebahn, ...) ----- */

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-action {
    height: 32px !important;
    line-height: 32px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    color: #0d1a26 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item > .ant-menu-title-content,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-action > .ant-menu-title-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #6a778b;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-icon .anticon,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-icon .anticon svg {
    font-size: 16px;
    width: 16px;
    height: 16px;
    line-height: 1;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-icon img {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

/* FontAwesome chevron on the "Weniger anzeigen" toggle: slimmer than the 16px anticon glyphs. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-icon .fa {
    font-size: 12px;
    line-height: 1;
}

/* Wraps the primary label + optional suffix so they flow as a single block:
   the suffix sits directly after the primary (no flex gap between them), and
   the whole block can shrink so the primary ellipsizes while the suffix stays
   visible. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-labels {
    display: inline-flex;
    align-items: baseline;
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    white-space: nowrap;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-label {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #0d1a26;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item-suffix {
    /* Figma: the suffix flows right after the primary label with a tiny 4 px gap
       before the "-" so the two values don't touch. When the primary overflows,
       it ellipsizes first and the suffix always stays visible. */
    color: #6a778b;
    font-weight: 400;
    font-size: 14px;
    flex: 0 0 auto;
    white-space: nowrap;
    margin-left: 4px;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-item:hover,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-action:hover {
    background: linear-gradient(153deg, #f2f4f7 0%, #e2e7ee 100%) !important;
}

/* ----- Selected state (Home in Figma) ----- */

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item-selected.pl-user-menu-item,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item-selected.pl-user-menu-action {
    background: #ffffff !important;
    border: 2px solid #0db5f2 !important;
    color: #0070b5 !important;
    /* Compensate for 2px border so label doesn't shift by 2px. */
    padding: 0 6px !important;
    height: 32px !important;
    line-height: 28px !important;
    font-weight: 500 !important;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item-selected .pl-user-menu-item-icon,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item-selected .pl-user-menu-item-label {
    color: #0070b5 !important;
}

/* ----- Group header (SubMenu title: Favoriten, Planung, ...) ----- */

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group {
    margin: 0 !important;
    padding: 0 !important;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title {
    height: 28px !important;
    line-height: 28px !important;
    padding: 0 4px !important;
    margin: 0 !important;
    color: #495769 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    border-radius: 2px !important;
    display: flex !important;
    align-items: center !important;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title > .ant-menu-title-content {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}

/* Group title label inherits the muted group-header color, not the default leaf color. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title .pl-user-menu-item-label {
    color: #495769 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
}

/* Group header icon: smaller (inherits 16px but in group context is muted). */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title .pl-user-menu-item-icon {
    color: #495769;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title .pl-user-menu-item-icon .anticon,
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title .pl-user-menu-item-icon .anticon svg {
    font-size: 14px;
    width: 14px;
    height: 14px;
}

/* Figma: chevron sits inline right after the group label, vertically centered. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group .ant-menu-submenu-arrow {
    position: static !important;
    color: #495769 !important;
    font-size: 10px;
    width: 10px;
    height: 10px;
    margin-inline-start: 6px;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
    top: auto !important;
    right: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    vertical-align: middle !important;
}

/* SubMenu title row should only be as wide as its content + chevron, not 100%. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .pl-user-menu-group > .ant-menu-submenu-title > .ant-menu-title-content {
    flex: 0 0 auto;
    width: auto !important;
}

/* Sub items flow directly — AntDesign adds padding-left by default, we override. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-sub {
    padding: 4px 0 0 !important;
}

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-sub .pl-user-menu-item {
    padding-left: 8px !important;
}

/* ----- Dividers between top-level entries ----- */

.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item-divider {
    background-color: #c4cbda !important;
    height: 1px !important;
    margin: 8px 0 !important;
    border: 0 !important;
    display: block !important;
    overflow: hidden;
    padding: 0 !important;
    line-height: 1 !important;
}

/* Hide AntDesign's default right-edge highlight on selected items. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-item::after {
    display: none !important;
}

/* Submenu list: remove default bg and padding. */
.pl-user-menu-content-wrapper[b-2zx46rq9fr]  .ant-menu-submenu-open .ant-menu-submenu-title {
    color: #495769 !important;
}

/* ----- Collapsed sidebar: hide group headers + labels, show icons only. ----- */

/* Keep the group-title's vertical slot so leaf icons don't shift up; just hide its content. */
.pl-user-menu-content-wrapper.collapsed[b-2zx46rq9fr]  .ant-menu-submenu-title {
    visibility: hidden !important;
}

.pl-user-menu-content-wrapper.collapsed[b-2zx46rq9fr]  .pl-user-menu-item-label,
.pl-user-menu-content-wrapper.collapsed[b-2zx46rq9fr]  .pl-user-menu-item-suffix {
    display: none !important;
}

/* Preserve the icon's horizontal position in collapsed mode: same 8px padding-left. */
.pl-user-menu-content-wrapper.collapsed[b-2zx46rq9fr]  .pl-user-menu-item {
    padding: 0 8px !important;
    justify-content: flex-start !important;
    width: 100% !important;
}

.pl-user-menu-content-wrapper.collapsed[b-2zx46rq9fr]  .ant-menu-sub .pl-user-menu-item {
    padding-left: 8px !important;
}
/* /View/Components/UserMenuComponents/PlUserMenuFixedRegion.razor.rz.scp.css */
/* ===== PLANTA sidebar — FixedTop / FixedBottom renderer =====
   Uses the same design tokens as PlUserMenuContent; see that file header.
   ============================================================== */

.pl-user-menu-fixed-wrapper[b-oinqskw4m8] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed {
    background: transparent !important;
    border-inline-end: none !important;
    font-family: Asap, sans-serif;
    padding: 0 !important;
    line-height: 1;
    user-select: none;
    -webkit-user-select: none;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .pl-user-menu-item {
    height: 32px !important;
    line-height: 32px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    color: #0d1a26 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    overflow: hidden !important;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .pl-user-menu-item > .ant-menu-title-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #6a778b;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-item-icon .anticon,
.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-item-icon .anticon svg {
    font-size: 16px;
    width: 16px;
    height: 16px;
    line-height: 1;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-item-icon img {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-item-label {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #0d1a26;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .pl-user-menu-item:hover {
    background: linear-gradient(153deg, #f2f4f7 0%, #e2e7ee 100%) !important;
}

/* Selected state: white bg + 2px primary border + primary text */
.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .ant-menu-item-selected {
    background: #ffffff !important;
    border: 2px solid #0db5f2 !important;
    color: #0070b5 !important;
    padding: 0 6px !important;
    height: 32px !important;
    line-height: 28px !important;
}

.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .ant-menu-item-selected .pl-user-menu-item-icon,
.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .ant-menu-item-selected .pl-user-menu-item-label {
    color: #0070b5 !important;
}

/* Hide AntDesign's default right-edge highlight on selected items. */
.pl-user-menu-fixed-wrapper[b-oinqskw4m8]  .pl-user-menu-fixed .ant-menu-item::after {
    display: none !important;
}

/* Collapsed sidebar: hide labels, keep icons at the same 8px-from-left position. */
.pl-user-menu-fixed-wrapper.collapsed[b-oinqskw4m8]  .pl-user-menu-item-label,
.pl-user-menu-fixed-wrapper.collapsed[b-oinqskw4m8]  .pl-user-menu-item-suffix {
    display: none !important;
}

.pl-user-menu-fixed-wrapper.collapsed[b-oinqskw4m8]  .pl-user-menu-fixed .pl-user-menu-item {
    padding: 0 8px !important;
    justify-content: flex-start !important;
    width: 100% !important;
}
