﻿:root {
    --white: #fff;
    --black: #000;
    --dark: #1f2937;
    --text: #1f2937;
    --muted: #6b7280;

    --gray: #FAFAFA;
    --primary: #7C5CFC;
    --secondary: #64748b;
    --success: #26A69A;
    --danger: #ef4444;
    --warning: #f59e0b;
    --info: #1E88E5;
    --yellow: #eab308;

    --gray-lighter: #F6F6F6;
    --gray-light: #f5f5f5;
    --gray-normal: #EEEEEE;
    --gray-dark: #E0E0E0;
    --gray-darker: #BDBDBD;

    --primary-lighter: #E8EAF6;
    --primary-light: #C5CAE9;
    --primary-normal: #9FA8DA;
    --primary-dark: #5C6BC0;
    --primary-darker: #303F9F;

    --danger-lighter: #FFEBEE;
    --danger-light: #FFCDD2;
    --danger-normal: #EF9A9A;
    --danger-dark: #F44336;
    --danger-darker: #D32F2F;

    --success-lighter: #E0F2F1;
    --success-light: #B2DFDB;
    --success-normal: #80CBC4;
    --success-dark: #009688;
    --success-darker: #00796B;

    --info-lighter: #E3F2FD;
    --info-light: #BBDEFB;
    --info-normal: #90CAF9;
    --info-dark: #1E88E5;
    --info-darker: #1565C0;


    --warning-lighter: #FFF8E1;
    --warning-light: #FFECB3;
    --warning-normal: #FFE082;
    --warning-dark: #FFC107;
    --warning-darker: #FFA000;

    --secondary-lighter: #ECEFF1;
    --secondary-light: #CFD8DC;
    --secondary-normal: #B0BEC5;
    --secondary-dark: #607D8B;
    --secondary-darker: #455A64;

    --body-bg: var(--gray-normal);
    --sidebar-bg: var(--white);
    --header-bg: var(--white);
    --panel-bg: var(--white);
    --panel-alt: var(--gray-normal);
    --border: #e5e7eb;
    --border-strong: #d1d5db;

    --font-sm: 11px;
    --font-md: 13px;
    --font-lg: 16px;
    --font-10: 10px;
    --font-12: 12px;
    --font-14: 14px;
    --font-16: 16px;
    --font-18: 18px;
    --font-20: 20px;

    --text-primary: #7C5CFC;
    --text-secondary: #64748b;
    --text-success: #10b981;
    --text-danger: #ef4444;
    --text-warning: #f59e0b;
    --text-info: #0ea5e9;
    --text-muted: #6b7280;
    --text-dark: #1f2937;

    --tw-shadow-color: rgba(0, 0, 0, 0.1);
}


@font-face {
    font-family: 'Vazir';
    src: url('../fonts/Vazir.woff2') format("woff2"),
    url('../fonts/Vazir.woff') format("woff");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


*,
:after,
:before {
    box-sizing: border-box;
    border: 0 solid #e5e7eb;
}

:after,
:before {
    --tw-content: "";
}

:host,
html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
    "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji";
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
}

* {
    box-sizing: border-box;
    font-family: 'Vazir', 'Samim', sans-serif !important;
}

body {
    margin: 0;
    background: var(--body-bg);
    color: var(--text);
    line-height: inherit;
    font-family: 'Vazir', 'Samim', sans-serif !important;
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}

abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}

h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
}

a {
    color: inherit;
    text-decoration: inherit;
}

b, strong {
    font-weight: bolder;
}

code, kbd, pre, samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    Liberation Mono, Courier New, monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em;
}

small {
    font-size: 80%;
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}

button, select {
    text-transform: none;
}

button,
input:where([type="button"]),
input:where([type="reset"]),
input:where([type="submit"]) {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none;
}

:-moz-focusring {
    outline: auto;
}

:-moz-ui-invalid {
    box-shadow: none;
}

progress {
    vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}

::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}

summary {
    display: list-item;
}

blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
    margin: 0;
}

fieldset {
    margin: 0;
}

fieldset, legend {
    padding: 0;
}

menu, ol, ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

dialog {
    padding: 0;
}

textarea {
    resize: vertical;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1;
    color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
    opacity: 1;
    color: #9ca3af;
}

