﻿/* Auto-generated bundle from .razor.css files */
/* DO NOT EDIT - This file is automatically generated */
/* NOTE: This file is included in source control because the GitHub build & publish action does not publish it */
/* ========================================= */
/* File: CoreAlert.razor.css */
/* ========================================= */
.core-alert {
    border-radius: var(--quipu-borderRadius-xs);
    padding: var(--quipu-padding-sm);
    display: flex;
}

.core-alert .mud-alert-message{
    gap: var(--quipu-gap-md);
    flex: 1 0 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
    justify-content: center;
}

.mud-alert-close-button{
    border-radius: var(--quipu-button-borderRadius-md);
}

.core-alert--variant-info {
    background-color: var(--quipu-color-bg-info-subtle);
}

.core-alert--variant-error {
    background-color: var(--quipu-color-bg-error-subtle);
}

.core-alert--variant-warning {
    background-color: var(--quipu-color-bg-warning-subtle);
}

.core-alert--variant-success {
    background-color: var(--quipu-color-bg-success-subtle);
}

.core-alert--variant-neutral {
    background-color: var(--quipu-color-bg-neutral-subtle);
}

.core-alert--variant-info .mud-alert-icon {
    color: var(--quipu-color-graphic-info);
}

.core-alert--variant-error .mud-alert-icon {
    color: var(--quipu-color-graphic-error);
}

.core-alert--variant-warning .mud-alert-icon {
    color: var(--quipu-color-graphic-warning);
}

.core-alert--variant-success .mud-alert-icon {
    color: var(--quipu-color-graphic-success);
}

.core-alert--variant-neutral .mud-alert-icon {
    color: var(--quipu-color-fg-strong);
}

.core-alert .mud-alert-close{
    align-items: start;
}
.core-alert .mud-alert-close-button{
    width: 40px;
    height: 40px;
}
.core-alert .mud-alert-close-button:hover {
    background-color: var(--quipu-color-bg-neutral-subtle-hover);
}

