@font-face {
    font-family: 'Vazirmatn';
    src: url('fonts/vazirmatn/Vazirmatn.woff2') format('woff2');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
:root {
    --bs-font-sans-serif: 'Vazirmatn', sans-serif;
    --bs-body-font-family: 'Vazirmatn', sans-serif;
}
body,
body *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.fat):not(.fa-solid):not(.fa-regular):not(.fa-brands):not(.fa-light):not(.fa-thin):not(.fa-duotone):not(.bi):not([class^='ri-']):not([class*=' ri-']) {
    font-family: 'Vazirmatn', sans-serif !important;
}

/* Shared Arabic typography scale: interface text, headings, and queue numbers. */
:root {
    --type-body: 16px;
    --type-label: 14px;
    --type-caption: 13px;
    --type-page: clamp(26px, 2.2vw, 32px);
    --type-section: clamp(20px, 1.6vw, 24px);
}
body { font-size: var(--type-body); line-height: 1.75; }
h1, h2, h3, h4, h5, h6 { line-height: 1.5; letter-spacing: normal; }
main h1, .workspace-heading h1, .dash-heading h1,
.reception-workspace .workspace-heading h1, .display-heading h1,
.screen-directory-heading h1 { font-size: var(--type-page) !important; font-weight: 700; }
main h2, .panel-title h2, .screen-group-title h2,
.management-counter-head h2, .display-college-header h2,
.reception-workspace .college-title h2 { font-size: var(--type-section) !important; font-weight: 600; }
main h3, main h4, main h5, main h6,
.screen-choice h3, .reception-workspace .service-card h3,
.management-action-title h3, .station-header h3 { font-size: 18px !important; line-height: 1.6; }
.workspace-heading p, .dash-heading p, .screen-directory-heading p,
.display-heading p, .management-action p { font-size: 15px !important; line-height: 1.85; }
.btn, .screen-open, .logout-button { font-size: 15px; line-height: 1.6; font-weight: 600; }
.reception-workspace .service-card [data-issue-form] button span { font-size: 17px; }
.form-control, .form-select, select, textarea { font-size: 16px; line-height: 1.7; }
label, .form-label { font-size: var(--type-label); line-height: 1.7; font-weight: 500; }
.table { font-size: 15px; line-height: 1.75; }
.table th { font-size: 14px; font-weight: 600; }
.dataTables_info, .dataTables_length, .dataTables_filter, .page-link { font-size: 14px; }
.glass-nav a { font-size: 15px; line-height: 1.65; }
.nav-label, .eyebrow, .workspace-kicker, .management-kicker,
.reception-section-label, .screen-choice-label, .display-college-header small { font-size: 13px !important; }
.brand-lockup { font-size: 20px; line-height: 1.5; }
.brand-lockup small { font-size: 12px; line-height: 1.6; }
.top-meta, .account-name { font-size: 14px; }
.panel-title small, .metric-bottom, .metric-scope, .action-tag,
.management-foot, .screen-choice-type, .screen-college-tags li,
.reception-hint, .reception-workspace .service-card p,
.station-department small, .station-state { font-size: 13px !important; line-height: 1.7; }
.metric-top h2 { font-size: 16px !important; }
.metric-value strong { font-size: clamp(38px, 3.4vw, 48px); line-height: 1.3; letter-spacing: normal; }
.station-ticket strong { font-size: clamp(64px, 6vw, 96px); line-height: 1.3; letter-spacing: normal; }
.current-ticket { font-size: clamp(56px, 5vw, 72px); line-height: 1.35; letter-spacing: normal; }
.station-department p { font-size: 18px; line-height: 1.7; }
.login-title, .auth-form-side h3 { font-size: 28px !important; line-height: 1.5; }
.login-subtitle, .auth-container label { font-size: 15px; line-height: 1.8; }
@media (max-width: 575px) {
    body { font-size: 15px; }
    .brand-lockup { font-size: 17px; }
    .brand-lockup small { font-size: 11px; }
    .table { font-size: 14px; }
    .metric-top h2 { font-size: 15px !important; }
}

/* Shared link treatment: no hover underline; keyboard focus remains visible. */
body a,
body a:hover,
body a:focus,
body a:active,
body a:hover *,
body .btn,
body .btn:hover,
body .btn:focus {
    text-decoration: none !important;
}
body a:focus-visible,
body button:focus-visible {
    outline: 2px solid #0e6f6b;
    outline-offset: 3px;
}

/* Administrative tables: clear rows and compact, consistently sized actions. */
.admin-workspace .card:has(.dataTable),
.admin-workspace .card:has(#table) {
    border: 1px solid #e1e8e6;
    border-radius: 14px;
    box-shadow: 0 3px 14px #333a4505 !important;
}
.admin-workspace .card:has(#table) .card-header {
    background: #fff;
    padding: 16px 20px;
    border-bottom: 1px solid #e8eeeb;
}
.admin-workspace .dataTables_wrapper .table thead th {
    background: #f2f6f5 !important;
    color: #526660 !important;
    padding: 12px 14px !important;
    border-bottom: 1px solid #dbe5e1 !important;
}
.admin-workspace .dataTables_wrapper .table tbody td {
    padding: 12px 14px !important;
    border-bottom: 1px solid #edf1ef !important;
    vertical-align: middle;
}
.admin-workspace .dataTables_wrapper .table tbody tr:nth-child(even) td { background: #fafcfb; }
.admin-workspace .dataTables_wrapper .table tbody tr:hover td { background: #edf6f3 !important; }
.admin-workspace #table .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px !important;
    min-width: 34px;
    padding: 6px 9px !important;
    margin: 2px;
    border-radius: 7px !important;
    font-size: 13px !important;
    line-height: 1.4;
    box-shadow: none !important;
}
.admin-workspace #table .btn i { font-size: 14px; }
.admin-workspace #table td:last-child { white-space: nowrap; }
.admin-workspace .dataTables_filter input,
.admin-workspace .dataTables_length select {
    min-height: 38px !important;
    border: 1px solid #d7e2dd;
    border-radius: 8px;
    font-size: 14px;
}
.admin-workspace .dataTables_paginate .page-link {
    min-width: 34px;
    min-height: 34px;
    font-size: 13px;
    box-shadow: none;
}
/* Keep DataTables' measuring header collapsed. */
.admin-workspace .dataTables_scrollBody .table thead th {
    padding-block: 0 !important;
    border-block-width: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}
@media (pointer: coarse) {
    .admin-workspace #table .btn { min-height: 44px !important; min-width: 44px; }
}