[role="button"], button {
    cursor: pointer;
}

:disabled {
    cursor: default;
}

audio, canvas, embed, iframe, img, object, svg, video {
    display: block;
    vertical-align: middle;
}

img, video {
    max-width: 100%;
    height: auto;
}

[hidden] {
    display: none;
}

/* ========================================
   4. TAILWIND UTILITIES
   ======================================== */
*, :after, :before {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59, 130, 246, 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}

::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59, 130, 246, 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}

/* ----- Position ----- */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.visible {
    visibility: visible;
}

.fixed {
    position: fixed;
}

.absolute {
    position: absolute;
}

.relative {
    position: relative;
}

.sticky {
    position: sticky;
}

.inset-0 {
    inset: 0;
}

.left-0 {
    left: 0;
}

.right-0 {
    right: 0;
}

.top-0 {
    top: 0;
}

.z-10 {
    z-index: 10;
}

.z-50 {
    z-index: 50;
}

/* ----- Margin ----- */
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 0.25rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-3 {
    margin-bottom: 0.75rem;
}

.mb-4 {
    margin-bottom: 1rem;
}

.mb-5 {
    margin-bottom: 1.25rem;
}

.mb-6 {
    margin-bottom: 1.5rem;
}

.mb-7 {
    margin-bottom: 1.75rem;
}