.core-alert__title{
    font: var(--quipu-label-md-emphasis);
    letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-alert__text {
    font: var(--quipu-body-sm);
    letter-spacing: var(--quipu-letterSpacing-body-sm);
}
/* ========================================= */
/* File: CoreAvatar.razor.css */
/* ========================================= */
/* Base Avatar Styles */
.core-avatar {
    color: var(--quipu-color-fg-inverse);
    text-transform: uppercase;
}

/* Size Modifiers */
.core-avatar--size-xs {
    width: var(--quipu-size-xl) !important;
    height: var(--quipu-size-xl) !important;
    font: var(--quipu-label-xs) !important;
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-avatar--size-sm {
    width: var(--quipu-size-2xl) !important;
    height: var(--quipu-size-2xl) !important;
    font: var(--quipu-label-sm-emphasis) !important;
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-avatar--size-md {
    width: var(--quipu-size-4xl) !important;
    height: var(--quipu-size-4xl) !important;
    font: var(--quipu-label-sm-emphasis) !important;
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-avatar--size-lg {
    width: var(--quipu-size-6xl) !important;
    height: var(--quipu-size-6xl) !important;
    font: var(--quipu-label-md-emphasis) !important;
    letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-avatar--size-xl {
    width: var(--quipu-size-7xl) !important;
    height: var(--quipu-size-7xl) !important;
    font: var(--quipu-label-lg-emphasis) !important;
    letter-spacing: var(--quipu-letterSpacing-label-lg);
}

/* Variant Modifiers */
.core-avatar--variant-circular {
    border-radius: var(--quipu-borderRadius-pill) !important;
}

.core-avatar--variant-rounded {
    border-radius: var(--quipu-borderRadius-sm) !important;
}

/* Color Modifiers */
.core-avatar--color-main {
    background-color: var(--quipu-color-bg-main);
}
/* ========================================= */
/* File: CoreButton.razor.css */
/* ========================================= */
.core-button.mud-button-filled {
    box-shadow: unset;
}

.core-button.mud-button-filled:hover {
    box-shadow: unset;
}
/* ========================================= */
/* File: CoreCard.razor.css */
/* ========================================= */
.core-card__media {
    position: relative;
    overflow: hidden;
    display: flex;
    border-radius: var(--quipu-borderRadius-sm);
}

.core-card__media--cover {
    background-size: cover;
}

.core-card__media--contain {
    background-size: contain;
}

.core-card__elements {
    display: flex;
    gap: var(--quipu-control-gap-md);
    flex-direction: column;
    flex-grow: 1;
}

.core-card-base .core-card__content.mud-card-content {
    display: flex;
    flex-direction: column;
    gap: var(--quipu-gap-xl);
    padding: var(--quipu-padding-xs);
    flex-grow: 1;
}

.core-card__text {
    display: flex;
    flex-direction: column;
    gap: var(--quipu-gap-md);
    min-width: 0;
}

.core-card__titles {
    display: flex;
    flex-direction: column;
    gap: var(--quipu-gap-xs);
}

.core-card__title {
    order: 1;
    color: var(--quipu-color-fg-default);
}

.core-card__subtitle {
    color: var(--quipu-color-fg-subtle);
}

.core-card__actions.mud-card-actions {
    padding: 0 var(--quipu-padding-xs) var(--quipu-padding-xs) var(--quipu-padding-xs);
    gap: var(--quipu-gap-sm);
}
/* ========================================= */
/* File: CoreCardBase.razor.css */
/* ========================================= */
.core-card-base {
    --local-border: var(--quipu-borderWidth-thinnest) solid var(--quipu-color-border-default);
    --local-shadow: var(--quipu-elevation-level1);
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: var(--quipu-padding-xs);
    border: var(--local-border);
    border-radius: var(--quipu-borderRadius-md);
    background: var(--quipu-color-bg-surface);
    box-shadow: var(--local-shadow);
    gap: var(--quipu-control-gap-xl);
}

.core-card-base .mud-card-content {
    padding: 0px;
}

.core-card-base--hoverable {
    cursor: pointer;
}

    .core-card-base--hoverable:hover {
        border-color: var(--quipu-color-border-hover);
    }

.core-card-base--selected {
    --local-shadow-selected: 0 0 0 var(--quipu-borderWidth-thick) var(--quipu-color-fg-supportive);
    --local-border: var(--quipu-borderWidth-thinnest) solid transparent;
    --local-shadow: var(--quipu-elevation-level1), var(--local-shadow-selected);
}

.core-card-base--hoverable.core-card-base--selected:hover {
    --local-border: var(--quipu-borderWidth-thinnest) solid var(--quipu-color-border-hover);
    --local-shadow: var(--quipu-elevation-level4), var(--local-shadow-selected);
}

.core-card-base--hoverable.core-card-base--selected:active {
    --local-border: var(--quipu-borderWidth-thinnest) solid var(--quipu-color-border-hover);
    --local-shadow: var(--local-shadow-selected);
}
/* ========================================= */
/* File: CoreCheckbox.razor.css */
/* ========================================= */
.core-checkbox {
    --local-helpertext-color: var(--quipu-color-fg-subtle);
    --local-helpertext-letterspacing: var(--quipu-letterSpacing-label-md);
    --local-helpertext: var(--quipu-label-md-subtle);
}

.core-checkbox .mud-typography-body1 {
    font: var(--quipu-label-md-subtle);
}

.core-checkbox .mud-icon-button .mud-icon-root.mud-svg-icon {
    fill: var(--quipu-color-fg-subtle);
}

.core-checkbox .mud-icon-button.mud-checkbox-null .mud-icon-root.mud-svg-icon,
.core-checkbox .mud-icon-button.mud-checkbox-true .mud-icon-root.mud-svg-icon {
    fill: var(--quipu-color-bg-supportive);
}

    .core-checkbox.disabled .mud-icon-button .mud-icon-root.mud-svg-icon {
        fill: var(--quipu-color-bg-disabled);
    }

    .core-checkbox.disabled .mud-checkbox.mud-disabled * {
        color: var(--quipu-color-fg-subtle);
    }

    .core-checkbox.disabled {
        --local-helpertext-color: var(--quipu-color-fg-disabled);
    }

.core-checkbox .mud-icon-button {
    border-radius: var(--quipu-borderRadius-md);
    padding: 8px;
}

    .core-checkbox:not(.disabled) .mud-icon-button:hover,
    .core-checkbox:not(.disabled) .mud-icon-button:active {
        background-color: var(--quipu-color-bg-supportive-subtle-hover) !important;
    }

.core-checkbox .mud-checkbox-false.mud-primary-text {
    color: var(--quipu-color-fg-subtle) !important;
}

.core-checkbox .mud-primary-text:hover {
    color: var(--quipu-color-fg-default) !important;
}


    .core-checkbox .core-checkbox__helpertext {
        font: var(--local-helpertext);
        color: var(--local-helpertext-color);
        letter-spacing: var(--local-helpertext-letterspacing);
    }

.core-checkbox-error .mud-icon-button .mud-icon-root.mud-svg-icon {
    fill: var(--quipu-color-border-error);
}
/* ========================================= */
/* File: CoreCheckboxGroup.razor.css */
/* ========================================= */
.core-checkbox-group {
    --local-helpertext: var(--quipu-label-md-subtle);
    --local-helpertext-letterspacing: var(--quipu-letterSpacing-label-md);
}

.core-checkbox-group .mud-input-helper-text {
    font: var(--local-helpertext);
    color: var(--local-helpertext-color);
    letter-spacing: var(--local-helpertext-letterspacing);
}

.core-checkbox-group.disabled .mud-input-helper-text {
    --local-helpertext-color: var(--quipu-color-fg-disabled);
}

.core-checkbox-group legend {
    font-size: inherit;
    margin-bottom: 0;
}
/* ========================================= */
/* File: CoreDatePicker.razor.css */
/* ========================================= */
.core-datepicker {
    --local-helpertext-letterspacing: var(--quipu-letterSpacing-label-md);
    --local-helpertext: var(--quipu-label-md-subtle);
    --local-helpertext-color: var(--quipu-color-fg-subtle);
}

    .core-datepicker .mud-input > input.mud-input-root::placeholder,
    .core-datepicker .mud-input.mud-disabled > input.mud-input-root::placeholder {
        color: var(--quipu-color-fg-subtle);
        opacity: 1;
    }

    .core-datepicker .mud-input.mud-input-outlined .mud-input-outlined-border {
        border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-default);
    }

    .core-datepicker .mud-input.mud-disabled.mud-input-outlined .mud-input-outlined-border {
        border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-disabled);
    }

    .core-datepicker .mud-input.mud-disabled > input.mud-input-root {
        background-color: var(--quipu-color-bg-disabled);
    }

    .core-datepicker .mud-input-helper-text {
        font: var(--local-helpertext);
        color: var(--local-helpertext-color);
        letter-spacing: var(--local-helpertext-letterspacing);
    }

    .core-datepicker.disabled .mud-input-helper-text {
        --local-helpertext-color: var(--quipu-color-fg-disabled);
    }
/* ========================================= */
/* File: CoreDialog.razor.css */
/* ========================================= */
.core-dialog--xs {
    max-width: min(440px, 90vw);
}

.core-dialog--sm {
    min-width: min(440px, 90vw);
    max-width: min(640px, 90vw);
}

.core-dialog--md {
    min-width: min(640px, 90vw);
    max-width: min(900px, 90vw);
}

.core-dialog--lg {
    min-width: min(900px, 90vw);
    max-width: min(1200px, 90vw);
}

.core-dialog--xl {
    min-width: min(1200px, 90vw);
    max-width: min(1500px, 90vw);
}

.core-dialog .core-dialog__icon {
    font-size: var(--quipu-icon-size-md);
}

.core-dialog .core-dialog__content {
    gap: var(--quipu-gap-xl);
    padding: 0 var(--quipu-padding-xl);
    padding-bottom: var(--quipu-padding-xl);
}

.core-dialog .core-dialog__actions {
    padding: var(--quipu-padding-lg);
    border-top: 1px solid var(--quipu-color-border-subtle);
    gap: var(--quipu-control-gap-md);
}

.core-dialog.mud-dialog .mud-dialog-title {
    padding: var(--quipu-padding-xl);
}

    .core-dialog.mud-dialog .mud-dialog-title .mud-button-close {
        border-radius: var(--quipu-button-borderRadius-md);
        top: calc(var(--quipu-padding-md) - 2px);
        right: calc(var(--quipu-padding-md) - 2px);
    }

        .core-dialog.mud-dialog .mud-dialog-title .mud-button-close .mud-icon-root.mud-svg-icon {
            font-size: var(--quipu-icon-size-md);
        }

/* Draggable */

.core-dialog.core-dialog--draggable .mud-dialog-title {
    cursor: move;
    user-select: none;
    touch-action: none;
}
/* ========================================= */
/* File: CoreIconButton.razor.css */
/* ========================================= */
/* Button size overrides */
/* Aligns with the sizes quipu uses */
.core-icon-button.mud-icon-button {
    --_dimension-to-font-ratio: 0.85;
    --local-control-size-xs: var(--quimu-control-size-xs, 1.5rem);
    --local-button-borderRadius-xs: var(--quimu-button-borderRadius-xs, 0.1875rem);
    --local-icon-size-xs: var(--quimu-icon-size-xs, var(--quipu-icon-size-sm));
    --local-icon-font-size-xs: var(--quimu-icon-font-size-xs , calc(var(--quipu-icon-size-sm)*var(--_dimension-to-font-ratio)));
    padding: 0;
}

.core-icon-button.mud-button-filled {
    box-shadow: unset;
}

.core-icon-button.mud-button-filled:hover {
    box-shadow: unset;
}

.core-icon-button--variant-elevated {
    box-shadow: var(--quipu-elevation-level2);
}

/* When the html font size is 14px, this yields 21px for button size */
.core-icon-button--size-xs.mud-icon-button {
    width: var(--local-control-size-xs);
    height: var(--local-control-size-xs);
    border-radius: var(--local-button-borderRadius-xs);
}

.core-icon-button--size-sm.mud-icon-button-size-small {
    width: var(--quipu-control-size-sm);
    height: var(--quipu-control-size-sm);
    border-radius: var(--quipu-button-borderRadius-sm);
}

.core-icon-button--size-md.mud-icon-button {
    width: var(--quipu-control-size-md);
    height: var(--quipu-control-size-md);
    border-radius: var(--quipu-button-borderRadius-md);
}

.core-icon-button--size-lg.mud-icon-button-size-large {
    width: var(--quipu-control-size-lg);
    height: var(--quipu-control-size-lg);
    border-radius: var(--quipu-button-borderRadius-lg);
}

/* Icon size overrides */
.core-icon-button--size-xs .mud-icon-root {
    width: var(--local-icon-size-xs);
    height: var(--local-icon-size-xs);
    font-size: var(--local-icon-font-size-xs) !important;
}

.core-icon-button--size-sm .mud-icon-size-small {
    width: var(--quipu-icon-size-sm);
    height: var(--quipu-icon-size-sm);
    font-size: calc(var(--quipu-icon-size-sm)*var(--_dimension-to-font-ratio)) !important;
}

.core-icon-button--size-md .mud-icon-size-medium {
    width: var(--quipu-icon-size-md);
    height: var(--quipu-icon-size-md);
    font-size: calc(var(--quipu-icon-size-md)*var(--_dimension-to-font-ratio)) !important;
}

.core-icon-button--size-lg .mud-icon-size-large {
    width: var(--quipu-icon-size-lg);
    height: var(--quipu-icon-size-lg);
    font-size: calc(var(--quipu-icon-size-lg)*var(--_dimension-to-font-ratio)) !important;
}

.core-icon-button--size-sm .mud-icon-size-small,
.core-icon-button--size-md .mud-icon-size-medium,
.core-icon-button--size-lg .mud-icon-size-large,
.core-icon-button--size-xs .mud-icon-root {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* These only have relevance in case of font-awesome icons when they are text content */
.core-icon-button--size-xs .mud-icon-root::before,
.core-icon-button--size-md .mud-icon-size-medium::before,
.core-icon-button--size-sm .mud-icon-size-small::before,
.core-icon-button--size-lg .mud-icon-size-large::before{
    letter-spacing: 0;
    text-box: auto;
}
/* ========================================= */
/* File: CoreInputChip.razor.css */
/* ========================================= */
/* Local custom properties — set per variant and size */
.core-input-chip {
    --local-background: unset;
    --local-border: none;
    --local-box-shadow: unset;
    --local-delete-icon-color: unset;
    --local-delete-icon-color-hover: unset;
    --local-font: unset;
    --local-height: unset;
    --local-label-color: unset;
    --local-letter-spacing: unset;
    --local-padding-left: unset;
    --local-deleteIcon-hitarea: unset;
    --local-deleteIcon-size: unset;
    --local-deleteIcon-max-width: unset;
}

/* Root element */
.core-input-chip {
    display: inline-flex;
    flex-shrink: 1;
    gap: var(--quipu-control-gap-xs);
    align-items: center;
    justify-content: center;
    height: var(--local-height);
    min-height: var(--quipu-size-2xl);
    padding: 0 var(--quipu-control-padding-edgetoicon-xs) 0 var(--local-padding-left);
    border: var(--local-border);
    border-radius: var(--quipu-borderRadius-pill);
    font: var(--local-font);
    letter-spacing: var(--local-letter-spacing);
    background: var(--local-background);
    box-shadow: var(--local-box-shadow);
}

/* When there is no delete button, match right padding to left for visual balance */
.core-input-chip:not(:has(.core-input-chip__delete-button)) {
    padding-right: var(--local-padding-left);
}

/* Label */
.core-input-chip__label {
    overflow: hidden;
    flex-shrink: 1;
    min-width: 0;
    color: var(--local-label-color);
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Delete button */
.core-input-chip__delete-button {
    cursor: pointer;
    position: relative;
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    max-width: var(--local-deleteIcon-max-width);
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    outline: none;
    color: var(--local-delete-icon-color);
    width: var(--local-deleteIcon-size);
    height: var(--local-deleteIcon-size);
    font-size: calc(var(--local-deleteIcon-size) * 0.79);
    line-height: 1;
}

/* Extended hit area */
.core-input-chip__delete-button::after {
    content: "";
    position: absolute;
    inset: calc(var(--local-deleteIcon-hitarea) * -1);
    display: block;
    border-radius: var(--quipu-borderRadius-pill);
}

/* Focus ring */
.core-input-chip__delete-button:focus,
.core-input-chip__delete-button:focus-visible {
    outline: var(--quipu-focus-outline);
    outline-offset: var(--quipu-focus-outline-offset);
}

/* Icon hover */
.core-input-chip__delete-button:hover {
    color: var(--local-delete-icon-color-hover);
}

/* Simulated hover via data-state (used for visual testing) */
[data-state="hover"] .core-input-chip__delete-button {
    color: var(--local-delete-icon-color-hover);
}

/* Elevated variant */
.core-input-chip.core-input-chip--variant-elevated {
    --local-box-shadow: var(--quipu-elevation-level2);
    --local-background: var(--quipu-color-bg-surface);
    --local-delete-icon-color: var(--quipu-color-bg-neutral);
    --local-delete-icon-color-hover: var(--quipu-color-bg-neutral-hover);
    --local-label-color: var(--quipu-color-fg-default);
}

/* Subtle variant */
.core-input-chip.core-input-chip--variant-subtle {
    --local-background: var(--quipu-color-bg-supportive-subtle);
    --local-delete-icon-color: var(--quipu-color-fg-supportive);
    --local-delete-icon-color-hover: var(--quipu-color-fg-supportive-hover);
    --local-label-color: var(--quipu-color-fg-supportive-strong);
}

/* Error styles */
.core-input-chip--variant-subtle.core-input-chip--error {
    --local-background: var(--quipu-color-bg-error-subtle);
    --local-label-color: var(--quipu-color-fg-error);
    --local-delete-icon-color: var(--quipu-color-fg-error);
    --local-delete-icon-color-hover: var(--quipu-color-fg-error);
}

.core-input-chip--variant-elevated.core-input-chip--error {
    --local-background: var(--quipu-color-bg-surface);
    --local-border: 1px solid var(--quipu-color-border-error);
    --local-label-color: var(--quipu-color-fg-error);
    --local-delete-icon-color: var(--quipu-color-fg-error);
    --local-delete-icon-color-hover: var(--quipu-color-fg-error);
}

/* Size: sm */
.core-input-chip.core-input-chip--size-sm {
    --local-padding-left: var(--quipu-control-padding-edgetotext-xs);
    --local-height: var(--quipu-size-2xl);
    --local-deleteIcon-hitarea: var(--quipu-padding-2xs);
    --local-deleteIcon-size: var(--quipu-icon-size-sm);
    --local-font: var(--quipu-label-sm-emphasis);
    --local-letter-spacing: var(--quipu-letterSpacing-label-sm);
}

/* Size: md */
.core-input-chip.core-input-chip--size-md {
    --local-padding-left: var(--quipu-control-padding-edgetotext-sm);
    --local-height: var(--quipu-size-4xl);
    --local-deleteIcon-hitarea: var(--quipu-padding-xs);
    --local-deleteIcon-max-width: var(--quipu-size-6xl);
    --local-deleteIcon-size: var(--quipu-icon-size-md);
    --local-font: var(--quipu-label-md-emphasis);
    --local-letter-spacing: var(--quipu-letterSpacing-label-md);
}
/* ========================================= */
/* File: CoreInputChipField.razor.css */
/* ========================================= */
/* Inner wrapper: flex layout for chips and the bare input */
.core-input-chip-field__inner {
    display: flex;
    flex-wrap: wrap;
    gap: var(--quipu-control-gap-xs);
    align-items: center;
    width: 100%;
}

/* Bare input: no styling of its own — blends into the MudField container */
.core-input-chip-field__input {
    flex: 1 1 120px;
    min-width: 60px;
    border: none;
    outline: none;
    background: transparent;
    padding: 0;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    line-height: 1.5;
}

.core-input-chip-field__input::placeholder {
    color: var(--quipu-color-fg-subtle);
    opacity: 1;
}

.core-input-chip-field__input:disabled {
    cursor: not-allowed;
}

.core-input-chip-field .mud-input.mud-input-outlined .mud-input-outlined-border {
    border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-default);
}

.core-input-chip-field .mud-input.mud-disabled.mud-input-outlined .mud-input-outlined-border {
    border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-disabled);
}

.core-input-chip-field .mud-input.mud-disabled {
    background-color: var(--quipu-color-bg-disabled);
}
/* ========================================= */
/* File: CoreLabel.razor.css */
/* ========================================= */
.core-label {
    --local-label-font: var(--quipu-label-md);
    --local-label-letterspacing: var(--quipu-letterSpacing-label-md);
    --local-label-color: var(--quipu-color-fg-default);
    --local-label-color-optional: var(--quipu-color-fg-subtle);
    font: var(--local-label-font);
    color: var(--local-label-color);
    letter-spacing: var(--local-label-letterspacing);
}

    .core-label.disabled {
        --local-label-color: var(--quipu-color-fg-subtle);
        --local-label-color-optional: var(--quipu-color-fg-subtle);
    }

.core-label-secondary {
    font: var(--quipu-label-xs);
    color: var(--local-label-color-optional);
    letter-spacing: var(--quipu-letterSpacing-label-sm);
    margin-left: var(--quipu-control-gap-sm);
}

.core-label.disabled .mud-svg-icon {
    color: var(--quipu-color-fg-disabled);
}

.core-label .mud-tooltip-root {
    margin-left: var(--quipu-control-gap-md);
}
/* ========================================= */
/* File: CoreLink.razor.css */
/* ========================================= */
/* Local CSS variables — resolved per size and modifier */
.core-link {
    --local-color: unset;
    --local-color-hover: unset;
    --local-color-active: unset;
    --local-font: unset;
    --local-icon-size: unset;
    --local-letter-spacing: unset;

    display: inline-flex;
    align-items: center;
    gap: var(--quipu-control-gap-xs);
    font: var(--local-font);
    color: var(--local-color) !important;
    letter-spacing: var(--local-letter-spacing);
    text-decoration: underline;
}

/* Override MudIcon dimensions to match Quipu body-proportional icon sizes */
.core-link .mud-icon-root {
    flex-shrink: 0;
    width: var(--local-icon-size);
    height: var(--local-icon-size);
    font-size: var(--local-icon-size) !important; /* !important needed to beat MudBlazor's own !important */
}

/* FA icon letter-spacing reset (prevents character spacing from inflating icon width) */
.core-link .mud-icon-root::before {
    letter-spacing: 0;
    text-box: auto;
}

/* Hover / Active */
.core-link:hover {
    color: var(--local-color-hover) !important;
}

.core-link:active {
    color: var(--local-color-active) !important;
}

/* Focus visible */
.core-link:focus-visible {
    outline: 2px solid var(--quipu-color-border-focus);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ── Color variants ─────────────────────────────────────────────────────────── */

.core-link--color-main {
    --local-color: var(--quipu-color-fg-main);
    --local-color-hover: var(--quipu-color-fg-main-hover);
    --local-color-active: var(--quipu-color-fg-main-active);
}

.core-link--color-supportive {
    --local-color: var(--quipu-color-fg-supportive);
    --local-color-hover: var(--quipu-color-fg-supportive-hover);
    --local-color-active: var(--quipu-color-fg-supportive-active);
}

.core-link--color-neutral {
    --local-color: var(--quipu-color-fg-default);
    --local-color-hover: var(--quipu-color-fg-default);
    --local-color-active: var(--quipu-color-fg-default);
}

.core-link--color-inherit {
    --local-color: currentcolor;
}

/* ── Size + typography combinations ─────────────────────────────────────────── */
/* Each size sets the base font (body) and icon size. Typography modifiers override only the font. */

.core-link--size-sm {
    --local-font: var(--quipu-body-sm);
    --local-icon-size: var(--quipu-icon-size-bodySm);
    --local-letter-spacing: var(--quipu-letterSpacing-body-sm);
}

.core-link--size-sm.core-link--typography-label {
    --local-font: var(--quipu-label-sm);
    --local-letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-link--size-sm.core-link--typography-label-subtle {
    --local-font: var(--quipu-label-sm-subtle);
    --local-letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-link--size-md {
    --local-font: var(--quipu-body-md);
    --local-icon-size: var(--quipu-icon-size-bodyMd);
    --local-letter-spacing: var(--quipu-letterSpacing-body-md);
}

.core-link--size-md.core-link--typography-label {
    --local-font: var(--quipu-label-md);
    --local-letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-link--size-md.core-link--typography-label-subtle {
    --local-font: var(--quipu-label-md-subtle);
    --local-letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-link--size-lg {
    --local-font: var(--quipu-body-lg);
    --local-icon-size: var(--quipu-icon-size-bodyLg);
    --local-letter-spacing: var(--quipu-letterSpacing-body-lg);
}

.core-link--size-lg.core-link--typography-label {
    --local-font: var(--quipu-label-lg);
    --local-letter-spacing: var(--quipu-letterSpacing-label-lg);
}

.core-link--size-lg.core-link--typography-label-subtle {
    --local-font: var(--quipu-label-lg-subtle);
    --local-letter-spacing: var(--quipu-letterSpacing-label-lg);
}

.core-link--size-inherit {
    --local-icon-size: 1em;
    font: inherit;
}

/* ── Underline variants ─────────────────────────────────────────────────────── */

.core-link--underline-always {
    text-decoration: underline;
}

.core-link--underline-hover {
    text-decoration: none;
}

.core-link--underline-hover:hover {
    text-decoration: underline;
}

/* ── Inline modifier ────────────────────────────────────────────────────────── */

.core-link--inline {
    --local-color: currentcolor;
    --local-color-hover: currentcolor;
    --local-color-active: currentcolor;
    --local-icon-size: 1em;
    font: inherit;
    text-decoration: underline;
}

/* ── Disabled ───────────────────────────────────────────────────────────────── */
/* MudLink adds .mud-link-disabled; MudButton renders a native disabled button */

.core-link.mud-link-disabled,
.core-link:disabled {
    --local-color: var(--quipu-color-fg-disabled);
    --local-color-hover: var(--quipu-color-fg-disabled);
    --local-color-active: var(--quipu-color-fg-disabled);
    pointer-events: none;
    text-decoration: none;
}

/* ── MudButton-as-link reset (OnClick-only rendering mode) ──────────────────── */

.mud-button-text.core-link {
    min-width: unset;
    padding: 0;
    height: auto;
    font: var(--local-font);
    letter-spacing: var(--local-letter-spacing);
    text-transform: none;
    vertical-align: baseline;
    color: var(--local-color);
    background-color: transparent;
    box-shadow: none;
}

.mud-button-text.core-link:hover {
    color: var(--local-color-hover);
    background-color: transparent;
}

.mud-button-text.core-link:active {
    color: var(--local-color-active);
    background-color: transparent;
}

.core-link .mud-link-icon-start,
.core-link .mud-link-icon-end {
    margin: 0;
}

.mud-button-text.core-link .mud-button-label {
    gap: var(--quipu-control-gap-xs);
}

.mud-button-text.core-link .mud-button-icon-start,
.mud-button-text.core-link .mud-button-icon-end {
    padding: 0;
    margin: 0;
    height: auto;
}
/* ========================================= */
/* File: CoreStack.razor.css */
/* ========================================= */
.core-stack {
    --local-gap: unset;
    display: flex;
    gap: var(--local-gap);
    margin: 0;
    padding: 0;
}

/* Space variants */
.core-stack--space-none {
    --local-gap: 0;
}

.core-stack--space-2-xs {
    --local-gap: var(--quipu-gap-2xs);
}

.core-stack--space-xs {
    --local-gap: var(--quipu-gap-xs);
}

.core-stack--space-sm {
    --local-gap: var(--quipu-gap-sm);
}

.core-stack--space-md {
    --local-gap: var(--quipu-gap-md);
}

.core-stack--space-lg {
    --local-gap: var(--quipu-gap-lg);
}

.core-stack--space-xl {
    --local-gap: var(--quipu-gap-xl);
}

.core-stack--space-2-xl {
    --local-gap: var(--quipu-gap-2xl);
}

.core-stack--space-3-xl {
    --local-gap: var(--quipu-gap-3xl);
}

/* Direction variants */
.core-stack--direction-horizontal {
    flex-direction: row;
}

.core-stack--direction-vertical {
    flex-direction: column;
}

/* Alignment variants */
.core-stack--alignment-flex-start {
    align-items: flex-start;
}

.core-stack--alignment-flex-end {
    align-items: flex-end;
}

.core-stack--alignment-center {
    align-items: center;
}

.core-stack--alignment-stretch {
    align-items: stretch;
}

.core-stack--alignment-baseline {
    align-items: baseline;
}

/* Wrap variants */
.core-stack--wrap-no-wrap {
    flex-wrap: nowrap;
}

.core-stack--wrap-wrap {
    flex-wrap: wrap;
}

/* Direct list item children should display as block */
.core-stack > li {
    display: block;
}
/* ========================================= */
/* File: CoreSwitchList.razor.css */
/* ========================================= */
.core-switch-list {
    display: flex;
    gap: 16px;
    align-items: stretch;
}

.core-switch-list__panel {
    flex: 1;
}

.core-switch-list__buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    padding: 0 8px;
}

/* Fix filter header cell positioning in dense MudDataGrid with sticky headers */
.core-switch-list .mud-table-dense .filter-header-cell {
    top: 35px;
}
/* ========================================= */
/* File: CoreTabs.razor.css */
/* ========================================= */
.core-tabs {
    gap: var(--quipu-control-gap-xl);
}

.core-tabs__tabbar .mud-tabs-tabbar-content {
    box-shadow: inset 0 calc(var(--quipu-borderWidth-thin) * -1) 0 0 var(--quipu-color-border-subtle);
}

.core-tabs__tabbar .mud-tabs-tabbar-inner {
    min-height: 40px;
}

.core-tabs__tabbar .mud-tabs-header.mud-tabs-header-after {
    display: flex;
    align-items: center;
    padding-left: var(--quipu-padding-2xl);
    white-space: nowrap;
}

.core-tabs__tabbar .mud-tab {
    font-family: var(--quipu-fontFamily-body);
    font-size: var(--quipu-fontSize-label-md);
    font-weight: var(--quipu-fontWeight-labelSubtle);
    font-style: normal;
    line-height: var(--quipu-lineHeight-label-md);
    color: var(--quipu-color-fg-default);
    text-align: center;
    letter-spacing: var(--quipu-letterSpacing-label-md);
    text-transform: none;
    min-height: 40px;
}

.core-tabs__tabbar .mud-tab.mud-tab-active {
    font-weight: var(--quipu-fontWeight-labelEmphasis);
    color: var(--quipu-color-fg-default);
}

.core-tabs__tabbar .mud-tab:hover,
.core-tabs__tabbar .mud-tab.mud-tab-active:hover {
    background-color: var(--quipu-tabs-color-bg-hover);
}

.core-tabs__tabbar .mud-tab.mud-disabled {
    color: var(--quipu-color-fg-disabled);
}

.core-tabs__tabbar :has(> .mud-tab.mud-disabled) {
    cursor: not-allowed;
}

.core-tabs__tabbar .mud-tab-slider {
    background: var(--quipu-color-graphic-info);
}

.fill-no-scroll {
    width: 100%;
    height: 100%;
    overflow: hidden;
}
/* ========================================= */
/* File: CoreTag.razor.css */
/* ========================================= */
.mud-chip.core-tag {
    align-items: center;
    justify-content: center;
    gap: var(--local-gap);
    height: var(--local-height);
    padding-right: var(--local-padding);
    padding-left: var(--local-padding);
    border-radius: var(--local-border-radius);
    font: var(--local-font);
    margin: 0px;
}

.mud-chip.core-tag--size-sm {
    --local-height: var(--quipu-size-lg);
    --local-padding: var(--quipu-control-padding-edgetotext-3xs);
    --local-border-radius: var(--quipu-borderRadius-xs);
    --local-gap: var(--quipu-control-gap-2xs);
    --local-font: var(--quipu-label-xs);
    --local-icon-size: var(--quipu-icon-size-labelXs);
}

.mud-chip.core-tag--size-md {
    --local-height: var(--quipu-size-xl);
    --local-padding: var(--quipu-control-padding-edgetotext-2xs);
    --local-border-radius: var(--quipu-borderRadius-sm);
    --local-gap: var(--quipu-control-gap-2xs);
    --local-font: var(--quipu-label-sm);
    --local-icon-size: var(--quipu-icon-size-labelSm);
}

.mud-chip.core-tag--size-lg {
    --local-height: var(--quipu-size-2xl);
    --local-padding: var(--quipu-control-padding-edgetotext-xs);
    --local-border-radius: var(--quipu-borderRadius-sm);
    --local-gap: var(--quipu-control-gap-xs);
    --local-font: var(--quipu-label-md);
    --local-icon-size: var(--quipu-icon-size-labelMd);
}

.core-tag .mud-chip-icon {
    width: var(--local-icon-size);
    height: var(--local-icon-size);
    margin-left: -2px;
    margin-right: 0;
}

/* Color classes */
.core-tag--color-neutral {
    color: var(--quipu-color-fg-strong);
}

.core-tag--color-assistant {
    color: var(--quipu-color-fg-assistant-strong);
}

.core-tag--color-info {
    color: var(--quipu-color-fg-info-strong);
}

.core-tag--color-success {
    color: var(--quipu-color-fg-success-strong);
}

.core-tag--color-warning {
    color: var(--quipu-color-fg-warning-strong);
}

.core-tag--color-error {
    color: var(--quipu-color-fg-error-strong);
}

/* Variant classes */
.core-tag--variant-strong {
    color: var(--quipu-color-fg-inverse);
}

    .core-tag--variant-strong.core-tag--color-neutral {
        background-color: var(--quipu-color-bg-neutral-strong);
    }

    .core-tag--variant-strong.core-tag--color-assistant {
        background-color: var(--quipu-color-bg-assistant);
    }

    .core-tag--variant-strong.core-tag--color-info {
        background-color: var(--quipu-color-bg-info);
    }

    .core-tag--variant-strong.core-tag--color-success {
        background-color: var(--quipu-color-bg-success);
    }

    .core-tag--variant-strong.core-tag--color-warning {
        background-color: var(--quipu-color-bg-warning);
    }

    .core-tag--variant-strong.core-tag--color-error {
        background-color: var(--quipu-color-bg-error);
    }

.core-tag--variant-subtle.core-tag--color-neutral {
    background-color: var(--quipu-color-bg-neutral-subtle);
}

.core-tag--variant-subtle.core-tag--color-assistant {
    background-color: var(--quipu-color-bg-assistant-subtle);
}

.core-tag--variant-subtle.core-tag--color-info {
    background-color: var(--quipu-color-bg-info-subtle);
}

.core-tag--variant-subtle.core-tag--color-success {
    background-color: var(--quipu-color-bg-success-subtle);
}

.core-tag--variant-subtle.core-tag--color-warning {
    background-color: var(--quipu-color-bg-warning-subtle);
}

.core-tag--variant-subtle.core-tag--color-error {
    background-color: var(--quipu-color-bg-error-subtle);
}
/* ========================================= */
/* File: CoreTextArea.razor.css */
/* ========================================= */
.core-textarea {
    --local-helpertext-letterspacing: var(--quipu-letterSpacing-label-md);
    --local-helpertext: var(--quipu-label-md-subtle);
    --local-helpertext-color: var(--quipu-color-fg-subtle);
}

    .core-textarea .mud-input > textarea.mud-input-root::placeholder,
    .core-textarea .mud-input.mud-disabled > textarea.mud-input-root::placeholder {
        color: var(--quipu-color-fg-subtle);
        opacity: 1;
    }

.core-textarea .mud-input.mud-input-outlined .mud-input-outlined-border {
    border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-default);
}

.core-textarea .mud-input.mud-disabled.mud-input-outlined .mud-input-outlined-border {
    border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-disabled);
}

    .core-textarea .mud-input.mud-disabled > textarea.mud-input-root {
        background-color: var(--quipu-color-bg-disabled);
        mask-image: none;
    }

    .core-textarea .mud-input-helper-text {
        font: var(--local-helpertext);
        color: var(--local-helpertext-color);
        letter-spacing: var(--local-helpertext-letterspacing);
    }

    .core-textarea.disabled .mud-input-helper-text {
        --local-helpertext-color: var(--quipu-color-fg-disabled);
    }
/* ========================================= */
/* File: CoreTextField.razor.css */
/* ========================================= */
.core-textfield {
    --local-helpertext-letterspacing: var(--quipu-letterSpacing-label-md);
    --local-helpertext: var(--quipu-label-md-subtle);
    --local-helpertext-color: var(--quipu-color-fg-subtle);
}

    .core-textfield .mud-input > input.mud-input-root::placeholder,
    .core-textfield .mud-input.mud-disabled > input.mud-input-root::placeholder {
        color: var(--quipu-color-fg-subtle);
        opacity: 1;
    }

    .core-textfield .mud-input.mud-input-outlined .mud-input-outlined-border {
        border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-default);
    }

    .core-textfield .mud-input.mud-disabled.mud-input-outlined .mud-input-outlined-border {
        border: var(--quipu-borderWidth-thin) solid var(--quipu-color-border-disabled);
    }

    .core-textfield .mud-input.mud-disabled > input.mud-input-root {
        background-color: var(--quipu-color-bg-disabled);
    }

    .core-textfield .mud-input-helper-text {
        font: var(--local-helpertext);
        color: var(--local-helpertext-color);
        letter-spacing: var(--local-helpertext-letterspacing);
    }

    .core-textfield.disabled .mud-input-helper-text {
        --local-helpertext-color: var(--quipu-color-fg-disabled);
    }
/* ========================================= */
/* File: CoreTooltip.razor.css */
/* ========================================= */
.core-tooltip-content.mud-tooltip {
    background-color: var(--quipu-color-bg-neutral-strong);
    padding: var(--quipu-padding-xs);
    border-radius: var(--quipu-borderRadius-xs);
    font: var(--quipu-label-sm-subtle);
    color: var(--quipu-color-fg-inverse);
    letter-spacing: var(--quipu-letterSpacing-label-sm);
    box-shadow: #0000003d 0 3px 8px;
}

    .core-tooltip-content.mud-tooltip.mud-tooltip-arrow::after {
        border-color: var(--quipu-color-bg-neutral-strong) transparent transparent transparent;
    }
/* ========================================= */
/* File: CoreTypography.razor.css */
/* ========================================= */
/* Default style */
.core-text {
    margin: 0;
    word-wrap: break-word;
}

/* Heading variants */
.core-text--variant-heading-2-xl {
    font: var(--quipu-heading-2xl);
    letter-spacing: var(--quipu-letterSpacing-heading-2xl);
}

.core-text--variant-heading-xl {
    font: var(--quipu-heading-xl);
    letter-spacing: var(--quipu-letterSpacing-heading-xl);
}

.core-text--variant-heading-lg {
    font: var(--quipu-heading-lg);
    letter-spacing: var(--quipu-letterSpacing-heading-lg);
}

.core-text--variant-heading-md {
    font: var(--quipu-heading-md);
    letter-spacing: var(--quipu-letterSpacing-heading-md);
}

.core-text--variant-heading-sm {
    font: var(--quipu-heading-sm);
    letter-spacing: var(--quipu-letterSpacing-heading-sm);
}

.core-text--variant-heading-xs {
    font: var(--quipu-heading-xs);
    letter-spacing: var(--quipu-letterSpacing-heading-xs);
}

/* Label variants - Large */
.core-text--variant-label-lg-emphasis {
    font: var(--quipu-label-lg-emphasis);
    letter-spacing: var(--quipu-letterSpacing-label-lg);
}

.core-text--variant-label-lg {
    font: var(--quipu-label-lg);
    letter-spacing: var(--quipu-letterSpacing-label-lg);
}

.core-text--variant-label-lg-subtle {
    font: var(--quipu-label-lg-subtle);
    letter-spacing: var(--quipu-letterSpacing-label-lg);
}

/* Label variants - Medium */
.core-text--variant-label-md-emphasis {
    font: var(--quipu-label-md-emphasis);
    letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-text--variant-label-md {
    font: var(--quipu-label-md);
    letter-spacing: var(--quipu-letterSpacing-label-md);
}

.core-text--variant-label-md-subtle {
    font: var(--quipu-label-md-subtle);
    letter-spacing: var(--quipu-letterSpacing-label-md);
}

/* Label variants - Small */
.core-text--variant-label-sm-emphasis {
    font: var(--quipu-label-sm-emphasis);
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-text--variant-label-sm {
    font: var(--quipu-label-sm);
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

.core-text--variant-label-sm-subtle {
    font: var(--quipu-label-sm-subtle);
    letter-spacing: var(--quipu-letterSpacing-label-sm);
}

/* Label variants - Extra small */
.core-text--variant-label-xs-emphasis {
    font: var(--quipu-label-xs-emphasis);
}

.core-text--variant-label-xs {
    font: var(--quipu-label-xs);
}

/* Body variants */
.core-text--variant-body-lg {
    font: var(--quipu-body-lg);
    letter-spacing: var(--quipu-letterSpacing-body-lg);
}

.core-text--variant-body-md {
    font: var(--quipu-body-md);
    letter-spacing: var(--quipu-letterSpacing-body-md);
}

.core-text--variant-body-sm {
    font: var(--quipu-body-sm);
    letter-spacing: var(--quipu-letterSpacing-body-sm);
}

/* Color classes */
.core-text--color-default {
    color: var(--quipu-color-fg-default);
}

.core-text--color-inverse {
    color: var(--quipu-color-fg-inverse);
}

.core-text--color-subtle {
    color: var(--quipu-color-fg-subtle);
}

.core-text--color-strong {
    color: var(--quipu-color-fg-strong);
}

.core-text--color-disabled {
    color: var(--quipu-color-fg-disabled);
}

.core-text--color-main {
    color: var(--quipu-color-fg-main);
}

.core-text--color-assistant {
    color: var(--quipu-color-fg-assistant);
}

.core-text--color-assistant-strong {
    color: var(--quipu-color-fg-assistant-strong);
}

.core-text--color-info {
    color: var(--quipu-color-fg-info-strong);
}

.core-text--color-supportive {
    color: var(--quipu-color-fg-supportive);
}

.core-text--color-supportive-strong {
    color: var(--quipu-color-fg-supportive-strong);
}

.core-text--color-warning {
    color: var(--quipu-color-fg-warning);
}

.core-text--color-warning-strong {
    color: var(--quipu-color-fg-warning-strong);
}

.core-text--color-error {
    color: var(--quipu-color-fg-error);
}

.core-text--color-error-strong {
    color: var(--quipu-color-fg-error-strong);
}

.core-text--color-success {
    color: var(--quipu-color-fg-success);
}

.core-text--color-success-strong {
    color: var(--quipu-color-fg-success-strong);
}

/* Alignment classes */
.core-text--align-inherit {
    text-align: inherit;
}

.core-text--align-left {
    text-align: left;
}

.core-text--align-center {
    text-align: center;
}

.core-text--align-right {
    text-align: right;
}

.core-text--align-justify {
    text-align: justify;
}

/* Text formatting modes */
.core-text--text-formatting-standard {
    white-space: normal;
}

.core-text--text-formatting-preserve-line-breaks {
    white-space: pre-line;
}

.core-text--text-formatting-preserve-all {
    white-space: pre-wrap;
}

/* Modifiers */
.core-text--gutter-bottom {
    margin-bottom: .5em;
}

.core-text--legible-line-width {
    max-width: 65ch;
}

.core-text--max-lines {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--dynamic-max-lines);
    text-overflow: ellipsis;
}
