/* Google Fonts v20, unchanged local Latin/Latin Extended subsets; see the bundled text-font notice. */
@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-v20-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-v20-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Inter";
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-v20-italic-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Inter";
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-v20-italic-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../fonts/manrope-v20-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Manrope";
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../fonts/manrope-v20-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Ignis Material Symbols Outlined";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/material-symbols-outlined-v367.woff2") format("woff2");
}

:root {
    --ignis-color-primary: #d94d20;
    --ignis-color-primary-strong: #ad3511;
    --ignis-color-primary-soft: #fff3ed;
    --ignis-color-button-primary: var(--ignis-color-primary-strong);
    --ignis-color-button-primary-strong: color-mix(in srgb, var(--ignis-color-primary-strong) 82%, #000000);
    --ignis-color-secondary: #334155;
    --ignis-color-secondary-strong: #1e293b;
    --ignis-color-secondary-soft: #f1f5f9;
    --ignis-color-secondary-text: #334155;
    --ignis-color-secondary-text-hover: #1e293b;
    --ignis-color-tertiary: #6d28d9;
    --ignis-color-tertiary-strong: #5b21b6;
    --ignis-color-tertiary-soft: #f5f3ff;
    --ignis-color-info: #0369a1;
    --ignis-color-info-strong: #075985;
    --ignis-color-info-soft: #e0f2fe;
    --ignis-color-success: #15803d;
    --ignis-color-success-strong: #166534;
    --ignis-color-success-soft: #f0fdf4;
    --ignis-color-warning: #b45309;
    --ignis-color-warning-strong: #92400e;
    --ignis-color-warning-soft: #fffbeb;
    --ignis-color-inverse: #0f172a;
    --ignis-color-inverse-strong: #020617;
    --ignis-color-inverse-soft: #e2e8f0;
    --ignis-color-border: #d9dee7;
    --ignis-color-border-soft: #e9edf3;
    --ignis-color-grid-line: #e2e8f0;
    --ignis-color-grid-row-alternate: #f8fafc;
    --ignis-color-grid-group-background: #f1f5f9;
    --ignis-color-grid-group-background-hover: #e2e8f0;
    --ignis-color-grid-group-text: #334155;
    --ignis-color-grid-group-text-hover: #1e293b;
    --ignis-color-grid-detail-background: #f8fafc;
    --ignis-color-grid-detail-text: #334155;
    --ignis-color-grid-detail-border: #e2e8f0;
    --ignis-color-grid-context-menu-background: #ffffff;
    --ignis-color-grid-context-menu-text: #1e293b;
    --ignis-color-grid-context-menu-border: #d9dee7;
    --ignis-color-grid-context-menu-hover-background: #f7f8fa;
    --ignis-color-background: #ffffff;
    --ignis-color-surface: #f7f8fa;
    --ignis-color-text: #1e293b;
    --ignis-color-text-muted: #64748b;
    --ignis-color-input-label: #1e293b;
    --ignis-color-input-background: #ffffff;
    --ignis-color-input-text: #1e293b;
    --ignis-color-input-placeholder: #64748b;
    --ignis-color-input-border: #d9dee7;
    --ignis-color-input-border-hover: #d94d20;
    --ignis-color-input-focus: #d94d20;
    --ignis-color-input-popup-background: #ffffff;
    --ignis-color-input-popup-border: #d9dee7;
    --ignis-color-input-option-hover: #f7f8fa;
    --ignis-color-input-option-selected: #fff3ed;
    --ignis-color-input-tag-background: #f1f5f9;
    --ignis-color-input-tag-text: #334155;
    --ignis-color-window-overlay: rgb(15 23 42 / 52%);
    --ignis-color-window-background: #ffffff;
    --ignis-color-window-text: #1e293b;
    --ignis-color-window-border: #d9dee7;
    --ignis-color-window-titlebar-background: #f7f8fa;
    --ignis-color-window-titlebar-text: #1e293b;
    --ignis-color-window-footer-background: #f7f8fa;
    --ignis-color-popover-background: #ffffff;
    --ignis-color-popover-text: #1e293b;
    --ignis-color-popover-border: #d9dee7;
    --ignis-color-popover-header-background: #f7f8fa;
    --ignis-color-popover-header-text: #1e293b;
    --ignis-color-popover-actions-background: #f7f8fa;
    --ignis-color-form-label: #1e293b;
    --ignis-color-form-text: #1e293b;
    --ignis-color-form-hint: #64748b;
    --ignis-color-form-error: #9f1239;
    --ignis-color-form-group-border: #d9dee7;
    --ignis-color-form-group-legend: #1e293b;
    --ignis-color-error-border: #ef9a9a;
    --ignis-color-error-background: #fff1f2;
    --ignis-color-error-text: #9f1239;
    --ignis-color-validation-summary-border: var(--ignis-color-error-border);
    --ignis-color-validation-summary-background: var(--ignis-color-error-background);
    --ignis-color-validation-summary-text: var(--ignis-color-error-text);
    --ignis-color-on-primary: #ffffff;
    --ignis-color-on-primary-hover: #ffffff;
    --ignis-color-on-secondary: #ffffff;
    --ignis-color-on-secondary-hover: #ffffff;
    --ignis-color-on-tertiary: #ffffff;
    --ignis-color-on-info: #ffffff;
    --ignis-color-on-success: #ffffff;
    --ignis-color-on-warning: #ffffff;
    --ignis-color-on-inverse: #ffffff;
    --ignis-color-danger: #be123c;
    --ignis-color-danger-strong: #9f1239;
    --ignis-color-on-danger: #ffffff;
    --ignis-color-on-danger-hover: #ffffff;
    --ignis-color-overlay: rgb(255 255 255 / 82%);
    --ignis-color-spinner-track: #fed7c4;
    --ignis-focus-outline-width: 0px;
    --ignis-focus-ring-scale: 0;
    --ignis-rounded: 15px;
    --ignis-rounded-control: 8px;
    --ignis-font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ignis-font-family-heading: "Manrope", var(--ignis-font-family);
    --ignis-font-size-xs: 0.75rem;
    --ignis-font-size-sm: 0.875rem;
    --ignis-font-size-md: 0.9rem;
    --ignis-font-size-base: 1rem;
    --ignis-default-font-size-input: 0.875rem;
    --ignis-font-size-input: var(--ignis-default-font-size-input);
    --ignis-default-typography-h1-size: clamp(1.75rem, 1.25rem + 1.666667vw, 2.25rem);
    --ignis-default-typography-h2-size: clamp(1.5rem, 1.125rem + 1.25vw, 1.875rem);
    --ignis-default-typography-h3-size: clamp(1.25rem, 1rem + 0.833333vw, 1.5rem);
    --ignis-default-typography-h4-size: clamp(1.125rem, 1rem + 0.416667vw, 1.25rem);
    --ignis-default-typography-h5-size: clamp(1.0625rem, 1rem + 0.208333vw, 1.125rem);
    --ignis-default-button-padding-block: 0.4rem;
    --ignis-default-carousel-slide-min-height: 13rem;
    --ignis-default-carousel-title-font-size: 1.25rem;
    --ignis-icon-font-family: "Ignis Material Symbols Outlined";
    --ignis-icon-size: 1em;
    --ignis-icon-size-small: 0.875em;
    --ignis-icon-size-medium: 1.25em;
    --ignis-icon-size-large: 1.5em;
    --ignis-icon-color: currentColor;
    --ignis-spacing-xs: 0.25rem;
    --ignis-spacing-sm: 0.5rem;
    --ignis-default-spacing-md: 0.75rem;
    --ignis-default-spacing-lg: 1rem;
    --ignis-default-spacing-xl: 1.25rem;
    --ignis-spacing-md: var(--ignis-default-spacing-md);
    --ignis-spacing-lg: var(--ignis-default-spacing-lg);
    --ignis-spacing-xl: var(--ignis-default-spacing-xl);
    --ignis-grid-group-indent: 1.25rem;
    --ignis-grid-detail-padding: var(--ignis-default-grid-detail-padding, 1rem 1.25rem);
    --ignis-input-height: var(--ignis-default-input-height, 2.5rem);
    --ignis-input-popup-max-height: 16rem;
    --ignis-input-popup-z-index: 1000;
    --ignis-date-picker-popup-max-height: 25rem;
    --ignis-window-z-index: 1200;
    --ignis-window-radius: 15px;
    --ignis-window-shadow: 0 24px 64px rgb(15 23 42 / 24%);
    --ignis-window-titlebar-height: 3rem;
    --ignis-window-content-padding: var(--ignis-default-window-content-padding, 1rem 1.25rem);
    --ignis-window-footer-padding: var(--ignis-default-window-footer-padding, 0.75rem 1rem);
    --ignis-popover-z-index: 1300;
    --ignis-popover-max-width: 24rem;
    --ignis-popover-radius: 15px;
    --ignis-popover-shadow: 0 18px 48px rgb(15 23 42 / 22%);
    --ignis-popover-header-padding: var(--ignis-default-popover-header-padding, 0.8rem 1rem);
    --ignis-popover-content-padding: var(--ignis-default-popover-content-padding, 1rem);
    --ignis-popover-actions-padding: var(--ignis-default-popover-actions-padding, 0.75rem 1rem);
    --ignis-form-field-gap: var(--ignis-spacing-md, 0.75rem);
    --ignis-form-field-horizontal-gap: var(--ignis-spacing-lg);
    --ignis-form-group-padding: var(--ignis-spacing-lg);
    --ignis-form-buttons-gap: var(--ignis-spacing-md);
    --ignis-validation-summary-margin: var(--ignis-spacing-lg);
    --ignis-validation-summary-padding: var(--ignis-default-validation-summary-padding, 0.875rem 1rem);
    --ignis-validation-summary-gap: 0.625rem;
    --ignis-validation-summary-radius: var(--ignis-rounded-control);
}

/* Prevent browser-native focus outlines only within IgnisUI, including controls with no isolated focus rule.
   Component rules use the same inherited tokens, so a theme provider can enable them without CSS overrides. */
:where([class^="ignis__"], [class*=" ignis__"]):focus,
:where([class^="ignis__"], [class*=" ignis__"]) :focus {
    outline-width: var(--ignis-focus-outline-width, 0px);
}

:where([class^="ignis__"], [class*=" ignis__"]):focus-visible,
:where([class^="ignis__"], [class*=" ignis__"]) :focus-visible {
    outline: var(--ignis-focus-outline-width, 0px) solid var(--ignis-color-primary, #d94d20);
    outline-offset: 2px;
}

/* Adapt only default aliases: explicit public theme/component tokens retain precedence. */
@media (min-width: 600px) and (max-width: 959px) {
    :root {
        --ignis-default-spacing-lg: 0.9375rem;
        --ignis-default-spacing-xl: 1.125rem;
        --ignis-default-button-padding-block: 0.5rem;
        --ignis-default-input-padding-inline: 0.6875rem;
        --ignis-default-editor-content-padding: 0.6875rem 0.75rem;
        --ignis-default-carousel-slide-min-height: 12rem;
        --ignis-default-carousel-title-font-size: 1.125rem;
        --ignis-default-grid-cell-padding: 0.7rem 0.875rem;
        --ignis-default-grid-chrome-padding: 0.8125rem 0.875rem;
        --ignis-default-grid-detail-padding: 0.9375rem 1.125rem;
        --ignis-default-window-content-padding: 1rem;
        --ignis-default-window-titlebar-padding: 0.75rem 1rem;
        --ignis-default-window-footer-padding: 0.75rem 1rem;
        --ignis-default-popover-header-padding: 0.75rem 1rem;
        --ignis-default-popover-content-padding: 1rem;
        --ignis-default-popover-actions-padding: 0.75rem 1rem;
    }
}

@media (max-width: 599px) {
    :root {
        --ignis-default-spacing-md: 0.625rem;
        --ignis-default-spacing-lg: 0.875rem;
        --ignis-default-spacing-xl: 1rem;
        --ignis-default-font-size-input: 1rem;
        --ignis-default-input-padding-inline: 0.625rem;
        --ignis-default-input-padding-block: 0.5rem;
        --ignis-default-editor-content-padding: 0.625rem;
        --ignis-default-button-padding-block: 0.5rem;
        --ignis-default-carousel-slide-min-height: 11rem;
        --ignis-default-carousel-title-font-size: 1rem;
        --ignis-default-grid-cell-padding: 0.625rem 0.75rem;
        --ignis-default-grid-chrome-padding: 0.75rem;
        --ignis-default-grid-detail-padding: 0.75rem 1rem;
        --ignis-default-grid-empty-padding: 1.5rem 0.75rem;
        --ignis-default-window-content-padding: 0.75rem;
        --ignis-default-window-titlebar-padding: 0.625rem 0.75rem;
        --ignis-default-window-footer-padding: 0.625rem 0.75rem;
        --ignis-default-popover-header-padding: 0.625rem 0.75rem;
        --ignis-default-popover-content-padding: 0.75rem;
        --ignis-default-popover-actions-padding: 0.625rem 0.75rem;
        --ignis-default-validation-summary-padding: 0.75rem;
    }
}

@media (pointer: coarse) {
    :root { --ignis-default-input-height: 2.75rem; }
}

/* Component sizing must not depend on a reset stylesheet in the host application. */
.ignis__document {
    margin: 0;
}

:where([class^="ignis__"], [class*=" ignis__"]) {
    box-sizing: border-box;
}

.ignis__form {
    box-sizing: border-box;
    color: var(--ignis-color-form-text, var(--ignis-color-text, #1e293b));
    font-family: var(--ignis-font-family, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

/* Workflow nodes reuse IgnisCard directly, so these rules must cross component CSS scopes. */
.ignis__workflow-palette .ignis__button[data-workflow-node-type] { justify-content: flex-start; text-align: start; white-space: normal; block-size: auto; }
.ignis__card.ignis__workflow-node[data-workflow-node] { block-size: 100%; box-sizing: border-box; border-color: var(--ignis-color-primary, #d94d20); background: var(--ignis-color-background, #fff); }
.ignis__card.ignis__workflow-node-selected[data-workflow-node] { box-shadow: inset 0 0 0 2px var(--ignis-color-primary, #d94d20); }
.ignis__card.ignis__workflow-node[data-workflow-node] .ignis__card__header { background: var(--ignis-color-primary-soft, #fff3ed); }
.ignis__card.ignis__workflow-node[data-workflow-node] .ignis__card__title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Inside Diagram, its SVG shape owns the single node frame and keyboard focus. */
.ignis__diagram__node-content .ignis__card.ignis__workflow-node[data-workflow-node] { border: 0; border-radius: 4px; box-shadow: none; outline: 0; }
.ignis__diagram__node:has(.ignis__workflow-node-selected[data-workflow-node]) > .ignis__diagram__shape { stroke-width: 4; }
@media (forced-colors: active) {
    .ignis__card.ignis__workflow-node[data-workflow-node] { border-color: CanvasText; }
    .ignis__card.ignis__workflow-node-selected[data-workflow-node] { outline: 2px solid Highlight; outline-offset: -3px; box-shadow: none; }
    .ignis__diagram__node:has(.ignis__workflow-node-selected[data-workflow-node]) > .ignis__diagram__shape { stroke: Highlight; }
}