.mt-1 {
    margin-top: 0.25rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-3 {
    margin-top: 0.75rem;
}

.mt-6 {
    margin-top: 1.5rem;
}

/* ----- Display ----- */
.block {
    display: block;
}

.inline-block {
    display: inline-block;
}

.flex {
    display: flex;
}

.inline-flex {
    display: inline-flex;
}

.grid {
    display: grid;
}

.hidden {
    display: none;
}

/* ----- Sizing ----- */
.h-9 {
    height: 2.25rem;
}

.h-screen {
    height: 100vh;
}

.min-h-screen {
    min-height: 100vh;
}

.w-9 {
    width: 2.25rem;
}

.w-full {
    width: 100%;
}

.w-1\/2 {
    width: 50%;
}

.w-1\/3 {
    width: 33.333333%;
}

.w-2\/3 {
    width: 66.666667%;
}

.w-1\/4 {
    width: 25%;
}

.w-3\/4 {
    width: 75%;
}

.max-w-md {
    max-width: 28rem;
}

.flex-1 {
    flex: 1 1 0%;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

/* ----- Transform ----- */
.transform {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* ----- Cursor ----- */
.cursor-pointer {
    cursor: pointer;
}

.resize {
    resize: both;
}

/* ----- Grid ----- */
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.items-center {
    align-items: center;
}

.justify-end {
    justify-content: flex-end;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-3 {
    gap: 0.75rem;
}

.gap-4 {
    gap: 1rem;
}

.gap-5 {
    gap: 1.25rem;
}

.gap-6 {
    gap: 1.5rem;
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}

/* ----- Overflow ----- */
.overflow-hidden {
    overflow: hidden;
}

.overflow-y-auto {
    overflow-y: auto;
}

/* ----- Border Radius ----- */
.rounded {
    border-radius: 0.25rem;
}

.rounded-sm {
    border-radius: 0.125rem;
}

.rounded-md {
    border-radius: 0.375rem;
}

.rounded-lg {
    border-radius: 0.5rem;
}

.rounded-xl {
    border-radius: 0.75rem;
}

.rounded-2xl {
    border-radius: 1rem;
}

.rounded-3xl {
    border-radius: 1.5rem;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-pill {
    border-radius: 50rem;
}

/* ----- Border ----- */
.border {
    border-width: 1px;
}

.border-2 {
    border-width: 2px;
}

.border-b {
    border-bottom-width: 1px;
}

.border-l {
    border-left-width: 1px;
}

.border-r-4 {
    border-right-width: 4px;
}

.border-t {
    border-top-width: 1px;
}

.border-gray-200 {
    --tw-border-opacity: 1;
    border-color: rgb(229 231 235 / var(--tw-border-opacity));
}

.border-primary {
    border-color: #7C5CFC;
}

.border-info {
    border-color: #0ea5e9;
}

/* ----- Background ----- */
.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.bg-gray-50 {
    --tw-bg-opacity: 1;
    background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}

.bg-gray-100 {
    --tw-bg-opacity: 1;
    background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

.bg-gray-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}

.bg-primary {
    background-color: #7C5CFC;
}

.bg-primary-light {
    background-color: #f0edff;
}

.bg-transparent {
    background-color: transparent;
}

/* ----- Padding ----- */


.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 0.75rem;
}

.p-4 {
    padding: 1rem;
}

.p-5 {
    padding: 1.25rem;
}

.p-6 {
    padding: 1.5rem;
}

.pr-2 {
    padding-right: 0.5rem;
}

.pr-3 {
    padding-right: 0.75rem;
}

.pr-4 {
    padding-right: 1rem;
}

.pr-5 {
    padding-right: 1.25rem;
}

.pl-2 {
    padding-left: 0.5rem;
}

.pl-3 {
    padding-left: 0.75rem;
}

.pl-4 {
    padding-left: 1rem;
}

.pl-5 {
    padding-left: 1.25rem;
}

.px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.py-2 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}

.pb-5 {
    padding-bottom: 1.25rem;
}

.pt-2 {
    padding-top: 0.5rem;
}

/* ----- Text ----- */
.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}

.font-bold {
    font-weight: 700;
}

.font-medium {
    font-weight: 500;
}

.font-semibold {
    font-weight: 600;
}

.leading-7 {
    line-height: 1.75rem;
}

.text-primary {
    color: #7C5CFC;
}

.text-info {
    color: #0ea5e9;
}

.text-gray-500 {
    --tw-text-opacity: 1;
    color: rgb(107 114 128 / var(--tw-text-opacity));
}

.text-gray-600 {
    --tw-text-opacity: 1;
    color: rgb(75 85 99 / var(--tw-text-opacity));
}

.text-gray-700 {
    --tw-text-opacity: 1;
    color: rgb(55 65 81 / var(--tw-text-opacity));
}

.text-gray-800 {
    --tw-text-opacity: 1;
    color: rgb(31 41 55 / var(--tw-text-opacity));
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}

.text-dark {
    color: #1f2937;
}

.underline {
    text-decoration-line: underline;
}

/* ----- Shadow ----- */
.shadow {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.05));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md {
    --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
    --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl {
    --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color, rgba(0, 0, 0, 0.25));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-none {
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* ----- Shadow with Opacity ----- */
.shadow-xs\/10 {
    --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xs\/20 {
    --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.2));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xs\/30 {
    --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.3));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm\/10 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm\/20 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 2px -1px rgba(0, 0, 0, 0.2);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.2)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.2));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm\/30 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow\/10 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.08));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow\/20 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 2px -1px rgba(0, 0, 0, 0.15);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.2)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.15));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow\/30 {
    --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.25);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.25));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg\/10 {
    --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg\/20 {
    --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -4px rgba(0, 0, 0, 0.2);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color, rgba(0, 0, 0, 0.2)), 0 4px 6px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.2));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg\/30 {
    --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0 4px 6px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl\/10 {
    --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl\/20 {
    --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.2);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.2)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.2));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl\/30 {
    --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.3)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.3));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* ----- Outline ----- */
.outline {
    outline-style: solid;
}

.outline-none {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

/* ----- Transition ----- */
.transition {
    transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke, opacity,
    box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}

.transition-colors {
    transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}

.transition-shadow {
    transition-property: box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}

.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 0.15s;
}

.duration-150 {
    transition-duration: 0.15s;
}

.duration-200 {
    transition-duration: 0.2s;
}

.duration-300 {
    transition-duration: 0.3s;
}

