﻿/* 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 */
/* ========================================= */
.card-tag-container {
    margin-left: -4px;
}

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

.core-card-media {
    background-size: cover;
}

.core-card-media-contain {
    background-size: contain;
}

.core-card-description {
    line-height: 1.5em;
}

.core-card-content {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}
/* ========================================= */
/* File: CoreCardBase.razor.css */
/* ========================================= */
.core-card-base {
    border: solid 2px transparent;
    width: 100%;
}

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

    .core-card-base-hoverable:hover {
        border-color: var(--mud-palette-gray-light);
    }

.core-card-base-selected {
    border-color: var(--mud-palette-primary);
}

.core-card-base-hoverable.core-card-base-selected:hover {
    border-color: var(--mud-palette-primary);
}
/* ========================================= */
/* File: CoreCheckbox.razor.css */
/* ========================================= */
.core-checkbox .mud-typography-body1 {
    font-size: inherit;
}

/* Pushes toward quipu a bit more 
    - there the box without hover is gray
    - when hovered it is blue
    - when checked it is blue
    the next 2 classes emulates the same on primary variant checkbox
*/
.core-checkbox .mud-checkbox-false.mud-primary-text {
    color: var(--mud-palette-dark-lighten) !important;
}

.core-checkbox .mud-primary-text:hover {
    color: var(--mud-palette-primary) !important;
}
/* ========================================= */
/* File: CoreCheckboxGroup.razor.css */
/* ========================================= */
.core-checkbox-group legend {
    font-size: inherit;
}

.core-checkbox-group .core-label.core-label-error {
    color: var(--quipu-color-fg-error);
}

    .core-checkbox-group .core-label.core-label-error .core-label-secondary {
        color: var(--quipu-color-fg-error);
    }
/* ========================================= */
/* 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__title{
    font: var(--quipu-heading-sm);
    letter-spacing: var(--quipu-letterSpacing-heading-sm);
}

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

.core-dialog__slot{
    padding-top: var(--quipu-padding-sm);
}

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

.core-dialog__actions{
    padding: var(--quipu-padding-lg) var(--quipu-padding-xl) !important;
    border-top: 1px solid var(--quipu-color-border-subtle) !important;
}

.core-dialog .mud-dialog-title {
    padding: var(--quipu-padding-xl) !important;
}
/* ========================================= */
/* File: CoreIconButton.razor.css */
/* ========================================= */
/* Button size overrides */
/* Aligns with the sizes quipu uses */
.core-icon-button.mud-icon-button {
    --_xs-ratio: 0.75;
    --_dimension-to-font-ratio: 0.75;
    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: calc(var(--quipu-control-size-sm) * var(--_xs-ratio));
    height: calc(var(--quipu-control-size-sm) * var(--_xs-ratio));
    border-radius: calc(var(--quipu-button-borderRadius-sm) * var(--_xs-ratio));
}

.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(--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-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;
    text-box-edge: cap alphabetic;
    text-box-trim: trim-both;
}
/* ========================================= */
/* 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);
    font-size: calc(var(--local-deleteIcon-size) * 0.75);
    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-disabled);
}

.core-input-chip-field__input:disabled {
    cursor: not-allowed;
}
/* ========================================= */
/* File: CoreLabel.razor.css */
/* ========================================= */
/* Disabled turns changes the color for the icon, but not the label, which makes it look inconsistent 
    this rule turns that off
*/
.mud-disabled .mud-icon-root {
    color: unset;
}

.core-label {
    font: var(--quipu-label-md);
    color: var(--quipu-color-fg-default);
    letter-spacing: unset;
}

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

.core-label .mud-tooltip-root {
    margin-left: var(--quipu-control-gap-md);
}
/* ========================================= */
/* File: CoreTabs.razor.css */
/* ========================================= */
.core-tabs {
    gap: var(--quipu-control-gap-xl);
}

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

    .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-disabled {
            color: var(--quipu-color-fg-disabled);
        }

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

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

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

.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);
}

.mud-chip.core-tag--size-small {
    --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-medium {
    --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-large {
    --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: 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;
}

/* 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;
}
