@font-face {
    font-family: "Vazirmatn-FD";
    src: url("../fonts/vazirmatn/Vazirmatn-FD-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn-FD";
    src: url("../fonts/vazirmatn/Vazirmatn-FD-Medium.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn-FD";
    src: url("../fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn-FD";
    src: url("../fonts/vazirmatn/Vazirmatn-FD-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn-FD";
    src: url("../fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 800;
    font-display: swap;
}

:root {
    --v3-font-family: "Vazirmatn-FD", Tahoma, Arial, sans-serif;

    --v3-font-weight-regular: 400;
    --v3-font-weight-medium: 500;
    --v3-font-weight-semibold: 600;
    --v3-font-weight-bold: 700;
    --v3-font-weight-extrabold: 800;

    /*
     * Transitional compatibility alias.
     * Existing components continue to resolve while their selectors
     * are migrated domain-by-domain to the canonical V3 contract.
     */
    --av3-font: var(--v3-font-family);
}

html[data-av3][data-av3-theme="dark"] {
    color-scheme: dark;

    --av3-bg: #0e1116;
    --av3-bg-raised: #131820;
    --av3-surface: #171c24;
    --av3-surface-hover: #1c232d;
    --av3-surface-active: #222b37;
    --av3-overlay: rgba(5, 8, 12, .76);

    --av3-border: #29323e;
    --av3-border-strong: #3a4655;

    --av3-text: #e8edf4;
    --av3-text-secondary: #aeb8c7;
    --av3-text-muted: #778397;
    --av3-text-inverse: #081018;

    --av3-primary: #3b82f6;
    --av3-primary-hover: #60a5fa;
    --av3-primary-soft: rgba(59, 130, 246, .14);
    --av3-primary-border: rgba(96, 165, 250, .34);

    --av3-success: #34d399;
    --av3-success-soft: rgba(52, 211, 153, .13);
    --av3-warning: #fbbf24;
    --av3-warning-soft: rgba(251, 191, 36, .13);
    --av3-danger: #fb7185;
    --av3-danger-soft: rgba(251, 113, 133, .13);
    --av3-info: #38bdf8;
    --av3-info-soft: rgba(56, 189, 248, .13);

    --av3-chart-1: #3b82f6;
    --av3-chart-2: #34d399;
    --av3-chart-3: #fbbf24;
    --av3-chart-4: #a78bfa;
    --av3-chart-grid: #27313d;

    --av3-shadow-sm: 0 4px 14px rgba(0, 0, 0, .16);
    --av3-shadow-md: 0 14px 34px rgba(0, 0, 0, .24);
    --av3-shadow-lg: 0 24px 64px rgba(0, 0, 0, .34);
}

html[data-av3][data-av3-theme="light"] {
    color-scheme: light;

    --av3-bg: #f3f5f8;
    --av3-bg-raised: #f8fafc;
    --av3-surface: #ffffff;
    --av3-surface-hover: #f5f7fa;
    --av3-surface-active: #edf1f5;
    --av3-overlay: rgba(15, 23, 42, .48);

    --av3-border: #dce2ea;
    --av3-border-strong: #c4ceda;

    --av3-text: #17202c;
    --av3-text-secondary: #4d5a6b;
    --av3-text-muted: #778397;
    --av3-text-inverse: #ffffff;

    --av3-primary: #2563eb;
    --av3-primary-hover: #1d4ed8;
    --av3-primary-soft: rgba(37, 99, 235, .10);
    --av3-primary-border: rgba(37, 99, 235, .26);

    --av3-success: #059669;
    --av3-success-soft: rgba(5, 150, 105, .10);
    --av3-warning: #d97706;
    --av3-warning-soft: rgba(217, 119, 6, .10);
    --av3-danger: #e11d48;
    --av3-danger-soft: rgba(225, 29, 72, .10);
    --av3-info: #0284c7;
    --av3-info-soft: rgba(2, 132, 199, .10);

    --av3-chart-1: #2563eb;
    --av3-chart-2: #059669;
    --av3-chart-3: #d97706;
    --av3-chart-4: #7c3aed;
    --av3-chart-grid: #e2e8f0;

    --av3-shadow-sm: 0 4px 14px rgba(15, 23, 42, .06);
    --av3-shadow-md: 0 14px 34px rgba(15, 23, 42, .09);
    --av3-shadow-lg: 0 24px 64px rgba(15, 23, 42, .14);
}

html[data-av3] {
    --av3-font: var(--v3-font-family);

    --av3-size-10: 10px;
    --av3-size-11: 11px;
    --av3-size-12: 12px;
    --av3-size-13: 13px;
    --av3-size-14: 14px;
    --av3-size-16: 16px;
    --av3-size-18: 18px;
    --av3-size-20: 20px;
    --av3-size-24: 24px;
    --av3-size-28: 28px;

    --av3-space-1: 4px;
    --av3-space-2: 8px;
    --av3-space-3: 12px;
    --av3-space-4: 16px;
    --av3-space-5: 20px;
    --av3-space-6: 24px;
    --av3-space-8: 32px;

    --av3-radius-sm: 7px;
    --av3-radius-md: 10px;
    --av3-radius-lg: 14px;
    --av3-radius-xl: 18px;
    --av3-radius-pill: 999px;

    --av3-header-height: 64px;
    --av3-sidebar-width: 248px;
    --av3-content-max: 1600px;

    --av3-fast: 140ms;
    --av3-normal: 200ms;

    --av3-z-header: 900;
    --av3-z-sidebar: 950;
    --av3-z-overlay: 1000;
    --av3-z-dropdown: 1100;
    --av3-z-modal: 1200;
}

/* ==========================================================
 * V3_CORE_SEMANTIC_AUTHORITY_R1_BEGIN
 *
 * Accounting V2 Design System V3
 * Canonical semantic UI authority.
 *
 * data-av3-theme remains the runtime theme authority.
 * Existing --av3-* primitives remain compatibility inputs
 * during domain-by-domain migration.
 * ========================================================== */

html[data-av3] {
    /* Canvas / surfaces */
    --v3-color-canvas: var(--av3-bg);
    --v3-color-surface: var(--av3-surface);
    --v3-color-surface-raised: var(--av3-bg-raised);
    --v3-color-surface-hover: var(--av3-surface-hover);
    --v3-color-surface-active: var(--av3-surface-active);

    /* Borders */
    --v3-color-border: var(--av3-border);
    --v3-color-border-strong: var(--av3-border-strong);

    /* Typography */
    --v3-color-text: var(--av3-text);
    --v3-color-text-secondary: var(--av3-text-secondary);
    --v3-color-text-muted: var(--av3-text-muted);
    --v3-color-text-inverse: var(--av3-text-inverse);

    /* Primary action */
    --v3-color-primary: var(--av3-primary);
    --v3-color-primary-hover: var(--av3-primary-hover);
    --v3-color-primary-soft: var(--av3-primary-soft);
    --v3-color-primary-border: var(--av3-primary-border);

    /* Semantic states */
    --v3-color-success: var(--av3-success);
    --v3-color-success-soft: var(--av3-success-soft);

    --v3-color-warning: var(--av3-warning);
    --v3-color-warning-soft: var(--av3-warning-soft);

    --v3-color-danger: var(--av3-danger);
    --v3-color-danger-soft: var(--av3-danger-soft);

    --v3-color-info: var(--av3-info);
    --v3-color-info-soft: var(--av3-info-soft);

    /* Spacing */
    --v3-space-1: var(--av3-space-1);
    --v3-space-2: var(--av3-space-2);
    --v3-space-3: var(--av3-space-3);
    --v3-space-4: var(--av3-space-4);
    --v3-space-5: var(--av3-space-5);
    --v3-space-6: var(--av3-space-6);
    --v3-space-8: var(--av3-space-8);

    /* Radius */
    --v3-radius-sm: var(--av3-radius-sm);
    --v3-radius-md: var(--av3-radius-md);
    --v3-radius-lg: var(--av3-radius-lg);
    --v3-radius-xl: var(--av3-radius-xl);
    --v3-radius-pill: var(--av3-radius-pill);
    --v3-radius-circle: 50%;

    /* Shadows */
    --v3-shadow-sm: var(--av3-shadow-sm);
    --v3-shadow-md: var(--av3-shadow-md);
    --v3-shadow-lg: var(--av3-shadow-lg);

    /* Motion */
    --v3-motion-fast: var(--av3-fast);
    --v3-motion-normal: var(--av3-normal);

    /*
     * Control heights derive only from the canonical spacing scale.
     * 32 / 40 / 48 with the current V3 scale.
     */
    --v3-control-height-sm: var(--v3-space-8);
    --v3-control-height-md:
        calc(var(--v3-space-8) + var(--v3-space-2));
    --v3-control-height-lg:
        calc(var(--v3-space-8) + var(--v3-space-4));

    /* Icon sizes */
    --v3-icon-sm: var(--av3-size-16);
    --v3-icon-md: var(--av3-size-20);
    --v3-icon-lg: var(--av3-size-24);
}


/*
 * R2 component-level semantic primitives.
 * Raw values live only in token authority.
 */
html[data-av3] {
    --v3-font-size-xs: var(--av3-size-12);
    --v3-font-size-sm: var(--av3-size-13);
    --v3-font-size-md: var(--av3-size-14);
    --v3-font-size-lg: var(--av3-size-16);

    --v3-color-overlay: var(--av3-overlay);

    --v3-border-width: 1px;

    --v3-focus-ring-width: 2px;
    --v3-focus-ring-offset: 2px;
    --v3-focus-ring-spread: 3px;

    --v3-opacity-disabled: 0.55;
    --v3-opacity-control-disabled: 0.65;

    --v3-status-height: 24px;
    --v3-icon-stroke-width: 1.8;
    --v3-dialog-max-width: 680px;
}

/* V3_CORE_SEMANTIC_AUTHORITY_R1_END */