.ease-in {
    transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ----- Hover Effects ----- */
.hover\:brightness-110:hover {
    --tw-brightness: brightness(1.1);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:brightness-125:hover {
    --tw-brightness: brightness(1.25);
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:bg-gray-50:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}

.hover\:bg-primary-dark:hover {
    background-color: #6a4ce0;
}

.hover\:scale-105:hover {
    --tw-scale-x: 1.05;
    --tw-scale-y: 1.05;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:shadow-lg:hover {
    --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* ----- Focus Effects ----- */
.focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.focus\:ring-2:focus {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-primary:focus {
    --tw-ring-color: #7C5CFC;
}

.focus\:ring-offset-2:focus {
    --tw-ring-offset-width: 2px;
}

/* ========================================
   5. CUSTOM STYLES (styles.css)
   ======================================== */

/* ----- Scrollbar ----- */
::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

::-webkit-scrollbar-track {
    background: #e5e7eb;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 5px;
}

/* ----- Sidebar ----- */
.sidebar {
    width: 250px;
    background: var(--sidebar-bg);
    border-left: 1px solid var(--border);
    transition: transform .25s ease, width .25s ease;
}

.sidebar.collapsed {
    width: 0;
    transform: translateX(0);
    overflow: hidden;
    border: 0;
}

/* ----- Topbar ----- */
.topbar {
    height: 62px;
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
}

/* ----- Main Content ----- */
.main-content {
    margin-right: 250px;
    transition: margin-right .25s ease;
}

.main-content.expanded {
    margin-right: 0;
}

/* ----- Sidebar Links ----- */
.sidebar-link {
    min-height: 40px;
    color: var(--text);
    transition: background-color .3s ease, color .3s ease;
    background: rgba(0, 0, 0, .05);
    margin-top: 3px;
}

.sidebar-link:hover {
    background: var(--primary-light);
}

.sidebar-link.active {
    color: var(--primary-dark);
    background: var(--primary-normal);
}

.sidebar-icon {
    width: 15px;
    text-align: center;
    color: var(--text);
}

/* ----- Submenu ----- */
.submenu {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .25s ease;
    background: rgba(0, 0, 0, .05);
}

.submenu-inner {
    overflow: hidden;
    background: #f3f3f3;
}

.submenu.open {
    grid-template-rows: 1fr;
}

.submenu-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding-right: 45px;
    color: var(--text);
    font-size: 14px;
}

.submenu-link::before {
    content: "";
    position: absolute;
    right: 28px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--muted);
}

.submenu-link:hover,
.submenu-link.active {
    color: var(--primary-dark);
    background-color: var(--primary-light) !important;
}

.submenu-link.active {
    color: var(--primary-dark) !important;
    background-color: var(--primary-light) !important;
    font-weight: 600;
}

.menu-arrow {
    margin-right: auto;
    transition: transform .2s ease;
}

.menu-arrow.rotate {
    transform: rotate(180deg);
}

/* Fallback submenu display */
.submenu {
    display: none;
}

.submenu.open,
.submenu.show {
    display: block !important;
}

.menu-toggle .lucide-chevron-down,
.menu-toggle .menu-arrow,
.menu-toggle svg:last-child {
    transition: transform 0.25s ease;
    margin-right: auto;
}

.menu-toggle.open .lucide-chevron-down,
.menu-toggle.open .menu-arrow,
.menu-toggle.open svg:last-child,
.menu-arrow.rotate {
    transform: rotate(180deg);
}

/* ----- Brand ----- */
.brand {
    height: 62px;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.brand-logo {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 700;
    flex-shrink: 0;
}

/* ----- Panel ----- */
.panel {
    background: var(--panel-bg);
    border: 1px solid var(--border);
    border-radius: 5px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
}

.panel-header {
    background: var(--primary-dark);
    color: var(--white);
    min-height: 55px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    padding: 0 15px;
    font-size: 14px;
}

.panel-body {
    padding: 15px;
}

.panel-blue {
    border-top: 4px solid var(--primary);
}

.panel-green {
    border-top: 4px solid var(--success);
}

.panel-yellow {
    border-top: 4px solid var(--warning);
}

.panel-red {
    border-top: 4px solid var(--danger);
}

/* ----- Form Elements ----- */
.input-dark,
.select-dark,
.textarea-dark {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 3px;
    background: var(--gray-light);
    color: var(--text);
    padding: 6px 12px;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    font-size: var(--font-14);
    font-family: 'Vazir', 'Samim', sans-serif !important;
}

.input-dark::placeholder,
.textarea-dark::placeholder {
    color: var(--muted);
}

.input-dark:focus,
.select-dark:focus,
.textarea-dark:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(124, 92, 252, .2);
}

.input-sm, .select-sm, .textarea-sm {
    padding: .35rem .5rem;
    font-size: var(--font-sm);
}

.input-lg, .select-lg, .textarea-lg {
    padding: .625rem .875rem;
    font-size: var(--font-lg);
}

.textarea-dark {
    resize: vertical;
    min-height: 120px;
}

/* ----- Form Grid ----- */
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.form-group.full {
    grid-column: 1/-1;
}

.form-label {
    color: var(--text-muted);
    font-size: var(--font-md) !important;
    font-weight: 500;
}

/* ----- File Input ----- */
.file-dark {
    width: 100%;
    color: var(--muted);
}

.file-dark::file-selector-button {
    border: 1px solid var(--border);
    border-radius: .375rem;
    background: var(--gray-light);
    color: var(--text);
    padding: .4375rem .6875rem;
    margin-inline-end: .5rem;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

.file-dark::file-selector-button:hover {
    background: var(--gray-normal);
}

/* ----- Checkbox & Radio ----- */
.choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    align-items: center;
    min-height: 44px;
}

.check-dark,
.radio-dark {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--text);
    cursor: pointer;
    user-select: none;
}

.check-dark input,
.radio-dark input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--primary);
}

