/* =========================================================
   Market UI v2 - Forms Component Contract
   Path: public/assets/marketv2/components/forms/variables.css

   Rules:
   - metrics only
   - context -> identity bridge only
   - identity -> contract mapping only
   - legacy aliases remain for compatibility
   - no raw palette logic
========================================================= */

:root {
    /* =====================================================
       1) METRICS
    ===================================================== */

    --m-form-border-width: var(--m-theme-border-width, 1px);
    --m-form-focus-ring-width: 3px;

    --m-form-height-sm: calc(var(--m-theme-form-control-height, 42px) - 8px);
    --m-form-height-md: var(--m-theme-form-control-height, 42px);
    --m-form-height-lg: calc(var(--m-theme-form-control-height, 42px) + 6px);

    --m-form-radius-sm: var(--m-theme-radius-sm, 6px);
    --m-form-radius-md: var(--m-theme-form-radius, var(--m-theme-radius-md, 8px));
    --m-form-radius-lg: var(--m-theme-radius-lg, 8px);

    --m-form-padding-inline-sm: 12px;
    --m-form-padding-inline-md: 15px;
    --m-form-padding-inline-lg: 18px;

    --m-form-font-size-sm: 13px;
    --m-form-font-size-md: 14px;
    --m-form-font-size-lg: 15px;

    --m-form-control-font-weight: 500;

    --m-form-label-font-size: 13px;
    --m-form-label-font-weight: 700;
    --m-form-label-line-height: 1.5;

    --m-form-help-font-size: 12px;
    --m-form-help-line-height: 1.65;

    --m-form-field-gap: 9px;
    --m-form-inline-gap: 16px;
    --m-form-inline-gap-mobile: 12px;

    --m-form-textarea-min-height: 118px;
    --m-form-textarea-padding-block: 12px;

    --m-form-icon-size: 16px;
    --m-form-icon-inset-inline: 14px;
    --m-form-icon-padding-offset: 24px;

    --m-form-clear-size: 22px;
    --m-form-clear-icon-size: 12px;
    --m-form-clear-inset-inline: 10px;
    --m-form-clear-padding-offset: 34px;

    --m-form-select-padding-inline-end: 42px;

    --m-form-transition-fast: 120ms ease;
    --m-form-transition-base: 180ms ease;

    --m-form-loading-opacity: 0.7;

    /* =====================================================
       2) CONTEXT -> IDENTITY BRIDGE
    ===================================================== */

    --m-form-identity-surface: var(--m-context-surface);
    --m-form-identity-surface-soft: var(--m-context-surface-soft, var(--m-form-identity-surface));
    --m-form-identity-surface-muted: var(--m-context-surface-muted, var(--m-form-identity-surface-soft));
    --m-form-identity-surface-raised: var(--m-context-surface-raised, var(--m-form-identity-surface));
    --m-form-identity-surface-elevated: var(--m-context-surface-elevated, var(--m-form-identity-surface-raised));

    --m-form-identity-border: var(--m-context-border);
    --m-form-identity-border-subtle: var(--m-context-border-subtle, var(--m-form-identity-border));
    --m-form-identity-border-soft: var(--m-context-border-soft, var(--m-form-identity-border-subtle));
    --m-form-identity-border-strong: var(--m-context-border-strong, var(--m-form-identity-border));
    --m-form-identity-border-active: var(--m-context-border-active, var(--m-form-identity-border-strong));
    --m-form-identity-focus-ring: var(--m-context-focus-ring, var(--m-context-state-focus, var(--m-form-identity-border-active)));

    --m-form-identity-text: var(--m-context-text);
    --m-form-identity-text-strong: var(--m-context-text-strong, var(--m-form-identity-text));
    --m-form-identity-text-soft: var(--m-context-text-soft, var(--m-form-identity-text));
    --m-form-identity-text-muted: var(--m-context-text-muted, var(--m-form-identity-text-soft));
    --m-form-identity-text-faint: var(--m-context-text-faint, var(--m-form-identity-text-muted));
    --m-form-identity-text-inverse: var(--m-context-text-inverse, var(--m-form-identity-text));

    --m-form-identity-accent: var(--m-context-accent-color, var(--m-context-accent, var(--m-form-identity-text-strong)));
    --m-form-identity-accent-hover: var(--m-context-accent-color-hover, var(--m-context-accent-hover, var(--m-form-identity-accent)));
    --m-form-identity-accent-active: var(--m-context-accent-color-active, var(--m-context-accent-active, var(--m-form-identity-accent-hover)));
    --m-form-identity-accent-soft: var(--m-context-accent-soft, var(--m-form-identity-surface-soft));
    --m-form-identity-accent-soft-strong: var(--m-context-accent-soft-strong, var(--m-form-identity-accent-soft));
    --m-form-identity-accent-text-inverse: var(--m-context-accent-text-inverse, var(--m-form-identity-text-inverse));

    --m-form-identity-state-hover-bg: var(--m-context-state-hover-bg, var(--m-context-state-hover, var(--m-form-identity-surface-soft)));
    --m-form-identity-state-hover-accent: var(--m-context-state-hover-accent, var(--m-form-identity-accent));
    --m-form-identity-state-hover-border: var(--m-context-state-hover-border, var(--m-form-identity-border-strong));

    --m-form-identity-state-active-bg: var(--m-context-state-active-bg, var(--m-context-state-active, var(--m-form-identity-surface-soft)));
    --m-form-identity-state-active-accent: var(--m-context-state-active-accent, var(--m-form-identity-accent-active));
    --m-form-identity-state-active-border: var(--m-context-state-active-border, var(--m-form-identity-border-active));

    --m-form-identity-state-selected-bg: var(--m-context-state-selected-bg, var(--m-context-state-selected, var(--m-form-identity-state-active-bg)));
    --m-form-identity-state-selected-accent: var(--m-context-state-selected-accent, var(--m-form-identity-accent));
    --m-form-identity-state-selected-border: var(--m-context-state-selected-border, var(--m-form-identity-border-active));

    --m-form-identity-disabled: var(--m-context-state-disabled, var(--m-form-identity-surface-muted));

    --m-form-identity-shadow: var(--m-context-shadow, var(--m-context-shadow-sm, none));
    --m-form-identity-shadow-hover: var(--m-context-shadow-hover, var(--m-context-shadow-md, var(--m-form-identity-shadow)));
    --m-form-identity-shadow-active: var(--m-context-shadow-active, var(--m-form-identity-shadow-hover));
    --m-form-identity-shadow-panel: var(--m-context-shadow-panel, var(--m-form-identity-shadow-hover));
    --m-form-identity-shadow-modal: var(--m-context-shadow-modal, var(--m-form-identity-shadow-active));

    /* =====================================================
       3) SEMANTIC SLOT BRIDGE
       danger = c4
       success = c5
       info = c2
       warning = c3
    ===================================================== */

    --m-form-sem-danger-surface: var(--m-slot-c4-surface, var(--m-form-identity-surface));
    --m-form-sem-danger-surface-soft: var(--m-slot-c4-surface-soft, var(--m-form-identity-accent-soft));
    --m-form-sem-danger-border: var(--m-slot-c4-border, var(--m-form-identity-border));
    --m-form-sem-danger-border-strong: var(--m-slot-c4-border-strong, var(--m-form-identity-border-strong));
    --m-form-sem-danger-text: var(--m-slot-c4-text, var(--m-form-identity-text));
    --m-form-sem-danger-text-inverse: var(--m-slot-c4-text-inverse, var(--m-form-identity-text-inverse));
    --m-form-sem-danger-accent: var(--m-slot-c4-accent-color, var(--m-slot-c4-accent, var(--m-form-identity-accent)));
    --m-form-sem-danger-focus: var(--m-form-sem-danger-accent);

    --m-form-sem-success-surface: var(--m-slot-c5-surface, var(--m-form-identity-surface));
    --m-form-sem-success-surface-soft: var(--m-slot-c5-surface-soft, var(--m-form-identity-accent-soft));
    --m-form-sem-success-border: var(--m-slot-c5-border, var(--m-form-identity-border));
    --m-form-sem-success-border-strong: var(--m-slot-c5-border-strong, var(--m-form-identity-border-strong));
    --m-form-sem-success-text: var(--m-slot-c5-text, var(--m-form-identity-text));
    --m-form-sem-success-text-inverse: var(--m-slot-c5-text-inverse, var(--m-form-identity-text-inverse));
    --m-form-sem-success-accent: var(--m-slot-c5-accent-color, var(--m-slot-c5-accent, var(--m-form-identity-accent)));
    --m-form-sem-success-focus: var(--m-form-sem-success-accent);

    --m-form-sem-warning-surface: var(--m-slot-c3-surface, var(--m-form-identity-surface));
    --m-form-sem-warning-border: var(--m-slot-c3-border, var(--m-form-identity-border));
    --m-form-sem-warning-text: var(--m-slot-c3-text, var(--m-form-identity-text));
    --m-form-sem-warning-accent: var(--m-slot-c3-accent-color, var(--m-slot-c3-accent, var(--m-form-identity-accent)));

    --m-form-sem-info-surface: var(--m-slot-c2-surface, var(--m-form-identity-surface));
    --m-form-sem-info-border: var(--m-slot-c2-border, var(--m-form-identity-border));
    --m-form-sem-info-text: var(--m-slot-c2-text, var(--m-form-identity-text));
    --m-form-sem-info-accent: var(--m-slot-c2-accent-color, var(--m-slot-c2-accent, var(--m-form-identity-accent)));

    /* =====================================================
       4) CONTRACT - FIELD
    ===================================================== */

    --m-form-bg: var(--m-theme-form-bg, var(--m-form-identity-surface));
    --m-form-text: var(--m-theme-form-control-text, var(--m-form-identity-text));
    --m-form-border: var(--m-theme-form-border, var(--m-form-identity-border));

    --m-form-hover-bg: var(--m-form-identity-state-hover-bg);
    --m-form-hover-text: var(--m-form-identity-text);
    --m-form-hover-border: var(--m-form-identity-state-hover-border);

    --m-form-active-bg: var(--m-form-identity-state-active-bg);
    --m-form-active-text: var(--m-form-identity-text);
    --m-form-active-border: var(--m-form-identity-state-active-border);

    --m-form-selected-bg: var(--m-form-identity-state-selected-bg);
    --m-form-selected-text: var(--m-form-identity-text);
    --m-form-selected-border: var(--m-form-identity-state-selected-border);

    --m-form-disabled-bg: var(--m-form-identity-disabled);
    --m-form-disabled-text: var(--m-form-identity-text-faint);
    --m-form-disabled-border: var(--m-form-identity-border-subtle);

    --m-form-readonly-bg: var(--m-form-identity-surface-muted);
    --m-form-readonly-text: var(--m-form-identity-text);
    --m-form-readonly-border: var(--m-form-identity-border-subtle);

    --m-form-focus-border: var(--m-theme-form-focus-border, var(--m-form-identity-accent));
    --m-form-focus-ring: var(--m-form-identity-focus-ring);

    --m-form-placeholder: var(--m-theme-form-placeholder-text, var(--m-form-identity-text-faint));
    --m-form-label: var(--m-theme-form-label-text, var(--m-form-identity-text-soft));
    --m-form-hint: var(--m-form-identity-text-muted);
    --m-form-icon: var(--m-form-identity-text-faint);

    --m-form-accent: var(--m-form-identity-accent);

    /* =====================================================
       5) CONTRACT - INVALID / ERROR / SUCCESS
    ===================================================== */

    --m-form-invalid-bg: var(--m-form-sem-danger-surface-soft);
    --m-form-invalid-text: var(--m-form-sem-danger-text);
    --m-form-invalid-border: var(--m-form-sem-danger-border);
    --m-form-invalid-focus-border: var(--m-form-sem-danger-focus);
    --m-form-invalid-focus-ring: var(--m-form-focus-ring);

    --m-form-error-bg: var(--m-form-invalid-bg);
    --m-form-error-text: var(--m-form-invalid-text);
    --m-form-error-border: var(--m-form-invalid-border);

    --m-form-success-bg: var(--m-form-sem-success-surface-soft);
    --m-form-success-text: var(--m-form-sem-success-text);
    --m-form-success-border: var(--m-form-sem-success-border);
    --m-form-success-focus-border: var(--m-form-sem-success-focus);
    --m-form-success-focus-ring: var(--m-form-focus-ring);

    /* =====================================================
       6) CONTRACT - GROUPS / ADDONS / CLEAR
    ===================================================== */

    --m-form-addon-bg: var(--m-form-identity-surface-soft);
    --m-form-addon-text: var(--m-form-identity-text-soft);
    --m-form-addon-border: var(--m-form-identity-border);

    --m-form-addon-invalid-bg: var(--m-form-addon-bg);
    --m-form-addon-invalid-text: var(--m-form-invalid-text);
    --m-form-addon-invalid-border: var(--m-form-invalid-border);

    --m-form-addon-success-bg: var(--m-form-addon-bg);
    --m-form-addon-success-text: var(--m-form-success-text);
    --m-form-addon-success-border: var(--m-form-success-border);

    --m-form-clear-bg: transparent;
    --m-form-clear-text: var(--m-form-identity-text-faint);
    --m-form-clear-hover-bg: var(--m-form-identity-state-hover-bg);
    --m-form-clear-hover-text: var(--m-form-identity-text-soft);
    --m-form-clear-hover-border: var(--m-form-identity-border-subtle);
    --m-form-clear-focus-border: var(--m-form-identity-accent);
    --m-form-clear-focus-ring: var(--m-form-identity-focus-ring);

    /* =====================================================
       7) LEGACY SWITCH TOKENS
       choices.css owns the component, but these stay available
       for compatibility with older consumers.
    ===================================================== */

    --m-form-switch-track-bg: var(--m-form-identity-border);
    --m-form-switch-track-border: var(--m-form-identity-border);
    --m-form-switch-thumb-bg: var(--m-form-identity-surface-raised);
    --m-form-switch-thumb-shadow: var(--m-form-identity-shadow);
    --m-form-switch-checked-bg: var(--m-form-identity-accent);
    --m-form-switch-checked-border: var(--m-form-identity-accent);

    /* =====================================================
       8) SLOT CONTRACT c1 -> c10
    ===================================================== */

    --m-form-slot-c1-bg: var(--m-slot-c1-surface, var(--m-form-bg));
    --m-form-slot-c1-text: var(--m-slot-c1-text, var(--m-form-text));
    --m-form-slot-c1-border: var(--m-slot-c1-border, var(--m-form-border));
    --m-form-slot-c1-hover-bg: var(--m-slot-c1-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c1-hover-text: var(--m-slot-c1-text, var(--m-form-hover-text));
    --m-form-slot-c1-hover-border: var(--m-slot-c1-border-strong, var(--m-form-hover-border));
    --m-form-slot-c1-disabled-bg: var(--m-slot-c1-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c1-disabled-text: var(--m-slot-c1-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c1-disabled-border: var(--m-slot-c1-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c2-bg: var(--m-slot-c2-surface, var(--m-form-bg));
    --m-form-slot-c2-text: var(--m-slot-c2-text, var(--m-form-text));
    --m-form-slot-c2-border: var(--m-slot-c2-border, var(--m-form-border));
    --m-form-slot-c2-hover-bg: var(--m-slot-c2-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c2-hover-text: var(--m-slot-c2-text, var(--m-form-hover-text));
    --m-form-slot-c2-hover-border: var(--m-slot-c2-border-strong, var(--m-form-hover-border));
    --m-form-slot-c2-disabled-bg: var(--m-slot-c2-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c2-disabled-text: var(--m-slot-c2-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c2-disabled-border: var(--m-slot-c2-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c3-bg: var(--m-slot-c3-surface, var(--m-form-bg));
    --m-form-slot-c3-text: var(--m-slot-c3-text, var(--m-form-text));
    --m-form-slot-c3-border: var(--m-slot-c3-border, var(--m-form-border));
    --m-form-slot-c3-hover-bg: var(--m-slot-c3-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c3-hover-text: var(--m-slot-c3-text, var(--m-form-hover-text));
    --m-form-slot-c3-hover-border: var(--m-slot-c3-border-strong, var(--m-form-hover-border));
    --m-form-slot-c3-disabled-bg: var(--m-slot-c3-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c3-disabled-text: var(--m-slot-c3-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c3-disabled-border: var(--m-slot-c3-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c4-bg: var(--m-slot-c4-surface, var(--m-form-bg));
    --m-form-slot-c4-text: var(--m-slot-c4-text, var(--m-form-text));
    --m-form-slot-c4-border: var(--m-slot-c4-border, var(--m-form-border));
    --m-form-slot-c4-hover-bg: var(--m-slot-c4-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c4-hover-text: var(--m-slot-c4-text, var(--m-form-hover-text));
    --m-form-slot-c4-hover-border: var(--m-slot-c4-border-strong, var(--m-form-hover-border));
    --m-form-slot-c4-disabled-bg: var(--m-slot-c4-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c4-disabled-text: var(--m-slot-c4-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c4-disabled-border: var(--m-slot-c4-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c5-bg: var(--m-slot-c5-surface, var(--m-form-bg));
    --m-form-slot-c5-text: var(--m-slot-c5-text, var(--m-form-text));
    --m-form-slot-c5-border: var(--m-slot-c5-border, var(--m-form-border));
    --m-form-slot-c5-hover-bg: var(--m-slot-c5-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c5-hover-text: var(--m-slot-c5-text, var(--m-form-hover-text));
    --m-form-slot-c5-hover-border: var(--m-slot-c5-border-strong, var(--m-form-hover-border));
    --m-form-slot-c5-disabled-bg: var(--m-slot-c5-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c5-disabled-text: var(--m-slot-c5-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c5-disabled-border: var(--m-slot-c5-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c6-bg: var(--m-slot-c6-surface, var(--m-form-bg));
    --m-form-slot-c6-text: var(--m-slot-c6-text, var(--m-form-text));
    --m-form-slot-c6-border: var(--m-slot-c6-border, var(--m-form-border));
    --m-form-slot-c6-hover-bg: var(--m-slot-c6-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c6-hover-text: var(--m-slot-c6-text, var(--m-form-hover-text));
    --m-form-slot-c6-hover-border: var(--m-slot-c6-border-strong, var(--m-form-hover-border));
    --m-form-slot-c6-disabled-bg: var(--m-slot-c6-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c6-disabled-text: var(--m-slot-c6-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c6-disabled-border: var(--m-slot-c6-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c7-bg: var(--m-slot-c7-surface, var(--m-form-bg));
    --m-form-slot-c7-text: var(--m-slot-c7-text, var(--m-form-text));
    --m-form-slot-c7-border: var(--m-slot-c7-border, var(--m-form-border));
    --m-form-slot-c7-hover-bg: var(--m-slot-c7-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c7-hover-text: var(--m-slot-c7-text, var(--m-form-hover-text));
    --m-form-slot-c7-hover-border: var(--m-slot-c7-border-strong, var(--m-form-hover-border));
    --m-form-slot-c7-disabled-bg: var(--m-slot-c7-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c7-disabled-text: var(--m-slot-c7-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c7-disabled-border: var(--m-slot-c7-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c8-bg: var(--m-slot-c8-surface, var(--m-form-bg));
    --m-form-slot-c8-text: var(--m-slot-c8-text, var(--m-form-text));
    --m-form-slot-c8-border: var(--m-slot-c8-border, var(--m-form-border));
    --m-form-slot-c8-hover-bg: var(--m-slot-c8-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c8-hover-text: var(--m-slot-c8-text, var(--m-form-hover-text));
    --m-form-slot-c8-hover-border: var(--m-slot-c8-border-strong, var(--m-form-hover-border));
    --m-form-slot-c8-disabled-bg: var(--m-slot-c8-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c8-disabled-text: var(--m-slot-c8-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c8-disabled-border: var(--m-slot-c8-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c9-bg: var(--m-slot-c9-surface, var(--m-form-bg));
    --m-form-slot-c9-text: var(--m-slot-c9-text, var(--m-form-text));
    --m-form-slot-c9-border: var(--m-slot-c9-border, var(--m-form-border));
    --m-form-slot-c9-hover-bg: var(--m-slot-c9-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c9-hover-text: var(--m-slot-c9-text, var(--m-form-hover-text));
    --m-form-slot-c9-hover-border: var(--m-slot-c9-border-strong, var(--m-form-hover-border));
    --m-form-slot-c9-disabled-bg: var(--m-slot-c9-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c9-disabled-text: var(--m-slot-c9-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c9-disabled-border: var(--m-slot-c9-border-subtle, var(--m-form-disabled-border));

    --m-form-slot-c10-bg: var(--m-slot-c10-surface, var(--m-form-bg));
    --m-form-slot-c10-text: var(--m-slot-c10-text, var(--m-form-text));
    --m-form-slot-c10-border: var(--m-slot-c10-border, var(--m-form-border));
    --m-form-slot-c10-hover-bg: var(--m-slot-c10-surface-hover, var(--m-form-hover-bg));
    --m-form-slot-c10-hover-text: var(--m-slot-c10-text, var(--m-form-hover-text));
    --m-form-slot-c10-hover-border: var(--m-slot-c10-border-strong, var(--m-form-hover-border));
    --m-form-slot-c10-disabled-bg: var(--m-slot-c10-surface-muted, var(--m-form-disabled-bg));
    --m-form-slot-c10-disabled-text: var(--m-slot-c10-text-faint, var(--m-form-disabled-text));
    --m-form-slot-c10-disabled-border: var(--m-slot-c10-border-subtle, var(--m-form-disabled-border));

    /* =====================================================
       9) LEGACY METRIC ALIASES
    ===================================================== */

    --form_height_sm: var(--m-form-height-sm);
    --form_height_md: var(--m-form-height-md);
    --form_height_lg: var(--m-form-height-lg);

    --form_radius_sm: var(--m-form-radius-sm);
    --form_radius_md: var(--m-form-radius-md);
    --form_radius_lg: var(--m-form-radius-lg);

    --form_padding_x_sm: var(--m-form-padding-inline-sm);
    --form_padding_x_md: var(--m-form-padding-inline-md);
    --form_padding_x_lg: var(--m-form-padding-inline-lg);

    --form_font_size_sm: var(--m-form-font-size-sm);
    --form_font_size_md: var(--m-form-font-size-md);
    --form_font_size_lg: var(--m-form-font-size-lg);

    --form_icon_size: var(--m-form-icon-size);
    --form_clear_size: var(--m-form-clear-size);

    /* =====================================================
       10) LEGACY RENDER ALIASES
    ===================================================== */

    --form_default_bg: var(--m-form-bg);
    --form_default_text: var(--m-form-text);
    --form_default_border: var(--m-form-border);

    --form_default_hover_bg: var(--m-form-hover-bg);
    --form_default_hover_text: var(--m-form-hover-text);
    --form_default_hover_border: var(--m-form-hover-border);

    --form_default_active_bg: var(--m-form-active-bg);
    --form_default_active_text: var(--m-form-active-text);
    --form_default_active_border: var(--m-form-active-border);

    --form_default_selected_bg: var(--m-form-selected-bg);
    --form_default_selected_text: var(--m-form-selected-text);
    --form_default_selected_border: var(--m-form-selected-border);

    --form_default_disabled_bg: var(--m-form-disabled-bg);
    --form_default_disabled_text: var(--m-form-disabled-text);
    --form_default_disabled_border: var(--m-form-disabled-border);

    --form_default_focus_border: var(--m-form-focus-border);
    --form_default_focus_ring: var(--m-form-focus-ring);

    --form_default_placeholder: var(--m-form-placeholder);
    --form_default_label: var(--m-form-label);
    --form_default_hint: var(--m-form-hint);
    --form_default_icon: var(--m-form-icon);

    --form_default_invalid_bg: var(--m-form-invalid-bg);
    --form_default_invalid_text: var(--m-form-invalid-text);
    --form_default_invalid_border: var(--m-form-invalid-border);

    --form_default_error_bg: var(--m-form-error-bg);
    --form_default_error_text: var(--m-form-error-text);
    --form_default_error_border: var(--m-form-error-border);

    --form_default_success_bg: var(--m-form-success-bg);
    --form_default_success_text: var(--m-form-success-text);
    --form_default_success_border: var(--m-form-success-border);

    --form_c1_bg: var(--m-form-slot-c1-bg);
    --form_c1_text: var(--m-form-slot-c1-text);
    --form_c1_border: var(--m-form-slot-c1-border);
    --form_c1_hover_bg: var(--m-form-slot-c1-hover-bg);
    --form_c1_hover_text: var(--m-form-slot-c1-hover-text);
    --form_c1_hover_border: var(--m-form-slot-c1-hover-border);
    --form_c1_disabled_bg: var(--m-form-slot-c1-disabled-bg);
    --form_c1_disabled_text: var(--m-form-slot-c1-disabled-text);
    --form_c1_disabled_border: var(--m-form-slot-c1-disabled-border);

    --form_c2_bg: var(--m-form-slot-c2-bg);
    --form_c2_text: var(--m-form-slot-c2-text);
    --form_c2_border: var(--m-form-slot-c2-border);
    --form_c2_hover_bg: var(--m-form-slot-c2-hover-bg);
    --form_c2_hover_text: var(--m-form-slot-c2-hover-text);
    --form_c2_hover_border: var(--m-form-slot-c2-hover-border);
    --form_c2_disabled_bg: var(--m-form-slot-c2-disabled-bg);
    --form_c2_disabled_text: var(--m-form-slot-c2-disabled-text);
    --form_c2_disabled_border: var(--m-form-slot-c2-disabled-border);

    --form_c3_bg: var(--m-form-slot-c3-bg);
    --form_c3_text: var(--m-form-slot-c3-text);
    --form_c3_border: var(--m-form-slot-c3-border);
    --form_c3_hover_bg: var(--m-form-slot-c3-hover-bg);
    --form_c3_hover_text: var(--m-form-slot-c3-hover-text);
    --form_c3_hover_border: var(--m-form-slot-c3-hover-border);
    --form_c3_disabled_bg: var(--m-form-slot-c3-disabled-bg);
    --form_c3_disabled_text: var(--m-form-slot-c3-disabled-text);
    --form_c3_disabled_border: var(--m-form-slot-c3-disabled-border);

    --form_c4_bg: var(--m-form-slot-c4-bg);
    --form_c4_text: var(--m-form-slot-c4-text);
    --form_c4_border: var(--m-form-slot-c4-border);
    --form_c4_hover_bg: var(--m-form-slot-c4-hover-bg);
    --form_c4_hover_text: var(--m-form-slot-c4-hover-text);
    --form_c4_hover_border: var(--m-form-slot-c4-hover-border);
    --form_c4_disabled_bg: var(--m-form-slot-c4-disabled-bg);
    --form_c4_disabled_text: var(--m-form-slot-c4-disabled-text);
    --form_c4_disabled_border: var(--m-form-slot-c4-disabled-border);

    --form_c5_bg: var(--m-form-slot-c5-bg);
    --form_c5_text: var(--m-form-slot-c5-text);
    --form_c5_border: var(--m-form-slot-c5-border);
    --form_c5_hover_bg: var(--m-form-slot-c5-hover-bg);
    --form_c5_hover_text: var(--m-form-slot-c5-hover-text);
    --form_c5_hover_border: var(--m-form-slot-c5-hover-border);
    --form_c5_disabled_bg: var(--m-form-slot-c5-disabled-bg);
    --form_c5_disabled_text: var(--m-form-slot-c5-disabled-text);
    --form_c5_disabled_border: var(--m-form-slot-c5-disabled-border);

    --form_c6_bg: var(--m-form-slot-c6-bg);
    --form_c6_text: var(--m-form-slot-c6-text);
    --form_c6_border: var(--m-form-slot-c6-border);
    --form_c6_hover_bg: var(--m-form-slot-c6-hover-bg);
    --form_c6_hover_text: var(--m-form-slot-c6-hover-text);
    --form_c6_hover_border: var(--m-form-slot-c6-hover-border);
    --form_c6_disabled_bg: var(--m-form-slot-c6-disabled-bg);
    --form_c6_disabled_text: var(--m-form-slot-c6-disabled-text);
    --form_c6_disabled_border: var(--m-form-slot-c6-disabled-border);

    --form_c7_bg: var(--m-form-slot-c7-bg);
    --form_c7_text: var(--m-form-slot-c7-text);
    --form_c7_border: var(--m-form-slot-c7-border);
    --form_c7_hover_bg: var(--m-form-slot-c7-hover-bg);
    --form_c7_hover_text: var(--m-form-slot-c7-hover-text);
    --form_c7_hover_border: var(--m-form-slot-c7-hover-border);
    --form_c7_disabled_bg: var(--m-form-slot-c7-disabled-bg);
    --form_c7_disabled_text: var(--m-form-slot-c7-disabled-text);
    --form_c7_disabled_border: var(--m-form-slot-c7-disabled-border);

    --form_c8_bg: var(--m-form-slot-c8-bg);
    --form_c8_text: var(--m-form-slot-c8-text);
    --form_c8_border: var(--m-form-slot-c8-border);
    --form_c8_hover_bg: var(--m-form-slot-c8-hover-bg);
    --form_c8_hover_text: var(--m-form-slot-c8-hover-text);
    --form_c8_hover_border: var(--m-form-slot-c8-hover-border);
    --form_c8_disabled_bg: var(--m-form-slot-c8-disabled-bg);
    --form_c8_disabled_text: var(--m-form-slot-c8-disabled-text);
    --form_c8_disabled_border: var(--m-form-slot-c8-disabled-border);

    --form_c9_bg: var(--m-form-slot-c9-bg);
    --form_c9_text: var(--m-form-slot-c9-text);
    --form_c9_border: var(--m-form-slot-c9-border);
    --form_c9_hover_bg: var(--m-form-slot-c9-hover-bg);
    --form_c9_hover_text: var(--m-form-slot-c9-hover-text);
    --form_c9_hover_border: var(--m-form-slot-c9-hover-border);
    --form_c9_disabled_bg: var(--m-form-slot-c9-disabled-bg);
    --form_c9_disabled_text: var(--m-form-slot-c9-disabled-text);
    --form_c9_disabled_border: var(--m-form-slot-c9-disabled-border);

    --form_c10_bg: var(--m-form-slot-c10-bg);
    --form_c10_text: var(--m-form-slot-c10-text);
    --form_c10_border: var(--m-form-slot-c10-border);
    --form_c10_hover_bg: var(--m-form-slot-c10-hover-bg);
    --form_c10_hover_text: var(--m-form-slot-c10-hover-text);
    --form_c10_hover_border: var(--m-form-slot-c10-hover-border);
    --form_c10_disabled_bg: var(--m-form-slot-c10-disabled-bg);
    --form_c10_disabled_text: var(--m-form-slot-c10-disabled-text);
    --form_c10_disabled_border: var(--m-form-slot-c10-disabled-border);

    --form_switch_track_bg: var(--m-form-switch-track-bg);
    --form_switch_track_border: var(--m-form-switch-track-border);
    --form_switch_thumb_bg: var(--m-form-switch-thumb-bg);
    --form_switch_thumb_shadow: var(--m-form-switch-thumb-shadow);
    --form_switch_checked_bg: var(--m-form-switch-checked-bg);
    --form_switch_checked_border: var(--m-form-switch-checked-border);

    --form_addon_bg: var(--m-form-addon-bg);
    --form_addon_text: var(--m-form-addon-text);
    --form_addon_border: var(--m-form-addon-border);

    --form_clear_bg: var(--m-form-clear-bg);
    --form_clear_text: var(--m-form-clear-text);
    --form_clear_hover_bg: var(--m-form-clear-hover-bg);
    --form_clear_hover_text: var(--m-form-clear-hover-text);
    --form_clear_hover_border: var(--m-form-clear-hover-border);
    --form_clear_focus_border: var(--m-form-clear-focus-border);
    --form_clear_focus_ring: var(--m-form-clear-focus-ring);

    --form_surface: var(--m-form-bg);
    --form_surface_hover: var(--m-form-hover-bg);
    --form_surface_active: var(--m-form-active-bg);
    --form_surface_selected: var(--m-form-selected-bg);
    --form_surface_disabled: var(--m-form-disabled-bg);

    --form_text: var(--m-form-text);
    --form_text_muted: var(--m-form-hint);
    --form_text_disabled: var(--m-form-disabled-text);

    --form_border: var(--m-form-border);
    --form_border_hover: var(--m-form-hover-border);
    --form_border_active: var(--m-form-active-border);
    --form_border_selected: var(--m-form-selected-border);
    --form_border_focus: var(--m-form-focus-border);
    --form_border_disabled: var(--m-form-disabled-border);

    --form_label: var(--m-form-label);
    --form_placeholder: var(--m-form-placeholder);
    --form_icon: var(--m-form-icon);

    --form_invalid_bg: var(--m-form-invalid-bg);
    --form_invalid_text: var(--m-form-invalid-text);
    --form_invalid_border: var(--m-form-invalid-border);

    --form_error_bg: var(--m-form-error-bg);
    --form_error_text: var(--m-form-error-text);
    --form_error_border: var(--m-form-error-border);

    --form_success_bg: var(--m-form-success-bg);
    --form_success_text: var(--m-form-success-text);
    --form_success_border: var(--m-form-success-border);

    --form_loading_opacity: var(--m-form-loading-opacity);
}

@media (max-width: 991px) {
    :root {
        --m-form-height-md: var(--m-theme-form-control-height-tablet, var(--m-theme-form-control-height, 40px));
    }
}

@media (max-width: 767px) {
    :root {
        --m-form-height-md: var(--m-theme-form-control-height-mobile, var(--m-theme-form-control-height, 38px));
    }
}
