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

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

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

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

:root {
    --sh-bg-deep: #061225;
    --sh-bg-navy: #0b1f3a;
    --sh-bg-panel: #102b4a;
    --sh-bg-panel-soft: rgba(255, 255, 255, .06);
    --sh-primary: #1d7cff;
    --sh-primary-2: #22d3ee;
    --sh-accent: #14b8a6;
    --sh-success: #22c55e;
    --sh-warning: #f59e0b;
    --sh-danger: #ef4444;
    --sh-purple: #8b5cf6;
    --sh-text: #0f172a;
    --sh-text-muted: #64748b;
    --sh-text-on-dark: #f8fafc;
    --sh-text-muted-on-dark: #b6c6d9;
    --sh-card: #ffffff;
    --sh-border: rgba(148, 163, 184, .28);
    --sh-shadow-soft: 0 20px 60px rgba(2, 8, 23, .18);
    --sh-shadow-glow: 0 0 60px rgba(34, 211, 238, .18);
    --sh-radius-lg: 24px;
    --sh-radius-md: 16px;
    --sh-radius-sm: 10px;
    --sh-container-max: 1440px;
    color: #1d2a35;
    font-size: 16px;
    font-synthesis: none;
}

* {
    box-sizing: border-box;
}

img,
svg,
video,
canvas {
    height: auto;
    max-width: 100%;
}

html,
body {
    direction: rtl;
    font-family: 'Vazirmatn', Tahoma, Arial, sans-serif;
    line-height: 1.7;
    margin: 0;
    min-height: 100%;
}

body {
    background: #f5f7f9;
}

button,
input,
textarea,
select,
table {
    font: inherit;
}

button,
input,
textarea,
select {
    max-width: 100%;
}

textarea {
    resize: vertical;
}

button {
    border-radius: 4px;
    cursor: pointer;
}

table {
    border-collapse: collapse;
}

th,
td {
    line-height: 1.6;
}

a {
    color: #246b83;
}

:where(a, button, input, textarea, select):focus-visible {
    outline: 3px solid rgba(34, 211, 238, .55);
    outline-offset: 2px;
}

@media (pointer: coarse) {
    button,
    select,
    input:not([type="checkbox"]):not([type="radio"]) {
        min-height: 44px;
    }
}

.sh-page-shell {
    min-height: 100vh;
    padding: clamp(1.5rem, 4vw, 3.5rem);
}

.sh-centered-container {
    margin-inline: auto;
    max-width: var(--sh-container-max);
    width: 100%;
}

.sh-glass-panel {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: var(--sh-shadow-glow);
}

.sh-card {
    background: var(--sh-card);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    box-shadow: var(--sh-shadow-soft);
}

.sh-primary-button,
.sh-secondary-button {
    align-items: center;
    border-radius: var(--sh-radius-sm);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 2.75rem;
    padding: .7rem 1rem;
    text-decoration: none;
}

.sh-primary-button {
    background: linear-gradient(135deg, var(--sh-primary), var(--sh-primary-2));
    border: 0;
    box-shadow: 0 14px 28px rgba(29, 124, 255, .24);
    color: #fff;
}

.sh-secondary-button {
    background: #fff;
    border: 1px solid var(--sh-border);
    color: var(--sh-text);
}

.sh-field {
    background: #fff;
    border: 1px solid rgba(148, 163, 184, .5);
    border-radius: var(--sh-radius-sm);
    color: var(--sh-text);
    min-height: 2.75rem;
    padding: .75rem .9rem;
}

.sh-badge {
    align-items: center;
    border: 1px solid rgba(34, 211, 238, .25);
    border-radius: 999px;
    display: inline-flex;
    font-size: .85rem;
    font-weight: 700;
    padding: .35rem .7rem;
}

h1:focus {
    outline: none;
}

.empty-state {
    padding: 4rem 1rem;
    text-align: center;
}

.empty-state h1 {
    margin-bottom: .5rem;
}

.empty-state p {
    color: #5a6876;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #287d75;
}

.invalid {
    outline: 1px solid #a52a2a;
}

.validation-message {
    color: #a52a2a;
}

.blazor-error-boundary {
    background: #a52a2a;
    color: #fff;
    padding: 1rem;
}

.blazor-error-boundary::after {
    content: "خطایی رخ داده است.";
}