.range-dark {
    width: 100%;
    accent-color: var(--primary);
}

/* ----- Profile Menu ----- */
.profile-menu {
    position: absolute;
    left: 0;
    top: calc(100% + 10px);
    z-index: 100;
    width: 220px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--sidebar-bg);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.profile-menu.open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.profile-menu-header {
    padding: 17px 18px;
    border-bottom: 1px solid var(--border);
    background: var(--sidebar-bg);
    color: var(--text);
    font-size: 16px;
    font-weight: 600;
}

.profile-menu-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 48px;
    width: 100%;
    padding: 0 18px;
    border: 0;
    background: var(--sidebar-bg);
    color: var(--text);
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}

.profile-menu-item:hover,
.profile-menu-item:focus {
    background: var(--gray-normal);
    color: var(--dark);
}

.profile-menu-item i {
    width: 18px;
    text-align: center;
    color: var(--muted);
}

.profile-menu-item.logout {
    border-top: 1px solid var(--border);
    color: var(--danger);
}

.profile-menu-item.logout i {
    color: var(--danger);
}

.profile-menu-item.logout:hover,
.profile-menu-item.logout:focus {
    background: #fef2f2;
    color: #dc2626;
}

/* ----- Accordion ----- */
.accordion-content {
    display: block;
}

.accordion-content.hidden {
    display: none;
}

/* ----- Text Colors ----- */
.text-primary {
    color: var(--text-primary) !important;
}

.text-secondary {
    color: var(--text-secondary) !important;
}

.text-success {
    color: var(--text-success) !important;
}

.text-warning {
    color: var(--text-warning) !important;
}

.text-danger {
    color: var(--text-danger) !important;
}

.text-info {
    color: var(--text-info) !important;
}

.text-muted {
    color: var(--text-muted) !important;
}

.text-dark {
    color: var(--text-dark) !important;
}

/* ----- Font Sizes ----- */
.font-sm {
    font-size: var(--font-sm) !important;
}

.font-md {
    font-size: var(--font-md) !important;
}

.font-10 {
    font-size: var(--font-10) !important;
}

.font-12 {
    font-size: var(--font-12) !important;
}

.font-14 {
    font-size: var(--font-14) !important;
}

/* ========================================
   6. BUTTONS (styles.css)
   ======================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    border: 1px solid transparent;
    border-radius: .35rem;
    padding: .45rem .7rem;
    font-weight: 500;
    line-height: 1.1;
    transition: background-color .15s ease, border-color .15s ease,
    color .15s ease, transform .05s ease, opacity .15s ease;
    cursor: pointer;
    font-family: 'Vazir', 'Samim', sans-serif !important;
    font-size: var(--font-md);
}

.btn:active {
    transform: translateY(1px);
}

.btn:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.btn-sm {
    padding: .35rem .45rem;
    font-size: var(--font-sm);
    font-weight: 400;
}

.btn-md {
    padding: .375rem .5rem;
    font-size: var(--font-md);
    font-weight: 500;
}

.btn-lg {
    padding: .4375rem .625rem;
    font-size: var(--font-lg);
    font-weight: 500;
}

.btn-icon {
    width: 2rem;
    height: 2rem;
    padding: 0;
    border-radius: .375rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-primary {
    background: var(--primary-lighter);
    color: var(--primary-dark);
    border: none;
    border-radius: 8px;
}

.btn-primary:hover {
    background: var(--primary-dark);
    color: var(--white);
}

.btn-secondary {
    background: var(--secondary-lighter);
    color: var(--secondary-dark);
    border: none;
    border-radius: 8px;
}

.btn-secondary:hover {
    background: var(--secondary-dark);
    color: var(--white);
}

.btn-success {
    background: var(--success-lighter);
    color: var(--success-dark);
    border: none;
    border-radius: 8px;
}

.btn-success:hover {
    background: var(--success-dark);
    color: var(--white);
}

.btn-danger {
    background: var(--danger-lighter);
    color: var(--danger-dark);
    border: none;
    border-radius: 8px;
}

.btn-danger:hover {
    background: var(--danger-dark);
    color: var(--white);
}

.btn-warning {
    background: var(--warning-lighter);
    color: var(--warning-dark);
    border: none;
    border-radius: 8px;
}

.btn-warning:hover {
    background: var(--warning-dark);
    color: var(--white);
}

.btn-info {
    background: var(--info-lighter);
    color: var(--info-dark);
    border: none;
    border-radius: 8px;
}

.btn-info:hover {
    background: var(--info-dark);
    color: var(--white);
}

/* ----- Outline Buttons ----- */
.btn-outline-primary {
    background: transparent;
    border-color: var(--primary-dark);
    color: var(--primary-dark);
}

.btn-outline-primary:hover {
    background: var(--primary-dark);
    color: var(--white);
}

.btn-outline-secondary {
    background: transparent;
    border-color: var(--secondary-dark);
    color: var(--secondary-dark);
}

.btn-outline-secondary:hover {
    background: var(--secondary-dark);
    color: var(--white);
}

.btn-outline-success {
    background: transparent;
    border-color: var(--success-dark);
    color: var(--success-dark);
}

.btn-outline-success:hover {
    background: var(--success-dark);
    color: var(--white);
}

.btn-outline-danger {
    background: transparent;
    border-color: var(--danger-dark);
    color: var(--danger-dark);
}

.btn-outline-danger:hover {
    background: var(--danger-dark);
    color: var(--white);
}

.btn-outline-warning {
    background: transparent;
    border-color: var(--warning-dark);
    color: var(--warning-dark);
}

.btn-outline-warning:hover {
    background: var(--warning-dark);
    color: var(--white);
}

.btn-outline-info {
    background: transparent;
    border-color: var(--info-dark);
    color: var(--info-dark);
}

.btn-outline-info:hover {
    background: var(--info-dark);
    color: var(--white);
}

.btn-outline-dark-blue {
    background: transparent;
    border-color: var(--info-darker);
    color: var(--info-darker);
}

.btn-outline-dark-blue:hover {
    background: var(--info-dark);
    color: #fff;
}

/* ----- Pill Buttons ----- */
.btn.rounded-pill {
    border-radius: 50rem !important;
}

.btn-sm.rounded-pill {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.btn-lg.rounded-pill {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.btn-xl.rounded-pill {
    padding-left: 2rem;
    padding-right: 2rem;
}

.alert-box {
    border: 1px solid;
    border-radius: 5px;
    padding: 14px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.alert-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.alert {
    padding: 8px 16px !important;
    font-size: var(--font-12);
}

.alert-primary {
    color: var(--primary-dark);
    background: var(--primary-lighter);
    border-color: var(--primary-normal);
}

.alert-primary .alert-icon {
    background: var(--primary-dark);
    color: #fff;
}

.alert-secondary {
    color: var(--secondary-dark);
    background: var(--gray-lighter);
    border-color: var(--secondary-normal);
}

.alert-secondary .alert-icon {
    background: var(--secondary-dark);
    color: #fff;
}

.alert-success {
    color: var(--success-dark);
    background: var(--success-lighter);
    border-color: var(--success-normal);
}

.alert-success .alert-icon {
    background: var(--success-dark);
    color: #fff;
}

.alert-danger {
    color: var(--danger-dark);
    background: var(--danger-lighter);
    border-color: var(--danger-normal);
}

.alert-danger .alert-icon {
    background: var(--danger-dark);
    color: #fff;
}

.alert-warning {
    color: var(--warning-dark);
    background: var(--warning-lighter);
    border-color: var(--warning-normal);
}

.alert-warning .alert-icon {
    background: var(--warning-dark);
    color: #fff;
}

.alert-info {
    color: var(--info-dark);
    background: var(--info-lighter);
    border-color: var(--info-normal);
}

.alert-info .alert-icon {
    background: var(--info-dark);
    color: #fff;
}

jdp-container {
    background-color: var(--panel-bg) !important;
    border: 1px solid var(--border) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    border-radius: 6px !important;
    font-family: 'Vazir', 'Samim', sans-serif !important;
}

jdp-container .jdp-years,
jdp-container .jdp-months,
jdp-container .jdp-time-container {
    background-color: var(--panel-bg) !important;
    color: var(--text) !important;
}

jdp-container select {
    background-color: var(--gray-light) !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    outline: none !important;
    padding: 2px 5px !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

jdp-container select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 2px rgba(124, 92, 252, .2) !important;
}

jdp-container .jdp-icon-plus svg path,
jdp-container .jdp-icon-minus svg path {
    fill: var(--muted) !important;
    transition: fill 0.15s ease;
}

jdp-container .jdp-icon-plus:hover svg path,
jdp-container .jdp-icon-minus:hover svg path {
    fill: var(--text) !important;
}

jdp-container .jdp-days-header {
    background-color: var(--header-bg) !important;
    border-bottom: 1px solid var(--border) !important;
}

jdp-container .jdp-day-name {
    color: var(--text) !important;
}

jdp-container .jdp-day-name.holiday-day {
    color: var(--danger) !important;
}

jdp-container .jdp-days {
    background-color: var(--panel-bg) !important;
}

jdp-container .jdp-day {
    color: var(--text) !important;
    border-radius: 4px !important;
    transition: background-color 0.15s ease, color 0.15s ease;
}

jdp-container .jdp-day:not(.not-in-month):not(.disabled):hover {
    background-color: var(--gray-normal) !important;
    color: var(--dark) !important;
    cursor: pointer !important;
}

jdp-container .jdp-day.today {
    border: 1px solid var(--primary) !important;
}

jdp-container .jdp-day.selected {
    background-color: var(--primary) !important;
    color: #fff !important;
}

jdp-container .jdp-day.not-in-month {
    color: var(--border-strong) !important;
    opacity: 0.6;
}

jdp-container .jdp-day.holiday-day:not(.not-in-month) {
    color: var(--danger) !important;
}

jdp-container .jdp-footer {
    border-top: 1px solid var(--border) !important;
    background-color: var(--panel-bg) !important;
    padding: 10px !important;
}

jdp-container .jdp-btn-today {
    background-color: var(--primary) !important;
    color: #fff !important;
    border-radius: 4px !important;
    padding: 5px 12px !important;
    transition: background-color 0.15s ease;
}

jdp-container .jdp-btn-today:hover {
    background-color: #6a4ce0 !important;
}

jdp-container .jdp-btn-empty {
    background-color: var(--gray-light) !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    padding: 5px 12px !important;
    transition: background-color 0.15s ease;
}

jdp-container .jdp-btn-empty:hover {
    background-color: var(--gray-normal) !important;
}

/* ========================================
   9. SEARCHABLE DROPDOWN
   ======================================== */
.app-searchable-dropdown {
    position: relative;
    width: 100%;
    user-select: none;
}

.dropdown-trigger {
    width: 100%;
    padding: 6px 12px;
    background: var(--gray-light);
    border: 1px solid #d1d5db;
    border-radius: 4px;
    color: #1f2937;
    font-size: 13px;
    font-family: 'Vazir', 'Samim', sans-serif !important;
    text-align: right;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.15s ease;
    min-height: 38px;
}

.dropdown-trigger:hover {
    border-color: #9ca3af;
    background: #f9fafb;
}

.dropdown-trigger:focus {
    border-color: #7C5CFC;
    box-shadow: 0 0 0 2px rgba(124, 92, 252, 0.2);
    outline: none;
}

.dropdown-trigger .arrow {
    font-size: 12px;
    color: #6b7280;
    transition: transform 0.2s ease;
    margin-right: 8px;
}

.dropdown-trigger .arrow.open {
    transform: rotate(180deg);
}

.app-dropdown-menu {
    position: fixed;
    display: none;
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    min-width: 200px;
    max-height: 320px;
    overflow: hidden;
    margin-top: 2px;
}

.app-dropdown-menu .search-wrapper {
    padding: 8px 10px;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
}

.app-dropdown-menu .search-wrapper input {
    width: 100%;
    padding: 6px 10px;
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    color: #1f2937;
    font-size: 13px;
    font-family: 'Vazir', 'Samim', sans-serif !important;
    outline: none;
    transition: border-color 0.15s ease;
}

.app-dropdown-menu .search-wrapper input:focus {
    border-color: #7C5CFC;
    box-shadow: 0 0 0 2px rgba(124, 92, 252, 0.2);
}

.app-dropdown-menu .search-wrapper input::placeholder {
    color: #9ca3af;
}

.app-dropdown-menu .options-container {
    max-height: 260px;
    overflow-y: auto;
    padding: 4px 0;
}

.app-dropdown-menu .options-container::-webkit-scrollbar {
    width: 6px;
}

.app-dropdown-menu .options-container::-webkit-scrollbar-track {
    background: #f3f4f6;
}

.app-dropdown-menu .options-container::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 3px;
}

.app-dropdown-menu .options-container::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

.app-dropdown-menu .options-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.app-dropdown-menu .options-list li {
    padding: 8px 12px;
    color: #1f2937;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
    transition: background-color 0.15s ease;
}

.app-dropdown-menu .options-list li:hover {
    background: #f3f4f6 !important;
    color: #1f2937 !important;
}

.app-dropdown-menu .options-list li:last-child {
    border-bottom: none;
}

.app-dropdown-menu .options-list .placeholder-option {
    color: #6b7280;
}

.app-dropdown-menu .options-list li .item-title {
    font-weight: 500;
    color: #1f2937;
}

.app-dropdown-menu .options-list li .item-code {
    font-family: monospace;
    font-size: 11px;
    color: #6b7280;
    background: #f3f4f6;
    padding: 2px 6px;
    border-radius: 3px;
    flex-shrink: 0;
}

.app-dropdown-menu .options-list .loading-state,
.app-dropdown-menu .options-list .empty-state,
.app-dropdown-menu .options-list .error-state {
    padding: 12px;
    text-align: center;
    font-size: 12px;
    cursor: default;
    justify-content: center;
}

.app-dropdown-menu .options-list .loading-state {
    color: #6b7280;
}

.app-dropdown-menu .options-list .empty-state {
    color: #6b7280;
}

.app-dropdown-menu .options-list .error-state {
    color: #ef4444;
}

.app-dropdown-menu .options-list .loading-state:hover,
.app-dropdown-menu .options-list .empty-state:hover,
.app-dropdown-menu .options-list .error-state:hover {
    background: transparent !important;
}

/* ========================================
   10. RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
    .sidebar {
        transform: translateX(100%);
        width: 250px;
    }

    .sidebar.open {
        transform: translateX(0);
    }

    .sidebar.collapsed {
        width: 250px;
        transform: translateX(100%);
    }

    .main-content {
        margin-right: 0;
    }

    .main-content.expanded {
        margin-right: 0;
    }

    .profile-menu {
        left: 0;
        right: auto;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    #sidebar, .sidebar {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        height: 100vh !important;
        width: 260px !important;
        max-width: 85vw !important;
        z-index: 1050 !important;
        transform: translateX(100%) !important;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        box-shadow: -5px 0 25px rgba(0, 0, 0, 0.12) !important;
    }

    #sidebar.open, .sidebar.open {
        transform: translateX(0) !important;
    }

    #mainContent, .main-content {
        margin-right: 0 !important;
    }
}

@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .md\:flex-row {
        flex-direction: row;
    }

    .md\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .md\:py-4 {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}

@media (min-width: 1024px) {
    .lg\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .lg\:py-5 {
        padding-top: 1.25rem;
        padding-bottom: 1.25rem;
    }

    .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .xl\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .xl\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1536px) {
    .\32xl\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}