/* سالکو — رابط کاربری صنعتی مدرن */

@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

:root {
    --bg: #eef2f7;
    --bg-mesh: radial-gradient(ellipse 80% 50% at 100% 0%, rgba(56, 189, 248, 0.12), transparent 50%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(217, 119, 6, 0.08), transparent 45%),
        #eef2f7;
    --surface: #ffffff;
    --surface-2: #f8fafc;
    --text: #0f172a;
    --text-soft: #475569;
    --muted: #64748b;
    --primary: #0369a1;
    --primary-light: #e0f2fe;
    --primary-hover: #0284c7;
    --accent: #d97706;
    --accent-light: #fffbeb;
    --border: #e2e8f0;
    --border-strong: #cbd5e1;
    --radius: 14px;
    --radius-sm: 10px;
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
    --shadow: 0 4px 24px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.04);
    --shadow-lg: 0 20px 50px rgba(15, 23, 42, 0.12);
    --sidebar-w: 272px;
    --sidebar-w-collapsed: 76px;
    --sidebar-bg: #081422;
    --sidebar-bg-mid: #0c1f38;
    --sidebar-border: rgba(148, 163, 184, 0.12);
    --sidebar-text: #e2e8f0;
    --sidebar-muted: #94a3b8;
    --sidebar-glow: rgba(56, 189, 248, 0.35);
    --header-h: 72px;
    --transition: 0.2s ease;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body.app-body {
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    background: var(--bg-mesh);
    background-attachment: fixed;
    color: var(--text);
    line-height: 1.65;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--primary-hover); }

/* ——— Shell ——— */
.app-shell {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: var(--sidebar-w);
    background:
        radial-gradient(ellipse 120% 80% at 100% 0%, rgba(56, 189, 248, 0.14), transparent 55%),
        radial-gradient(ellipse 90% 60% at 0% 100%, rgba(245, 158, 11, 0.1), transparent 50%),
        linear-gradient(185deg, var(--sidebar-bg) 0%, var(--sidebar-bg-mid) 48%, #0a1a30 100%);
    color: var(--sidebar-text);
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    border-left: 1px solid var(--sidebar-border);
    box-shadow: -8px 0 40px rgba(2, 8, 23, 0.45);
    transition: width 0.24s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.24s ease;
}

.sidebar::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent) 0%, #38bdf8 55%, var(--primary) 100%);
    opacity: 0.95;
    pointer-events: none;
}

.sidebar-brand {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 1.4rem 1.15rem 1.2rem;
    border-bottom: 1px solid var(--sidebar-border);
    flex-shrink: 0;
}

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--accent) 0%, #f59e0b 100%);
    color: #0f172a;
    font-weight: 800;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(217, 119, 6, 0.45);
    flex-shrink: 0;
}

.brand-mark--image {
    background: #fff;
    padding: 3px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.brand-mark--image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 9px;
    display: block;
}

.brand-mark--auth {
    width: 56px;
    height: 56px;
    margin: 0 auto 0.75rem;
    font-size: 1.15rem;
}

.sidebar-brand__text {
    min-width: 0;
    overflow: hidden;
    transition: opacity 0.18s ease, max-width 0.22s ease;
}

.sidebar-brand strong {
    display: block;
    font-size: 1.12rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.sidebar-brand span {
    display: block;
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--sidebar-muted);
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 0.1rem;
}

.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.85rem 0.7rem 1rem;
    direction: ltr;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.45) rgba(255, 255, 255, 0.04);
}

.sidebar-nav__group + .sidebar-nav__group {
    margin-top: 0.35rem;
}

.sidebar-nav .sidebar-section,
.sidebar-nav .sidebar-nav__links,
.sidebar-nav .sidebar-link {
    direction: rtl;
}

.sidebar-nav::-webkit-scrollbar {
    width: 7px;
}

.sidebar-nav::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.03);
    border-radius: 999px;
    margin: 6px 2px;
}

.sidebar-nav::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(148, 163, 184, 0.55) 0%, rgba(100, 116, 139, 0.45) 100%);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
    min-height: 2.5rem;
    transition: background 0.2s ease;
}

.sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, rgba(226, 232, 240, 0.75) 0%, rgba(148, 163, 184, 0.65) 100%);
    background-clip: padding-box;
}

.sidebar-nav::-webkit-scrollbar-thumb:active {
    background: linear-gradient(180deg, rgba(251, 191, 36, 0.9) 0%, rgba(217, 119, 6, 0.85) 100%);
    background-clip: padding-box;
}

.sidebar-nav::-webkit-scrollbar-corner {
    background: transparent;
}

.sidebar-section {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem 0.4rem;
    margin-top: 0.25rem;
}

.sidebar-section__label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--sidebar-muted);
    white-space: nowrap;
}

.sidebar-section::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--sidebar-border), transparent);
}

.sidebar-nav__links {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 0.65rem;
    border-radius: 11px;
    color: #cbd5e1;
    font-size: 0.86rem;
    font-weight: 500;
    border: 1px solid transparent;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.sidebar-link:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(148, 163, 184, 0.14);
    color: #fff;
    text-decoration: none;
}

.sidebar-link.is-active {
    background: linear-gradient(90deg, rgba(3, 105, 161, 0.55) 0%, rgba(3, 105, 161, 0.12) 100%);
    border-color: rgba(56, 189, 248, 0.25);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--accent), 0 4px 18px var(--sidebar-glow);
}

.sidebar-icon-wrap {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.sidebar-link:hover .sidebar-icon-wrap {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(148, 163, 184, 0.2);
}

.sidebar-link.is-active .sidebar-icon-wrap {
    background: rgba(56, 189, 248, 0.2);
    border-color: rgba(56, 189, 248, 0.35);
}

.sidebar-icon {
    font-size: 0.92rem;
    line-height: 1;
    opacity: 0.92;
}

.sidebar-link__body {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    transition: opacity 0.18s ease, max-width 0.22s ease;
}

.sidebar-link__label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-link__badge {
    flex-shrink: 0;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #0f172a;
    font-size: 0.68rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.45);
}

.sidebar-footer {
    flex-shrink: 0;
    padding: 0.85rem 0.85rem 1rem;
    border-top: 1px solid var(--sidebar-border);
    background: rgba(0, 0, 0, 0.18);
}

.sidebar-user-card {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.06);
    margin-bottom: 0.55rem;
}

.sidebar-user-card__avatar {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    background: linear-gradient(135deg, #fde68a 0%, var(--accent) 100%);
    box-shadow: 0 3px 12px rgba(245, 158, 11, 0.35);
}

.sidebar-user-card__meta {
    min-width: 0;
    flex: 1;
    transition: opacity 0.18s ease, max-width 0.22s ease;
}

.sidebar-user-card__meta strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-card__meta span {
    display: block;
    font-size: 0.68rem;
    color: var(--sidebar-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 0.1rem;
}

.sidebar-user-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
}

.sidebar-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.45rem 0.55rem;
    border-radius: 9px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sidebar-action-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(148, 163, 184, 0.22);
    color: #fff;
    text-decoration: none;
}

.sidebar-action-btn--logout:hover {
    background: rgba(239, 68, 68, 0.15);
    border-color: rgba(248, 113, 113, 0.35);
    color: #fecaca;
}

.sidebar-action-btn__icon {
    font-size: 0.9rem;
    line-height: 1;
}

.sidebar-action-btn__label {
    transition: opacity 0.18s ease, max-width 0.22s ease;
}

.sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 190;
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(3px);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.28s ease;
}

.sidebar-backdrop.is-visible {
    display: block;
    opacity: 1;
}

.profile-card {
    margin-bottom: 1.25rem;
}

.profile-card__hint {
    margin: 0.75rem 0 0;
    font-size: 0.85rem;
}

.profile-password-form {
    margin-top: 1rem;
}

/* ——— سایدبار جمع‌شده (فقط آیکون) ——— */
.app-shell--sidebar-collapsed .sidebar {
    width: var(--sidebar-w-collapsed);
}

.app-shell--sidebar-collapsed .app-main {
    margin-right: var(--sidebar-w-collapsed);
}

.app-shell--sidebar-collapsed .sidebar-brand {
    justify-content: center;
    padding-inline: 0.65rem;
}

.app-shell--sidebar-collapsed .sidebar-brand__text,
.app-shell--sidebar-collapsed .sidebar-link__body,
.app-shell--sidebar-collapsed .sidebar-section,
.app-shell--sidebar-collapsed .sidebar-user-card__meta,
.app-shell--sidebar-collapsed .sidebar-action-btn__label {
    opacity: 0;
    max-width: 0;
    overflow: hidden;
    pointer-events: none;
}

.app-shell--sidebar-collapsed .sidebar-section {
    height: 0;
    margin: 0.35rem 0;
    padding: 0;
    border: none;
}

.app-shell--sidebar-collapsed .sidebar-link {
    justify-content: center;
    padding: 0.5rem;
    gap: 0;
}

.app-shell--sidebar-collapsed .sidebar-link.is-active {
    box-shadow: inset 0 3px 0 var(--accent);
}

.app-shell--sidebar-collapsed .sidebar-footer {
    padding: 0.65rem 0.5rem 0.85rem;
}

.app-shell--sidebar-collapsed .sidebar-user-card {
    justify-content: center;
    padding: 0.5rem;
    margin-bottom: 0.4rem;
}

.app-shell--sidebar-collapsed .sidebar-user-card__actions {
    grid-template-columns: 1fr;
    gap: 0.35rem;
}

.app-shell--sidebar-collapsed .sidebar-action-btn {
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    margin: 0 auto;
}

/* هاور روی سایدبار جمع‌شده — باز شدن موقت روی محتوا */
.app-shell--sidebar-collapsed .sidebar:hover,
.app-shell--sidebar-collapsed .sidebar:focus-within {
    width: var(--sidebar-w);
    z-index: 350;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.28);
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-brand,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-brand {
    justify-content: flex-start;
    padding-inline: 1.25rem;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-brand__text,
.app-shell--sidebar-collapsed .sidebar:hover .sidebar-link__body,
.app-shell--sidebar-collapsed .sidebar:hover .sidebar-section,
.app-shell--sidebar-collapsed .sidebar:hover .sidebar-user-card__meta,
.app-shell--sidebar-collapsed .sidebar:hover .sidebar-action-btn__label,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-brand__text,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-link__body,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-section,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-user-card__meta,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-action-btn__label {
    opacity: 1;
    max-width: 12rem;
    pointer-events: auto;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-section,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-section {
    height: auto;
    margin-top: 0.5rem;
    padding: 0.75rem 0.85rem 0.35rem;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-link,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-link {
    justify-content: flex-start;
    gap: 0.7rem;
    padding: 0.5rem 0.65rem;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-link.is-active,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-link.is-active {
    box-shadow: inset 3px 0 0 var(--accent);
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-footer,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-footer {
    padding: 0.85rem;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-user-card,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-user-card {
    justify-content: flex-start;
    padding: 0.65rem 0.7rem;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-user-card__actions,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-user-card__actions {
    grid-template-columns: 1fr 1fr;
}

.app-shell--sidebar-collapsed .sidebar:hover .sidebar-action-btn,
.app-shell--sidebar-collapsed .sidebar:focus-within .sidebar-action-btn {
    width: auto;
    height: auto;
    padding: 0.45rem 0.55rem;
    margin: 0;
}

.app-main {
    flex: 1;
    margin-right: var(--sidebar-w);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    transition: margin-right 0.22s ease;
}

.app-header {
    height: var(--header-h);
    padding: 0 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 50;
}

.app-header__tools {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.sidebar-collapse-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 1rem;
    color: var(--text);
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.sidebar-collapse-btn:hover {
    background: var(--primary-light);
    border-color: #bae6fd;
    color: var(--primary);
}

.sidebar-collapse-btn__icon--expand {
    display: none;
}

.app-shell--sidebar-collapsed .sidebar-collapse-btn__icon--collapse {
    display: none;
}

.app-shell--sidebar-collapsed .sidebar-collapse-btn__icon--expand {
    display: inline;
}

.sidebar-collapse-btn[aria-pressed="true"] {
    background: var(--primary-light);
    border-color: #7dd3fc;
    color: var(--primary);
}

.sidebar-toggle {
    display: none;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.4rem 0.65rem;
    cursor: pointer;
    font-size: 1.1rem;
}

.app-header-title {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--text);
}

.app-header-sub {
    font-size: 0.85rem;
    color: var(--muted);
    margin-top: 0.15rem;
}

.app-content {
    flex: 1;
    padding: 1.75rem 2rem 2rem;
    max-width: 1280px;
    width: 100%;
    box-sizing: border-box;
}

/* تمام‌عرض: پر کردن فضای کنار سایدبار (بدون ستون باریک راست) */
.app-content--full {
    max-width: none;
    width: 100%;
    align-self: stretch;
}

.app-footer {
    padding: 1rem 2rem;
    font-size: 0.78rem;
    color: var(--muted);
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    border-top: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.5);
}

.app-footer .dot { opacity: 0.4; }

/* ——— Auth / ورود ——— */
.auth-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    background: var(--bg-mesh);
    background-attachment: fixed;
    color: var(--text);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

.auth-card {
    width: 100%;
    max-width: 400px;
    background: var(--surface);
    padding: 2.25rem 2rem 2rem;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--border);
}

.auth-logo {
    text-align: center;
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--border);
}

.auth-logo .brand-mark,
.brand-mark--auth {
    width: 52px;
    height: 52px;
    margin: 0 auto 0.85rem;
    font-size: 1.1rem;
}

.auth-logo h1 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
}

.auth-logo p {
    color: var(--text-soft);
    font-size: 0.88rem;
    margin-top: 0.2rem;
}

.auth-logo small {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: var(--muted);
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.auth-form .alert {
    margin-bottom: 0.25rem;
}

.auth-form .btn-block {
    margin-top: 0.35rem;
}

.auth-pwd-wrap {
    position: relative;
}

.auth-pwd-wrap input {
    width: 100%;
    padding-left: 2.65rem;
}

.auth-pwd-toggle {
    position: absolute;
    left: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    border-radius: 6px;
    line-height: 0;
}

.auth-pwd-toggle:hover {
    color: var(--primary);
    background: var(--primary-light);
}

.auth-pwd-toggle__icon {
    width: 1.1rem;
    height: 1.1rem;
    display: block;
}

.auth-pwd-toggle__icon--hide {
    display: none;
}

.auth-pwd-toggle[aria-pressed="true"] .auth-pwd-toggle__icon--show {
    display: none;
}

.auth-pwd-toggle[aria-pressed="true"] .auth-pwd-toggle__icon--hide {
    display: block;
}

/* ——— Page layout ——— */
.page-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.page-toolbar .page-title { margin: 0; font-size: 0; }
.page-title { font-size: 1.35rem; font-weight: 700; }

.shipment-search-card {
    margin-bottom: 1rem;
    padding: 1.15rem 1.25rem;
}

/* ——— نوار جستجوی حواله (پلاک + شماره) ——— */
.shipment-search-toolbar {
    margin-bottom: 0.85rem;
    padding: 0.75rem 1rem 0.85rem;
    border: 1px solid var(--border);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.shipment-search-toolbar__form {
    margin: 0;
}

.shipment-search-toolbar__inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 0;
    direction: rtl;
}

.shipment-search-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    flex: 0 0 auto;
    min-width: 0;
}

.shipment-search-field__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--muted);
    line-height: 1.2;
    white-space: nowrap;
}

.shipment-search-field__label--empty {
    visibility: hidden;
    user-select: none;
}

.shipment-search-field__control {
    display: flex;
    align-items: center;
    min-height: 52px;
}

.shipment-search-field--plate .shipment-search-field__control {
    padding: 0;
}

.shipment-search-toolbar__divider {
    align-self: stretch;
    width: 1px;
    min-height: 52px;
    margin: 1.35rem 1rem 0;
    background: var(--border);
    flex-shrink: 0;
}

.shipment-search-field--hawaleh {
    flex: 0 0 11.5rem;
    width: 11.5rem;
}

.shipment-search-hawaleh-input {
    width: 100%;
    height: 52px;
    margin: 0;
    padding: 0 0.75rem;
    border: 2px solid var(--border-strong);
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.03em;
    box-sizing: border-box;
    background: #fff;
}

.shipment-search-hawaleh-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.shipment-search-field--action {
    flex: 0 0 auto;
    margin-right: 0.75rem;
}

.shipment-search-clear-btn {
    height: 52px;
    padding: 0 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

/* پلاک در نوار جستجو — هم‌ارتفاع با فیلد حواله */
.plate-widget--search {
    height: 52px;
    max-width: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    flex-shrink: 0;
    overflow: visible;
}

.plate-widget--search .plate-body {
    position: relative;
    overflow: visible;
    gap: 8px;
    padding: 0 10px;
}

.plate-widget--search .plate-blue-strip {
    flex: 0 0 30px;
    width: 30px;
    padding: 3px 2px 4px;
}

.plate-widget--search .plate-flag {
    width: 22px;
    height: 13px;
}

.plate-widget--search .plate-ir-en {
    font-size: 4.5px;
    line-height: 1.1;
}

.shipment-search-field--plate .shipment-search-field__control {
    overflow: visible;
}

.plate-widget--search .plate-letter {
    font-size: 1.45rem;
}

.plate-letter-picker {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.plate-letter-picker.is-open {
    z-index: 210;
}

.plate-letter-picker__btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 0.15rem 0.25rem 0.1rem;
    border: none;
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    color: inherit;
    line-height: 1;
    min-width: 1.85rem;
    transition: background 0.15s ease;
}

.plate-letter-picker__btn:hover,
.plate-letter-picker.is-open .plate-letter-picker__btn {
    background: rgba(255, 255, 255, 0.35);
}

.plate-letter-picker__btn:hover .plate-letter-picker__value,
.plate-letter-picker.is-open .plate-letter-picker__value {
    background: transparent;
    border-radius: 0;
}

.plate-letter-picker__btn:focus-visible {
    outline: 2px solid #003da5;
    outline-offset: 2px;
    border-radius: 4px;
}

.plate-letter-picker__value {
    display: block;
    font-size: 1.45rem;
    font-weight: 900;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    color: #000;
    padding: 0 0.1rem;
    line-height: 1.1;
}

.plate-letter-picker__caret {
    display: block;
    width: 0;
    height: 0;
    margin-top: 2px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid rgba(0, 0, 0, 0.55);
    transition: transform 0.15s ease;
}

.plate-letter-picker.is-open .plate-letter-picker__caret {
    transform: rotate(180deg);
}

.plate-letter-picker__menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 220;
    display: grid;
    grid-template-columns: repeat(4, 1.65rem);
    gap: 0.18rem;
    width: 7.5rem;
    padding: 0.32rem;
    background: #fff;
    border: 1.5px solid #111;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    max-height: 8.75rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #003da5 rgba(0, 0, 0, 0.08);
}

.plate-letter-picker__menu--floating {
    position: fixed;
    top: 0;
    left: 0;
    transform: translateX(-50%);
    z-index: 10050;
    margin: 0;
}

.plate-letter-picker__menu[hidden] {
    display: none;
}

.plate-letter-picker__menu::-webkit-scrollbar {
    width: 5px;
}

.plate-letter-picker__menu::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.06);
    border-radius: 999px;
}

.plate-letter-picker__menu::-webkit-scrollbar-thumb {
    background: #003da5;
    border-radius: 999px;
}

.plate-letter-picker__option {
    width: 1.65rem;
    height: 1.65rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    background: #f7d600;
    color: #000;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    font-size: 0.88rem;
    font-weight: 800;
    cursor: pointer;
    line-height: 1;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.plate-letter-picker__option:hover {
    background: #ffe566;
    border-color: #111;
}

.plate-letter-picker__option[aria-selected="true"] {
    background: #003da5;
    color: #fff;
    border-color: #003da5;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.plate-widget--search .plate-digit::placeholder {
    color: rgba(0, 0, 0, 0.38);
    font-weight: 800;
}

.plate-widget--search .plate-digit {
    color: #000;
    font-weight: 900;
}

.card-header--dashboard-list {
    flex-wrap: wrap;
    gap: 0.75rem;
}

.dashboard-list-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.dashboard-refresh-btn.is-loading .dashboard-refresh-btn__icon {
    animation: dashboard-spin 0.8s linear infinite;
}

@keyframes dashboard-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.dashboard-refresh-btn__icon {
    display: inline-block;
    font-size: 1.05rem;
    line-height: 1;
}

.card--dashboard-list .shipment-search-toolbar {
    margin: 0 0 1rem;
    border: none;
    box-shadow: none;
    padding: 0 1rem;
}

.plate-widget--search .plate-digit-2,
.plate-widget--search .plate-digit-3 {
    width: 2.1rem;
    height: 1.75rem;
    font-size: 1.15rem;
    line-height: 1.75rem;
}

.plate-widget--search .plate-digit-region {
    width: 2rem;
    height: 1.5rem;
    font-size: 1rem;
    line-height: 1.5rem;
}

.plate-widget--search .plate-region-box {
    min-width: 40px;
    padding: 2px 6px 3px;
}

.plate-widget--search .plate-iran-fa {
    font-size: 5.5pt;
    margin-bottom: 1px;
}

.plate-widget--search .plate-screw {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
}

@media (max-width: 860px) {
    .shipment-search-toolbar__inner {
        flex-wrap: wrap;
        gap: 0.75rem 1rem;
    }

    .shipment-search-toolbar__divider {
        display: none;
    }

    .shipment-search-field--hawaleh {
        flex: 1 1 10rem;
        width: auto;
        min-width: 9rem;
    }

    .shipment-search-field--plate {
        flex: 1 1 100%;
    }

    .shipment-search-field--plate .shipment-search-field__control {
        justify-content: center;
        width: 100%;
    }

    .shipment-search-field--action {
        margin-right: 0;
        flex: 1 1 auto;
    }

    .shipment-search-clear-btn {
        width: 100%;
    }
}

.shipment-search-form__fields {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
}

.shipment-search-form__input {
    flex: 1;
    min-width: min(100%, 280px);
    margin: 0;
}

.shipment-search-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.shipment-search-hint {
    margin: 0.75rem 0 0;
    font-size: 0.82rem;
}

.input-capacity {
    direction: ltr;
    text-align: left;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}
.page-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }

/* ——— Cards ——— */
.card {
    background: var(--surface);
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    transition: box-shadow var(--transition);
}

.card:hover { box-shadow: 0 8px 32px rgba(15, 23, 42, 0.08); }

.card h2 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1.15rem;
    padding-bottom: 0.65rem;
    border-bottom: 2px solid var(--primary-light);
    color: var(--text);
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.card-header h2 { margin: 0; border: none; padding: 0; }

/* ——— Stats ——— */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.15rem;
    margin-bottom: 1.75rem;
}

.stat-card {
    background: var(--surface);
    padding: 1.35rem 1.25rem;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}

.stat-card::before {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--primary), var(--accent));
    border-radius: 0 4px 4px 0;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow);
}

.stat-value {
    display: block;
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.stat-label {
    font-size: 0.82rem;
    color: var(--muted);
    margin-top: 0.35rem;
    font-weight: 500;
}

/* ——— Forms ——— */
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.15rem;
}

.form-grid .span-2 { grid-column: span 2; }

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.form-group label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-soft);
}

.form-group input:not(.plate-digit),
.form-group select,
.form-group textarea {
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.95rem;
    background: var(--surface-2);
    transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

.form-group input:not(.plate-digit):hover,
.form-group select:hover,
.form-group textarea:hover {
    border-color: #94a3b8;
}

.form-group input:not(.plate-digit):focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15);
}

/* ——— ثبت حواله فروش / کوتاژ ——— */
.ref-forms-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(320px, 1.15fr);
    gap: 1.25rem;
    margin-bottom: 1.75rem;
}

.ref-form-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.35rem 1.5rem 1.5rem;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
}

.ref-form-card--single {
    border-top: 4px solid var(--accent);
    background: linear-gradient(180deg, #fffbeb 0%, #ffffff 28%);
}

.ref-form-card--bulk {
    border-top: 4px solid var(--primary);
}

.ref-form-card__head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.35rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

.ref-form-card__head h2 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    border: none;
    padding: 0;
}

.ref-form-card__head p {
    margin: 0;
    font-size: 0.82rem;
    color: var(--muted);
    line-height: 1.45;
}

.ref-form-card__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--accent-light), #fef3c7);
    color: var(--accent);
    font-size: 1.35rem;
    font-weight: 700;
    display: grid;
    place-items: center;
    box-shadow: 0 4px 12px rgba(217, 119, 6, 0.15);
}

.ref-form-card__icon--muted {
    background: linear-gradient(135deg, var(--primary-light), #e0f2fe);
    color: var(--primary);
    box-shadow: 0 4px 12px rgba(3, 105, 161, 0.12);
}

.ref-form-single,
.ref-form-bulk {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    flex: 1;
}

.ref-form-single .form-group,
.ref-form-bulk .form-group {
    margin: 0;
}

.ref-form-single label,
.ref-form-bulk label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-soft);
}

.label .req,
.req { color: #dc2626; font-weight: 700; }

.input-field {
    width: 100%;
    padding: 0.75rem 0.95rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.95rem;
    background: #fff;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.input-field:hover { border-color: #94a3b8; }

.input-field:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.12);
}

.input-field--textarea {
    resize: vertical;
    min-height: 140px;
    font-family: ui-monospace, 'Cascadia Code', Consolas, monospace;
    font-size: 0.88rem;
    line-height: 1.55;
    direction: ltr;
    text-align: left;
}

.input-kg-wrap--field {
    display: flex;
    align-items: stretch;
    width: 100%;
    border-radius: var(--radius-sm);
    overflow: hidden;
    border: 1px solid var(--border-strong);
    background: #fff;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.input-kg-wrap--field:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.12);
}

.input-kg-wrap--field input {
    flex: 1;
    min-width: 0;
    border: none;
    border-radius: 0;
    padding: 0.75rem 0.95rem;
    font-size: 1.05rem;
    font-weight: 600;
    background: transparent;
    direction: ltr;
    text-align: left;
}

.input-kg-wrap--field input:focus {
    outline: none;
    box-shadow: none;
}

.input-kg-wrap--field .input-kg-suffix {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    padding: 0 0.75rem;
    background: linear-gradient(180deg, var(--primary-light), #bae6fd);
    color: var(--primary);
    font-size: 0.85rem;
    font-weight: 800;
    border: none;
    border-right: 1px solid var(--border);
    letter-spacing: 0.04em;
}

.field-hint {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.75rem;
    color: var(--muted);
}

.format-hint {
    margin-top: 0.65rem;
    padding: 0.65rem 0.85rem;
    background: var(--surface-2);
    border-radius: 8px;
    border: 1px dashed var(--border);
    font-size: 0.78rem;
    color: var(--text-soft);
    line-height: 1.6;
}

.format-hint code {
    background: #fff;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    border: 1px solid var(--border);
    font-size: 0.76rem;
}

.format-hint__example {
    display: block;
    margin-top: 0.35rem;
    color: var(--muted);
}

.form-actions-bar {
    margin-top: auto;
    padding-top: 0.5rem;
}

.form-actions-bar .btn {
    width: 100%;
    padding: 0.75rem 1.25rem;
    font-size: 0.92rem;
}

.btn-bulk-submit {
    border-width: 2px;
    font-weight: 600;
}

.btn-bulk-submit:hover {
    background: var(--primary-light);
}

/* لیست حواله فروش / کوتاژ — ظرفیت فقط خوانا، ویرایش در پنل */
.ref-list-table {
    width: 100%;
}

.ref-list-table__number {
    white-space: nowrap;
}

.ref-list-table__capacity {
    min-width: 220px;
}

.ref-list-table__actions-th,
.ref-list-table__actions {
    width: 1%;
    white-space: nowrap;
}

.ref-capacity-summary {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.ref-capacity-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
}

.ref-cap-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    font-size: 0.78rem;
    border: 1px solid var(--border);
    background: var(--surface-2);
}

.ref-cap-stat__label {
    color: var(--muted);
    font-weight: 600;
}

.ref-cap-stat__value {
    font-weight: 700;
    direction: ltr;
    unicode-bidi: isolate;
}

.ref-cap-stat--total {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.ref-cap-stat--used {
    border-color: #fde68a;
    background: #fffbeb;
}

.ref-cap-stat--rem {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.ref-capacity-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--border);
    overflow: hidden;
}

.ref-capacity-bar__fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), #38bdf8);
    transition: width 0.25s ease;
}

.ref-vehicle-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin-top: 0.5rem;
    padding-top: 0.45rem;
    border-top: 1px dashed var(--border);
    font-size: 0.78rem;
}

.ref-vehicle-summary__label {
    font-weight: 600;
    color: var(--muted);
}

.ref-vehicle-summary__value {
    font-weight: 700;
    color: var(--text);
}

.ref-vehicle-summary__rem {
    font-weight: 500;
    color: var(--muted);
}

.ref-vehicle-summary__badge {
    padding: 0.1rem 0.4rem;
    font-size: 0.65rem;
    font-weight: 700;
    color: #92400e;
    background: #fef3c7;
    border-radius: 4px;
}

.ref-edit-panel__subform {
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid var(--border);
}

.ref-edit-panel__hint {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
}

.salco-modal__list {
    margin: 0.5rem 0 0;
    padding: 0 1.1rem 0 0;
    font-size: 0.88rem;
    line-height: 1.55;
}

.salco-modal__list li {
    margin-bottom: 0.45rem;
}

.ref-usage-card__head {
    margin-bottom: 1rem;
}

.ref-usage-card__head h2 {
    margin: 0 0 0.25rem;
}

.ref-usage-card__lead {
    margin: 0;
    font-size: 0.85rem;
}

.ref-usage-filter {
    margin-bottom: 1rem;
}

.ref-usage-filter__inner {
    align-items: flex-end;
}

.ref-usage-result-meta {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: var(--muted);
}

.ref-usage-empty {
    margin-top: 0.5rem;
}

.ref-usage-export-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.ref-usage-export-actions .btn {
    white-space: nowrap;
}

.shipment-report-page .shipment-report-filters h2 {
    margin: 0 0 1rem;
    font-size: 1.1rem;
}

.shipment-report-form__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.85rem 1rem;
    margin-bottom: 1rem;
}

.shipment-report-form__plate {
    margin-bottom: 1rem;
}

.shipment-report-form__plate-label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.4rem;
    color: var(--text);
}

.form-section-head {
    grid-column: 1 / -1;
    margin-top: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--border);
}

.form-section-head h3 {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.form-section-head p {
    margin: 0;
    font-size: 0.85rem;
}

/* ——— فرم ثبت خودرو + درخواست تأیید ——— */
.vehicle-intake-page {
    max-width: 920px;
}

/* ثبت خودرو: عرض کامل + چیدمان فشرده‌تر */
.vehicle-intake-page--register,
.shipment-create-page {
    max-width: none;
    width: 100%;
}

.shipment-create-page .form-hint {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: var(--text-soft);
}

.shipment-create-page .form-hint a {
    font-weight: 600;
}

.shipment-create-page textarea {
    min-height: 2.35rem;
    resize: vertical;
}

.shipment-create-form__grid--vehicle {
    grid-template-columns: 1fr;
}

@media (min-width: 900px) {
    .shipment-create-page .vehicle-form-block--intake .vehicle-intake-form__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .shipment-create-page .vehicle-form-block--intake .vehicle-intake-form__grid .span-2 {
        grid-column: 1 / -1;
    }
}

.vehicle-intake-page--register .vehicle-form-block {
    padding: 1.1rem 1.35rem;
}

.vehicle-intake-page--register .vehicle-form-block__head {
    margin-bottom: 0.85rem;
}

.vehicle-intake-page--register textarea {
    min-height: 2.35rem;
    resize: vertical;
}

.vehicle-intake-card {
    padding: 0;
    overflow: visible;
}

.vehicle-intake-form {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.vehicle-form-block {
    padding: 1.35rem 1.5rem;
}

.vehicle-form-block + .vehicle-form-block--intake {
    border-top: 1px solid var(--border);
}

.vehicle-form-block--intake {
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.vehicle-form-block__head {
    margin-bottom: 1.15rem;
}

.vehicle-form-block__head h2,
.vehicle-form-block__head h3 {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
}

.vehicle-form-block__head p {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.5;
}

.vehicle-intake-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.15rem;
}

.vehicle-intake-form__grid .span-2 {
    grid-column: 1 / -1;
}

.vehicle-intake-form .form-group label .req {
    color: #dc2626;
}

.vehicle-intake-form .field-readonly {
    background: #f1f5f9 !important;
    color: var(--text-soft);
    cursor: default;
}

.vehicle-intake-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    justify-content: flex-start;
    padding: 1.1rem 1.5rem;
    background: var(--surface-2);
    border-top: 1px solid var(--border);
}

@media (min-width: 1024px) {
    .vehicle-intake-page--register .vehicle-form-block--vehicle .plate-field--hero {
        margin-bottom: 0;
    }

    .vehicle-intake-page--register .vehicle-form-block--vehicle .vehicle-intake-form__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .vehicle-intake-page--register .vehicle-form-block--vehicle .vehicle-intake-form__grid .span-2 {
        grid-column: 1 / -1;
    }

    .vehicle-intake-page--register .vehicle-form-block--intake .vehicle-intake-form__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .vehicle-intake-page--register .vehicle-form-block--intake .vehicle-intake-form__grid .span-2 {
        grid-column: span 2;
    }
}

@media (min-width: 1280px) {
    .vehicle-intake-page--register .vehicle-form-block--intake .vehicle-intake-form__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .vehicle-intake-page--register .vehicle-form-block--intake .vehicle-intake-form__grid .span-2 {
        grid-column: span 2;
    }

    .vehicle-intake-page--register .vehicle-form-block--intake .vehicle-intake-form__grid .form-group.span-2:last-child {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1536px) {
    .vehicle-intake-page--register .vehicle-form-block--vehicle .vehicle-intake-form__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .vehicle-intake-page--register .vehicle-form-block--vehicle .vehicle-intake-form__grid .span-2 {
        grid-column: span 2;
    }
}

@media (max-width: 720px) {
    .vehicle-intake-form__grid {
        grid-template-columns: 1fr;
    }

    .vehicle-intake-form__grid .span-2 {
        grid-column: span 1;
    }

    .vehicle-form-block {
        padding: 1rem 1.1rem;
    }

    .vehicle-intake-form__actions {
        padding: 1rem 1.1rem;
    }
}

.hidden {
    display: none !important;
}

.intake-audit-panel {
    margin: 0 1.5rem 1.15rem;
    padding: 1rem 1.15rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.intake-audit-panel__title {
    margin: 0 0 0.75rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-soft);
}

.intake-audit-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem 1.25rem;
    margin: 0;
}

.intake-audit-panel__item {
    margin: 0;
}

.intake-audit-panel__item dt {
    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
}

.intake-audit-panel__item dd {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text);
}

.intake-review-hint {
    padding: 0 1.5rem 0.65rem;
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.55;
}

.intake-audit-panel__grid--compact {
    grid-template-columns: minmax(160px, 240px) minmax(0, 1fr);
}

.intake-audit-panel__item--wide {
    grid-column: span 1;
}

.intake-review-vehicle--readonly {
    margin: 0 1.5rem 1rem;
    padding: 1rem 1.15rem;
    background: var(--surface-2);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}

.intake-changes-panel {
    margin: 0 1.5rem 1.15rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

.intake-changes-panel__title {
    margin: 0 0 0.75rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-soft);
}

.intake-changes-panel__empty {
    margin: 0;
    font-size: 0.85rem;
}

.intake-changes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.intake-changes-list__item {
    padding: 0.75rem 0.85rem;
    background: var(--surface-2);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}

.intake-changes-list__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
    margin-bottom: 0.5rem;
    font-size: 0.82rem;
}

.intake-changes-diff {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.82rem;
    line-height: 1.5;
}

.intake-changes-diff__label {
    font-weight: 600;
    color: var(--text-soft);
}

.intake-changes-diff__old {
    color: #b45309;
    text-decoration: line-through;
    text-decoration-color: rgba(180, 83, 9, 0.45);
}

.intake-changes-diff__arrow {
    margin: 0 0.25rem;
    color: var(--muted);
}

.intake-changes-diff__new {
    font-weight: 600;
    color: #047857;
}

.shipment-edit-panel {
    margin-bottom: 1.25rem;
    padding: 0;
    overflow: visible;
}

.shipment-edit-panel__head {
    padding: 1.15rem 1.5rem 0.5rem;
    border-bottom: 1px solid var(--border);
}

.shipment-edit-panel__head h2 {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.shipment-edit-panel__audit {
    margin: 1rem 1.5rem 0;
}

.shipment-edit-panel .shipment-changes-panel {
    margin: 1rem 1.5rem 0;
}

.shipment-edit-panel__warn {
    margin: 1rem 1.5rem 0;
}

.shipment-edit-panel__idle,
.print-note-panel__idle {
    padding: 1rem 1.5rem 1.25rem;
}

.shipment-edit-panel__form-wrap[hidden],
.print-note-form[hidden] {
    display: none !important;
}

.shipment-edit-panel.is-editing .shipment-edit-panel__warn {
    margin-bottom: 0;
}

.shipment-edit-panel__form-wrap {
    padding: 0 0 0.25rem;
}

.shipment-edit-form .vehicle-intake-form__actions {
    border-top: 1px solid var(--border);
}

.print-note-panel__idle + .print-note-readonly {
    margin-bottom: 0.75rem;
}

.intake-review-detail__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin-bottom: 1.25rem;
}

.intake-review-detail__head h2 {
    margin: 0;
    font-size: 1.15rem;
}

.intake-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.shipment-report-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    direction: rtl;
}

.shipment-report-form__actions-main {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.report-cols-picker {
    position: relative;
    flex-shrink: 0;
}

.report-cols-picker__trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.88rem;
}

.report-cols-picker__icon {
    flex-shrink: 0;
    opacity: 0.75;
}

.report-cols-picker__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--primary-light);
    color: var(--primary);
    line-height: 1.4;
}

.report-cols-picker__chevron {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -0.15rem;
    opacity: 0.55;
    transition: transform 0.15s ease;
}

.report-cols-picker.is-open .report-cols-picker__chevron {
    transform: rotate(-135deg);
    margin-top: 0.1rem;
}

.report-cols-picker__menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    right: 0;
    z-index: 120;
    width: min(42rem, calc(100vw - 2rem));
    padding: 0.85rem 1rem 1rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.14);
}

.report-cols-picker__menu[hidden] {
    display: none;
}

.report-cols-picker__menu-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--border);
}

.report-cols-picker__menu-head strong {
    font-size: 0.9rem;
}

.report-cols-picker__menu-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.report-cols-picker__groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.85rem;
    max-height: min(22rem, 50vh);
    overflow-y: auto;
}

.report-cols-group {
    padding: 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface-2);
}

.report-cols-group__title {
    margin: 0 0 0.5rem;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--text-soft);
}

.report-cols-group__chips {
    gap: 0.35rem;
}

.report-cols-group .stage-flag-chip__box {
    font-size: 0.76rem;
    padding: 0.32rem 0.62rem;
}

.report-cols-picker__hint {
    margin: 0.65rem 0 0;
    font-size: 0.75rem;
}

@media (max-width: 720px) {
    .shipment-report-form__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .shipment-report-form__actions-main {
        width: 100%;
    }

    .report-cols-picker {
        width: 100%;
    }

    .report-cols-picker__trigger {
        width: 100%;
        justify-content: center;
    }

    .report-cols-picker__menu {
        right: 0;
        left: 0;
        width: auto;
    }

    .report-cols-picker__groups {
        grid-template-columns: 1fr;
    }
}

.shipment-report-result-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.shipment-report-summary {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    max-width: 100%;
}

.shipment-report-page .table-wrap--wide {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.shipment-report-page .shipment-report-table {
    width: 100%;
    min-width: max-content;
    max-width: 100%;
    table-layout: auto;
    border-collapse: collapse;
}

.shipment-report-page .shipment-report-table th,
.shipment-report-page .shipment-report-table td {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    font-size: 0.78rem;
    line-height: 1.45;
    padding: 0.5rem 0.4rem;
    vertical-align: middle;
}

.shipment-report-page .shipment-report-table th {
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--surface-2);
}

.shipment-report-page .shipment-report-table th:nth-child(5),
.shipment-report-page .shipment-report-table td:nth-child(5) {
    min-width: 12.75rem;
    width: 12.75rem;
}

.shipment-report-page .shipment-report-table .plate-cell {
    white-space: nowrap;
    padding: 0.4rem 0.5rem;
    overflow: visible;
    vertical-align: middle;
}

.shipment-report-page .shipment-report-table td:nth-child(1) {
    font-weight: 600;
}

.shipment-report-page .shipment-report-table td:nth-child(8),
.shipment-report-page .shipment-report-table td:nth-child(9),
.shipment-report-page .shipment-report-table td:nth-child(11) {
    white-space: nowrap;
    text-align: center;
}

.shipment-report-page .shipment-report-table th:nth-child(8),
.shipment-report-page .shipment-report-table th:nth-child(9),
.shipment-report-page .shipment-report-table th:nth-child(11) {
    text-align: center;
}

@media (min-width: 1200px) {
    .shipment-report-form__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1600px) {
    .shipment-report-form__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .app-content:has(.shipment-report-page) {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.ref-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.ref-delete-form {
    display: inline;
    margin: 0;
}

.ref-delete-locked {
    font-size: 0.85rem;
    color: var(--muted);
    padding: 0 0.25rem;
}

.ref-edit-row td {
    padding: 0 !important;
    border-bottom: 2px solid var(--primary-light);
    background: #f8fafc;
}

.ref-edit-panel {
    margin: 0.75rem 1rem 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}

.ref-edit-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--border);
}

.ref-edit-panel__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.ref-edit-panel__snapshot {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.5rem 1rem;
    margin: 0 0 0.85rem;
    padding: 0;
}

.ref-edit-panel__snapshot > div {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.ref-edit-panel__snapshot dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
}

.ref-edit-panel__snapshot dd {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
}

.ref-edit-panel__warn {
    margin: 0 0 0.85rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.8rem;
    line-height: 1.55;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
}

.ref-edit-panel__field {
    max-width: 320px;
    margin-bottom: 0.85rem;
}

.ref-edit-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ref-edit-toggle[aria-expanded="true"] {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary);
}

/* سازگاری با فرم‌های قدیمی */
.input-kg-wrap {
    display: flex;
    align-items: stretch;
}

.input-kg-wrap input {
    flex: 1;
    min-width: 0;
}

.input-kg-suffix {
    display: flex;
    align-items: center;
    padding: 0 0.85rem;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 0.8rem;
    font-weight: 700;
    border: 1px solid var(--border-strong);
    white-space: nowrap;
}

.form-actions { display: flex; gap: 0.75rem; margin-top: 0.75rem; flex-wrap: wrap; }
.form-inline { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; }
.advance-form { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.advance-form .form-group { min-width: 200px; }

/* ——— پلاک ایران (شبیه پلاک استاندارد) ——— */
.plate-field label {
    display: block;
    margin-bottom: 0.65rem;
}

.plate-field-inner {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
    overflow: visible;
}

/* ورودی پلاک داخل form-grid (ویرایش خودرو و …) — بدون باکس سفید فرم */
.form-grid .plate-field,
.form-group.plate-field {
    min-width: 0;
}

.form-grid .plate-field .plate-widget .plate-digit,
.form-group.plate-field .plate-widget .plate-digit {
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    font-weight: 900;
    line-height: 1;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}

.form-grid .plate-field .plate-widget .plate-digit:hover,
.form-group.plate-field .plate-widget .plate-digit:hover {
    border: none;
    background: rgba(255, 255, 255, 0.15);
    box-shadow: none;
}

.form-grid .plate-field .plate-widget .plate-digit:focus,
.form-group.plate-field .plate-widget .plate-digit:focus {
    outline: none;
    border: none;
    background: rgba(255, 255, 255, 0.22);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.form-grid .plate-hint,
.plate-field .plate-hint {
    text-align: center;
    width: 100%;
}

.plate-widget {
    display: inline-flex;
    flex-direction: row;
    align-items: stretch;
    width: max-content;
    max-width: 100%;
    height: 58px;
    border: 2px solid #000;
    border-radius: 2px;
    overflow: hidden;
    background: #f7d600;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
    direction: ltr;
}

.plate-widget.plate-widget--search {
    overflow: visible;
}

.plate-widget.plate-widget--search .plate-body {
    overflow: visible;
}

/* نوار آبی چپ + پرچم + I.R. IRAN */
.plate-blue-strip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 34px;
    width: 34px;
    padding: 4px 3px 5px;
    background: #003da5;
}

.plate-flag {
    display: flex;
    flex-direction: column;
    width: 26px;
    height: 16px;
    border: 0.5px solid rgba(0, 0, 0, 0.35);
    overflow: hidden;
    flex-shrink: 0;
}

.plate-flag-green { flex: 1; background: #239f40; }
.plate-flag-white {
    flex: 1;
    background: #fff;
    position: relative;
}
.plate-flag-white::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 5px;
    margin: -2.5px 0 0 -2.5px;
    border-radius: 50%;
    background: #da0000;
    box-shadow: 0 0 0 1px #da0000;
}
.plate-flag-red { flex: 1; background: #da0000; }

.plate-ir-en {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 5.5px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    color: #fff;
    letter-spacing: 0.2px;
    text-transform: uppercase;
}

/* بخش زرد اعداد */
.plate-body {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex: 0 0 auto;
    padding: 0 18px;
    background: #f7d600;
}

.plate-screw {
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #fff 0%, #e8e8e8 45%, #c4c4c4 100%);
    border: 0.5px solid #999;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);
}

.plate-letter {
    flex: 0 0 auto;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    color: #000;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    user-select: none;
    margin-top: 2px;
}

.plate-digit {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: #000;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    font-weight: 900;
    font-variant-numeric: normal;
    text-align: center;
    line-height: 1;
    box-sizing: border-box;
    direction: ltr;
    unicode-bidi: plaintext;
    -moz-appearance: textfield;
}

.plate-digit::-webkit-outer-spin-button,
.plate-digit::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.plate-digit-2 {
    width: 64px;
    min-width: 64px;
    font-size: 1.9rem;
    letter-spacing: 0.08em;
}

.plate-digit-3 {
    width: 88px;
    min-width: 88px;
    font-size: 1.9rem;
    letter-spacing: 0.1em;
}

.plate-digit::placeholder {
    color: rgba(0, 0, 0, 0.22);
    font-weight: 800;
}

.plate-digit:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
}

/* جعبه ایران — سمت راست */
.plate-region-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 54px;
    padding: 5px 12px 4px;
    background: #fff;
    border-left: 2px solid #000;
}

.plate-iran-fa {
    font-size: 0.58rem;
    font-weight: 800;
    color: #000;
    line-height: 1;
    margin-bottom: 3px;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
}

.plate-digit-region {
    width: 48px;
    min-width: 48px;
    font-size: 1.55rem;
    font-weight: 900;
    letter-spacing: 0.06em;
}

.plate-hint {
    margin: 0;
    font-size: 0.8rem;
    color: var(--text-soft, #64748b);
    text-align: right;
}

.plate-hint strong {
    color: var(--text, #0f172a);
}

/* پلاک در فرم ثبت/تأیید خودرو — باکس مرکزی (بعد از استایل عمومی پلاک) */
.vehicle-intake-form .plate-field--hero {
    margin-bottom: 1.25rem;
    min-width: 0;
}

.vehicle-intake-form .plate-field__label {
    display: block;
    margin-bottom: 0.55rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-soft);
    text-align: right;
}

.vehicle-intake-form .plate-field__box {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
    min-width: 0;
}

.vehicle-intake-form .plate-field-inner {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 100%;
    padding: 0.15rem 0;
    overflow: visible;
}

.vehicle-intake-form .plate-input-scaler > .plate-widget--input {
    margin-inline: auto;
}

.vehicle-intake-page--register .vehicle-form-block__split {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.vehicle-intake-page--register .plate-field--hero {
    width: 100%;
    min-width: 0;
}

.vehicle-intake-form .plate-hint {
    margin: 0;
    font-size: 0.8rem;
    color: var(--muted);
    text-align: center;
    width: 100%;
}

.intake-review-detail.vehicle-intake-card > .intake-review-detail__head,
.intake-review-detail.vehicle-intake-card > .detail-grid.intake-review-vehicle {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
}

.intake-review-detail.vehicle-intake-card > .intake-review-detail__head {
    padding-top: 1.35rem;
}

.intake-review-detail.vehicle-intake-card > .detail-grid.intake-review-vehicle {
    padding-bottom: 0.5rem;
    margin-bottom: 0;
}

/* پلاک فقط نمایشی (لیست، جزئیات، چاپ) */
.plate-widget--display {
    vertical-align: middle;
    user-select: text;
}

.plate-display-num {
    flex: 0 0 auto;
    font-family: 'Vazirmatn', Tahoma, sans-serif;
    font-weight: 900;
    color: #000;
    line-height: 1;
    direction: ltr;
    unicode-bidi: isolate;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.08em;
}

.plate-display-num-2 {
    font-size: 1.9rem;
    min-width: 2.1rem;
    text-align: center;
}

.plate-display-num-3 {
    font-size: 1.9rem;
    min-width: 3.2rem;
    text-align: center;
    letter-spacing: 0.1em;
}

.plate-display-num-region {
    font-size: 1.55rem;
    min-width: 2rem;
    text-align: center;
}

.plate-widget--sm {
    height: 48px;
}

.plate-widget--sm .plate-blue-strip {
    flex: 0 0 28px;
    width: 28px;
    padding: 3px 2px 4px;
}

.plate-widget--sm .plate-flag { width: 22px; height: 13px; }
.plate-widget--sm .plate-ir-en { font-size: 5px; }
.plate-widget--sm .plate-body { gap: 8px; padding: 0 10px; }
.plate-widget--sm .plate-screw { width: 7px; height: 7px; flex: 0 0 7px; }
.plate-widget--sm .plate-letter { font-size: 1.55rem; }
.plate-widget--sm .plate-display-num-2,
.plate-widget--sm .plate-display-num-3 { font-size: 1.45rem; }
.plate-widget--sm .plate-display-num-region { font-size: 1.2rem; }
.plate-widget--sm .plate-region-box { min-width: 44px; padding: 4px 8px 3px; }
.plate-widget--sm .plate-iran-fa { font-size: 0.5rem; }

.plate-widget--xs {
    height: 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.plate-widget--xs .plate-blue-strip {
    flex: 0 0 24px;
    width: 24px;
}

.plate-widget--xs .plate-flag { width: 18px; height: 11px; }
.plate-widget--xs .plate-ir-en { font-size: 4.5px; }
.plate-widget--xs .plate-body { gap: 6px; padding: 0 8px; }
.plate-widget--xs .plate-letter { font-size: 1.25rem; }
.plate-widget--xs .plate-display-num-2,
.plate-widget--xs .plate-display-num-3 { font-size: 1.15rem; }
.plate-widget--xs .plate-display-num-region { font-size: 1rem; }
.plate-widget--xs .plate-region-box { min-width: 38px; padding: 3px 6px 2px; }
.plate-widget--xs .plate-iran-fa { font-size: 0.42rem; margin-bottom: 2px; }

/* پلاک فشرده — کارت‌های کانبان / ستون‌های باریک */
.plate-widget--xxs {
    height: 30px;
    border-width: 1.5px;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);
}

.plate-widget--xxs .plate-blue-strip {
    flex: 0 0 18px;
    width: 18px;
    padding: 2px 1px 3px;
}

.plate-widget--xxs .plate-flag { width: 14px; height: 8px; }
.plate-widget--xxs .plate-ir-en { font-size: 3.5px; line-height: 1.1; }
.plate-widget--xxs .plate-body { gap: 3px; padding: 0 4px; }
.plate-widget--xxs .plate-screw { width: 4px; height: 4px; flex: 0 0 4px; }
.plate-widget--xxs .plate-letter { font-size: 0.82rem; margin-top: 0; }
.plate-widget--xxs .plate-display-num-2,
.plate-widget--xxs .plate-display-num-3 { font-size: 0.76rem; letter-spacing: 0; }
.plate-widget--xxs .plate-display-num-region { font-size: 0.68rem; letter-spacing: 0; }
.plate-widget--xxs .plate-region-box {
    flex: 0 0 auto;
    min-width: 22px;
    padding: 1px 3px 1px;
    border-left-width: 1.5px;
}
.plate-widget--xxs .plate-iran-fa { font-size: 0.32rem; margin-bottom: 1px; line-height: 1; }

/* پلاک مخصوص کارت پیگیری زنده — اندازه ثابت، بدون مقیاس و اسکرول */
.plate-widget--track {
    height: 36px;
    max-width: none;
    border-width: 1.5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.plate-widget--track .plate-blue-strip {
    flex: 0 0 22px;
    width: 22px;
    padding: 3px 2px 4px;
}

.plate-widget--track .plate-flag { width: 16px; height: 10px; }
.plate-widget--track .plate-ir-en { font-size: 4px; line-height: 1.1; }
.plate-widget--track .plate-body { gap: 5px; padding: 0 7px; }
.plate-widget--track .plate-screw { width: 5px; height: 5px; flex: 0 0 5px; }
.plate-widget--track .plate-letter { font-size: 0.92rem; margin-top: 0; }
.plate-widget--track .plate-display-num-2,
.plate-widget--track .plate-display-num-3 { font-size: 0.86rem; letter-spacing: 0; }
.plate-widget--track .plate-display-num-region { font-size: 0.78rem; letter-spacing: 0; }
.plate-widget--track .plate-region-box {
    flex: 0 0 auto;
    min-width: 26px;
    padding: 2px 4px 1px;
    border-left-width: 1.5px;
}
.plate-widget--track .plate-iran-fa { font-size: 0.36rem; margin-bottom: 1px; line-height: 1; }

/* ——— پلاک واکنش‌گرا: مقیاس با عرض ظرف (فقط نمایش، نه ورودی) ——— */
.plate-fit-host {
    container-type: inline-size;
    width: 100%;
    min-width: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.plate-fit-host > .plate-widget {
    --plate-ratio: 18;
    --plate-max-fs: 11px;
    --plate-min-fs: 6.5px;
    font-size: clamp(var(--plate-min-fs), calc(100cqw / var(--plate-ratio)), var(--plate-max-fs));
    height: 5.27em;
    width: max-content;
    max-width: none;
    border-width: 0.18em;
    box-shadow: 0 0.36em 1em rgba(0, 0, 0, 0.14);
}

.plate-fit-host[data-plate-size="md"] > .plate-widget {
    --plate-ratio: 15.5;
    --plate-max-fs: 11px;
}

.plate-fit-host[data-plate-size="sm"] > .plate-widget {
    --plate-ratio: 16.5;
    --plate-max-fs: 10.5px;
}

.plate-fit-host[data-plate-size="xs"] > .plate-widget {
    --plate-ratio: 19;
    --plate-max-fs: 9.5px;
}

.plate-fit-host[data-plate-size="xxs"] > .plate-widget {
    --plate-ratio: 20;
    --plate-max-fs: 9px;
}

.plate-fit-host[data-plate-size="track"] > .plate-widget {
    --plate-ratio: 18;
    --plate-max-fs: 10px;
}

.plate-fit-host .plate-blue-strip {
    flex: 0 0 3.09em;
    width: 3.09em;
    padding: 0.36em 0.27em 0.45em;
}

.plate-fit-host .plate-flag {
    width: 2.36em;
    height: 1.45em;
}

.plate-fit-host .plate-ir-en {
    font-size: 0.5em;
    line-height: 1.12;
}

.plate-fit-host .plate-body {
    gap: 0.55em;
    padding: 0 0.75em;
    flex: 1 1 auto;
    min-width: 0;
}

.plate-fit-host .plate-screw {
    width: 0.82em;
    height: 0.82em;
    flex: 0 0 0.82em;
}

.plate-fit-host .plate-letter {
    font-size: 1.82em;
    margin-top: 0.09em;
}

.plate-fit-host .plate-display-num {
    letter-spacing: 0.02em;
}

.plate-fit-host .plate-display-num-2,
.plate-fit-host .plate-display-num-3 {
    font-size: 1.73em;
    min-width: unset;
}

.plate-fit-host .plate-display-num-region {
    font-size: 1.41em;
    min-width: unset;
}

.plate-fit-host .plate-region-box {
    flex: 0 0 auto;
    min-width: 3.2em;
    padding: 0.36em 0.55em 0.27em;
    border-left-width: 0.18em;
}

.plate-fit-host .plate-iran-fa {
    font-size: 0.53em;
    margin-bottom: 0.18em;
}

/* ورودی پلاک — کامل (شامل ایران) + جا شدن در عرض بدون اسکرول */
.plate-field-inner {
    width: 100%;
    min-width: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.plate-input-scaler {
    --plate-input-natural-px: 406;
    container-type: inline-size;
    width: 100%;
    margin-inline: auto;
    display: flex;
    justify-content: center;
    overflow: visible;
    padding: 0.15rem 0;
}

.plate-input-scaler > .plate-widget--input {
    display: inline-flex;
    flex-shrink: 0;
    width: max-content;
    max-width: none;
    height: 58px;
    margin: 0;
    overflow: visible;
    zoom: min(1, calc(100cqw / (var(--plate-input-natural-px) * 1px)));
}

@supports not (zoom: 1) {
    .plate-input-scaler > .plate-widget--input {
        transform: scale(min(1, calc(100cqw / (var(--plate-input-natural-px) * 1px))));
        transform-origin: center center;
    }
}

.plate-input-scaler > .plate-widget--input .plate-blue-strip {
    flex: 0 0 34px;
    width: 34px;
    padding: 4px 3px 5px;
}

.plate-input-scaler > .plate-widget--input .plate-flag {
    width: 26px;
    height: 16px;
}

.plate-input-scaler > .plate-widget--input .plate-ir-en {
    font-size: 5.5px;
    line-height: 1.15;
}

.plate-input-scaler > .plate-widget--input .plate-body {
    flex: 0 0 auto;
    gap: 14px;
    padding: 0 18px;
}

.plate-input-scaler > .plate-widget--input .plate-screw {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
}

.plate-input-scaler > .plate-widget--input .plate-letter {
    font-size: 2rem;
    margin-top: 2px;
}

.plate-input-scaler > .plate-widget--input .plate-region-box {
    flex: 0 0 auto;
    min-width: 54px;
    padding: 5px 12px 4px;
    border-left-width: 2px;
}

.plate-input-scaler > .plate-widget--input .plate-iran-fa {
    font-size: 0.58rem;
    margin-bottom: 3px;
}

.plate-input-scaler > .plate-widget--input .plate-digit-2 {
    width: 64px;
    min-width: 64px;
    max-width: 64px;
    font-size: 1.9rem;
    letter-spacing: 0.08em;
}

.plate-input-scaler > .plate-widget--input .plate-digit-3 {
    width: 88px;
    min-width: 88px;
    max-width: 88px;
    font-size: 1.9rem;
    letter-spacing: 0.1em;
}

.plate-input-scaler > .plate-widget--input .plate-digit-region {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    font-size: 1.55rem;
    letter-spacing: 0.06em;
}

.plate-input-scaler > .plate-widget--input .plate-digit::placeholder {
    color: rgba(0, 0, 0, 0.38);
}

.plate-cell {
    display: table-cell;
    vertical-align: middle;
    text-align: start;
}

.table-wrap .plate-cell,
.shipments-list-table .plate-cell,
.shipment-report-table .plate-cell {
    display: table-cell;
}

.print-table .plate-cell,
.print-table td:has(.plate-widget) {
    padding: 0.35rem 0.5rem;
    vertical-align: middle;
}

.plate-fallback {
    direction: ltr;
    unicode-bidi: isolate;
    font-weight: 700;
}

/* ——— Buttons ——— */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.6rem 1.2rem;
    border-radius: var(--radius-sm);
    border: none;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}

.btn:active { transform: scale(0.98); }

.btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, #0ea5e9 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(3, 105, 161, 0.35);
}

.btn-primary:hover {
    color: #fff;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(3, 105, 161, 0.45);
}

.btn-outline {
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--text-soft);
}

.btn-outline:hover {
    background: var(--surface-2);
    text-decoration: none;
    border-color: var(--primary);
    color: var(--primary);
}

.btn-ghost {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #e2e8f0;
}

.btn-ghost:hover { background: rgba(255, 255, 255, 0.18); color: #fff; text-decoration: none; }

.btn-danger {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff;
}

.btn-sm { padding: 0.4rem 0.85rem; font-size: 0.8rem; }
.btn-block { width: 100%; }
.btn-group { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* ——— Tables ——— */
.table-wrap {
    overflow-x: auto;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

th, td {
    padding: 0.85rem 1rem;
    text-align: right;
    border-bottom: 1px solid var(--border);
}

th {
    background: var(--surface-2);
    font-weight: 700;
    font-size: 0.75rem;
    color: var(--muted);
    text-transform: none;
    letter-spacing: 0.02em;
}

tbody tr {
    transition: background var(--transition);
}

tbody tr:hover { background: #f8fafc; }

tbody tr:last-child td { border-bottom: none; }

.actions-cell { white-space: nowrap; }

/* ——— Badges & tabs ——— */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.badge-blue { background: #dbeafe; color: #1d4ed8; }
.badge-green { background: #dcfce7; color: #15803d; }
.badge-red { background: #fee2e2; color: #b91c1c; }
.badge-gray { background: #f1f5f9; color: #475569; }
.badge-amber { background: #fef3c7; color: #b45309; }

.table-actions {
    white-space: nowrap;
}

.table-actions .btn-sm {
    padding: 0.35rem 0.65rem;
    font-size: 0.8rem;
}

.card-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.card-head-row h2 {
    margin: 0;
}

.card-danger-zone {
    border-color: #fecaca;
    background: linear-gradient(180deg, #fff 0%, #fef2f2 100%);
}

.card--loading-decline {
    border-color: #fde68a;
    background: linear-gradient(180deg, #fff 0%, #fffbeb 100%);
}

.card--loading-decline .detail-list--compact {
    margin: 0.75rem 0 1rem;
    font-size: 0.88rem;
}

.vehicle-live-status--declined .badge {
    font-weight: 700;
}

.inline-form-btn {
    display: inline-block;
    margin: 0;
}

.inline-form-btn .btn {
    vertical-align: middle;
}

.btn-danger-outline {
    border-color: #fca5a5 !important;
    color: #b91c1c !important;
}

.btn-danger-outline:hover {
    background: #fef2f2 !important;
}

.stage-perm-section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px dashed var(--border, #e2e8f0);
}

.stage-perm-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
}

.stage-perm-hint {
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
}

.stage-perm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.5rem 1rem;
}

.stage-perm-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    background: var(--surface-2, #f8fafc);
    font-size: 0.85rem;
    cursor: pointer;
}

.stage-perm-item input {
    flex-shrink: 0;
}

.stage-perm-tag {
    font-size: 0.65rem;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    background: #dbeafe;
    color: #1d4ed8;
}

.stage-perm-tag--exit {
    background: #fee2e2;
    color: #b91c1c;
}

.stage-perm-tag--weigh {
    background: #ede9fe;
    color: #6d28d9;
}

.stage-perm-tag--loading {
    background: #dbeafe;
    color: #1d4ed8;
}

.stage-perm-tag--reentry {
    background: #f5f3ff;
    color: #5b21b6;
}

.stage-config-summary {
    margin-bottom: 1rem;
}

.stage-config-summary h2 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.dashboard-advance-cell {
    min-width: 0;
    max-width: 360px;
    vertical-align: middle;
}

.dashboard-advance-form,
.stage-action-form {
    margin: 0;
}

.stage-action {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.55rem 0.65rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}

.stage-action--weigh {
    border-top: 3px solid var(--primary);
}

.stage-action--exit {
    border-top: 3px solid #ef4444;
}

.stage-action__head {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.stage-action__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.stage-action__title {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-soft);
}

.stage-action__body {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.4rem;
}

.input-kg-wrap--weigh {
    flex: 1;
    min-width: 120px;
    max-width: 150px;
}

.input-kg-wrap--weigh input {
    font-size: 0.92rem;
    font-weight: 700;
    padding: 0.5rem 0.65rem;
}

.stage-action__btn {
    align-self: stretch;
    white-space: nowrap;
    padding-inline: 0.85rem;
}

.stage-action--next {
    padding: 0.4rem;
    border-top: 3px solid var(--primary);
}

.stage-action__btn--wide {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.55rem 0.75rem;
}

.stage-action__btn-label {
    font-size: 0.72rem;
    font-weight: 600;
    opacity: 0.9;
}

.stage-action__btn-stage {
    font-size: 0.85rem;
    font-weight: 800;
}

.stage-action__btn-stage::before {
    content: '← ';
}

/* توزین پر — طرح فشرده */
.stage-action--full-weigh {
    padding: 0.5rem 0.6rem;
    border-top-width: 2px;
}

.stage-action--full-weigh .weigh-compact {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    width: 100%;
    min-width: 0;
}

.weigh-compact__calc {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: nowrap;
    padding: 0.4rem 0.45rem;
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 8px;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.weigh-compact__calc.weigh-net-preview--ok {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.weigh-compact__calc.weigh-net-preview--error {
    background: #fef2f2;
    border-color: #fecaca;
}

.weigh-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.05rem;
    min-width: 3.5rem;
    padding: 0.2rem 0.35rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    flex-shrink: 0;
}

.weigh-chip__k {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--muted);
    line-height: 1;
}

.weigh-chip__v {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--text);
    line-height: 1.2;
}

.weigh-compact__op {
    font-size: 0.9rem;
    font-weight: 300;
    color: var(--muted);
    flex-shrink: 0;
    user-select: none;
}

.weigh-compact__field {
    flex: 1;
    min-width: 5.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.weigh-compact__field-label {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--muted);
    line-height: 1;
}

.input-kg-wrap--compact input {
    padding: 0.4rem 0.5rem;
    font-size: 0.88rem;
    font-weight: 700;
    min-height: 0;
}

.input-kg-wrap--compact .input-kg-suffix {
    min-width: 2rem;
    padding: 0 0.4rem;
    font-size: 0.72rem;
}

.weigh-compact__result {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.05rem;
    min-width: 4.25rem;
    padding: 0.15rem 0.35rem;
    flex-shrink: 0;
}

.weigh-compact__result-k {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--muted);
}

.weigh-compact__result-v {
    font-size: 1rem;
    font-weight: 800;
    color: #15803d;
    line-height: 1.1;
}

.weigh-net-preview--error .weigh-compact__result-v {
    color: #b91c1c;
}

.weigh-compact__hint {
    margin: 0;
    min-height: 0;
    font-size: 0.68rem;
    line-height: 1.35;
    color: var(--muted);
}

.weigh-compact__hint:empty {
    display: none;
}

.weigh-compact__btn {
    width: 100%;
    padding: 0.45rem 0.65rem;
    font-size: 0.8rem;
}

.dashboard-advance-stack {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    min-width: 0;
}

.stage-zone-next-wrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    width: 100%;
    min-width: min(100%, 20rem);
}

.stage-zone-actions-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    margin-top: 0.35rem;
}

.stage-zone-summary__item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.stage-zone-summary__val {
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.2;
}

.stage-zone-next-wrap .stage-action-form--exit-only {
    margin: 0;
}

.stage-compact-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.stage-compact-bar--weigh {
    padding: 0.35rem 0.45rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border: 1px solid var(--border);
    border-radius: 8px;
    border-top: 2px solid #8b5cf6;
}

.stage-compact-weigh-form {
    margin: 0;
    min-width: 0;
}

.stage-compact-weigh-field {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.stage-compact-weigh-label {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--muted);
    line-height: 1;
}

.stage-compact-weigh-field .input-kg-wrap--compact input {
    width: 5.5rem;
    min-width: 4.5rem;
    padding: 0.32rem 0.4rem;
    font-size: 0.85rem;
    font-weight: 700;
}

.stage-compact-net {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.05rem;
    min-width: 3.2rem;
}

.stage-compact-net__k {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--muted);
}

.stage-compact-net__v {
    font-size: 0.82rem;
    font-weight: 800;
    color: #15803d;
}

.stage-compact-net.weigh-net-preview--error .stage-compact-net__v {
    color: #b91c1c;
}

.stage-compact-weigh-hint {
    margin: 0.2rem 0 0;
    font-size: 0.68rem;
    color: #b91c1c;
    min-height: 0.9rem;
}

.weigh-compact__op--inline {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--muted);
    padding: 0 0.1rem;
}

.stage-compact-bar--zone {
    border-top-color: #f59e0b;
}

.stage-zone-receipt {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.stage-zone-receipt-input {
    width: 5.5rem;
    padding: 0.32rem 0.4rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 700;
}

.stage-action--exit-only {
    padding: 0.35rem;
    border-top: 3px solid #ef4444;
}

.dashboard-advance-cell {
    max-width: 420px;
}

.stage-compact-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.28rem 0.5rem;
    font-size: 0.72rem;
    background: #f1f5f9;
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--text-soft);
}

.stage-compact-chip strong {
    color: var(--text);
    font-weight: 800;
}

.stage-compact-chip__k {
    font-weight: 600;
}

.stage-compact-chip--info {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1e40af;
}

.stage-compact-chip--warn {
    background: #fffbeb;
    border-color: #fcd34d;
    color: #b45309;
    width: 100%;
    justify-content: center;
    margin-bottom: 0.25rem;
}

.stage-compact-chip--ok {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #047857;
}

.stage-exit-permission-done {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.4;
}

.card--zone-weigh-pending {
    border-top: 3px solid #f59e0b;
}

.stage-compact-btn {
    padding: 0.35rem 0.65rem !important;
    font-size: 0.78rem !important;
    white-space: nowrap;
}

.stage-compact-btn--revert {
    border-color: #fca5a5 !important;
    color: #b91c1c !important;
}

.stage-compact-btn--revert:hover {
    background: #fef2f2 !important;
}

.stage-compact-btn--return-factory {
    border-color: #fdba74 !important;
    color: #c2410c !important;
}

.stage-compact-btn--return-factory:hover {
    background: #fff7ed !important;
}

.card--return-factory .stage-return-factory-inline {
    margin-top: 0.5rem;
}

.stage-revert-inline {
    margin: 0;
    display: inline;
}

.stage-revert-with-weigh {
    margin-top: 0.45rem;
    padding-top: 0.4rem;
    border-top: 1px dashed var(--border);
}

.stage-revert-with-weigh .stage-compact-btn--revert {
    width: 100%;
    justify-content: center;
}

.stage-form--ghost {
    display: none !important;
}

.salco-modal--wide .salco-modal__dialog {
    width: min(100%, 26rem);
}

.salco-modal__note {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    color: var(--muted);
    line-height: 1.5;
    text-align: center;
}

.salco-modal__field-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-align: right;
    color: var(--text-soft);
}

.salco-modal__select {
    width: 100%;
    margin-bottom: 0.75rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.88rem;
    box-sizing: border-box;
    background: #fff;
}

.salco-modal__select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.salco-modal__textarea {
    width: 100%;
    min-height: 5.5rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.88rem;
    resize: vertical;
    box-sizing: border-box;
}

.salco-modal__textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.salco-modal--danger .salco-modal__textarea {
    border-color: #fecaca;
}

.salco-modal__input {
    width: 100%;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.88rem;
    box-sizing: border-box;
}

.salco-modal__input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.salco-modal--danger .salco-modal__input {
    border-color: #fecaca;
}

.weigh-compact--modal {
    margin-top: 0.25rem;
}

.weigh-compact--modal .weigh-compact__calc {
    flex-wrap: wrap;
    justify-content: center;
}

.stage-action--loading .stage-loading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.stage-pallet-input {
    width: 4.5rem;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 700;
    text-align: center;
}

.stage-pallet-suffix {
    font-size: 0.82rem;
    color: var(--muted);
    font-weight: 600;
}

.stage-field-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-soft);
    margin-bottom: 0.35rem;
}

.stage-action-hint {
    margin: 0.35rem 0 0;
    font-size: 0.75rem;
    line-height: 1.45;
}

.stage-action__body--stack {
    flex-direction: column;
    align-items: stretch;
}

.stage-revert-details {
    border: 1px dashed #fca5a5;
    border-radius: 8px;
    background: #fffbfb;
}

.stage-revert-summary {
    cursor: pointer;
    padding: 0.4rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #b91c1c;
    list-style: none;
    user-select: none;
}

.stage-revert-summary::-webkit-details-marker {
    display: none;
}

.stage-revert-panel {
    padding: 0 0.55rem 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.stage-revert-textarea {
    width: 100%;
    min-height: 4.5rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid #fecaca;
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.82rem;
    resize: vertical;
}

.stage-revert-textarea:focus {
    outline: none;
    border-color: #f87171;
    box-shadow: 0 0 0 2px rgba(248, 113, 113, 0.2);
}

.stage-revert-btn {
    align-self: flex-start;
    border-color: #fca5a5;
    color: #b91c1c;
}

.stage-revert-btn:hover {
    background: #fef2f2;
}

.stage-field-label .req {
    color: #dc2626;
}

.stage-action-warn {
    margin: 0;
    padding: 0.5rem 0.65rem;
    font-size: 0.8rem;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
}

/* ——— مودال تأیید ——— */
body.salco-modal-open {
    overflow: hidden;
}

.salco-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s;
}

.salco-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.salco-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(3px);
}

.salco-modal__dialog {
    position: relative;
    width: min(100%, 22rem);
    margin: 0;
    padding: 1.25rem 1.35rem 1.1rem;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
    border: 1px solid var(--border);
    transform: translateY(12px) scale(0.97);
    transition: transform 0.22s ease;
}

.salco-modal.is-open .salco-modal__dialog {
    transform: translateY(0) scale(1);
}

.salco-modal__close {
    position: absolute;
    left: 0.65rem;
    top: 0.55rem;
    width: 2rem;
    height: 2rem;
    border: none;
    background: transparent;
    color: var(--muted);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.15s, color 0.15s;
}

.salco-modal__close:hover {
    background: var(--surface-2);
    color: var(--text);
}

.salco-modal__icon {
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 auto 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    background: linear-gradient(135deg, var(--primary-light), #e0f2fe);
    color: var(--primary);
    border-radius: 12px;
}

.salco-modal--danger .salco-modal__icon {
    background: #fee2e2;
    color: #b91c1c;
}

.salco-modal__title {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 800;
    text-align: center;
    color: var(--text);
}

.salco-modal__body {
    text-align: center;
    margin-bottom: 1.1rem;
}

.salco-modal__lead {
    margin: 0 0 0.65rem;
    font-size: 0.88rem;
    color: var(--text-soft);
    line-height: 1.55;
}

.salco-modal__highlight {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 800;
    color: #15803d;
    letter-spacing: 0.02em;
}

.salco-modal__highlight-unit {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--muted);
}

.salco-modal--danger .salco-modal__highlight {
    color: #b91c1c;
}

.salco-modal__actions {
    display: flex;
    gap: 0.5rem;
    flex-direction: row-reverse;
}

.salco-modal__actions .btn {
    flex: 1;
    padding: 0.6rem 0.85rem;
    font-size: 0.88rem;
}

.input-kg-wrap--sm {
    max-width: 110px;
}

.input-kg-wrap--sm input {
    padding: 0.35rem 2rem 0.35rem 0.5rem;
    font-size: 0.8rem;
}

.dashboard-shipment-row__actions {
    white-space: nowrap;
}

.tabs {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    padding: 0.35rem;
    background: var(--surface);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    width: fit-content;
    max-width: 100%;
}

.tabs a {
    padding: 0.5rem 1.1rem;
    border-radius: 8px;
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 600;
    transition: all var(--transition);
}

.tabs a:hover { color: var(--primary); text-decoration: none; background: var(--primary-light); }

.tabs a.active {
    background: var(--primary);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(3, 105, 161, 0.3);
}

.stage-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-left: 6px;
    vertical-align: middle;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
}

/* ——— Detail ——— */
.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}

.detail-list {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 0.65rem 1rem;
    font-size: 0.9rem;
}

.detail-list dt { color: var(--muted); font-weight: 600; font-size: 0.8rem; }
.detail-list dd { font-weight: 500; }

.notes-box {
    margin-top: 1rem;
    padding: 1rem;
    background: var(--accent-light);
    border-radius: var(--radius-sm);
    border-right: 4px solid var(--accent);
    font-size: 0.9rem;
}

/* ——— Timeline ——— */
.timeline { padding-right: 1.75rem; }

.timeline-item {
    position: relative;
    padding: 0 1.75rem 1.5rem 0;
    border-right: 2px solid var(--border);
}

.timeline-item:last-child { border-right-color: transparent; padding-bottom: 0; }

.timeline-marker {
    position: absolute;
    right: -8px;
    top: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--primary);
    box-shadow: var(--shadow-sm);
}

.timeline-item.done .timeline-marker {
    background: #22c55e;
    border-color: #16a34a;
}

.timeline-content strong { display: block; font-size: 0.95rem; }

.timeline-content span,
.timeline-content em,
.timeline-content small {
    font-size: 0.8rem;
    color: var(--muted);
}

/* ——— Workflow ——— */
.workflow-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.workflow-step {
    flex: 1;
    min-width: 95px;
    text-align: center;
    padding: 0.85rem 0.5rem;
    border-radius: var(--radius-sm);
    background: var(--surface-2);
    border: 2px solid var(--border);
    font-size: 0.72rem;
    font-weight: 500;
    transition: all var(--transition);
}

.workflow-step.done {
    background: #ecfdf5;
    border-color: #86efac;
}

.workflow-step.current {
    background: color-mix(in srgb, var(--step-color) 12%, white);
    border-color: var(--step-color);
    font-weight: 700;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--step-color) 25%, transparent);
}

.workflow-step .step-num {
    display: block;
    width: 26px;
    height: 26px;
    line-height: 26px;
    border-radius: 50%;
    background: var(--step-color, var(--primary));
    color: #fff;
    margin: 0 auto 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
}

/* ——— Shipment detail view ——— */
.shipment-view-page {
    --sv-hero-accent: var(--primary);
    margin-top: -0.35rem;
}

.shipment-view-page.is-completed { --sv-hero-accent: #16a34a; }
.shipment-view-page.is-cancelled { --sv-hero-accent: #dc2626; }
.shipment-view-page.is-active { --sv-hero-accent: #2563eb; }

.shipment-view-page--exit-blocked {
    background:
        linear-gradient(180deg, rgba(254, 226, 226, 0.35) 0%, transparent 220px),
        var(--bg-mesh);
    background-attachment: fixed, fixed;
}

.shipment-exit-blocked-banner {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: var(--radius-sm);
    border: 1px solid #fecaca;
    background: linear-gradient(135deg, #fef2f2 0%, #fff7ed 100%);
    color: #7f1d1d;
}

.shipment-exit-blocked-banner__icon {
    font-size: 1.35rem;
    line-height: 1;
    flex-shrink: 0;
}

.shipment-exit-blocked-banner__body strong {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.95rem;
}

.shipment-exit-blocked-banner__body p {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #991b1b;
}

.shipment-exit-blocked-banner__reason span {
    font-weight: 600;
}

.stage-action--exit-blocked {
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px dashed #fca5a5;
    background: #fff5f5;
}

.stage-exit-blocked-notice {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #991b1b;
}

.stage-exit-blocked-reason {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
}

.stage-action__btn-stage--muted {
    opacity: 0.75;
}

.card--exit-block-manage {
    border-color: #fecaca;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 40%);
}

.exit-block-form__toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
    font-weight: 600;
    font-size: 0.88rem;
    cursor: pointer;
}

.exit-block-form__toggle input {
    margin-top: 0.2rem;
}

.shipment-view-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem 1.5rem;
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.25rem;
    background: linear-gradient(135deg, #fff 0%, color-mix(in srgb, var(--sv-hero-accent) 6%, #f8fafc) 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    border-right: 4px solid var(--sv-hero-accent);
    box-shadow: var(--shadow-sm);
}

.shipment-view-hero__eyebrow {
    margin: 0 0 0.25rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--muted);
    letter-spacing: 0.02em;
}

.shipment-view-hero__title {
    margin: 0 0 0.75rem;
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

.shipment-view-hero__chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}

.shipment-view-stage-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem 0.3rem 0.55rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text);
    background: color-mix(in srgb, var(--stage-color, var(--primary)) 10%, #fff);
    border: 1px solid color-mix(in srgb, var(--stage-color, var(--primary)) 35%, var(--border));
    border-radius: 999px;
}

.shipment-view-stage-pill .stage-dot {
    width: 8px;
    height: 8px;
    background: var(--stage-color, var(--primary));
    flex-shrink: 0;
}

.shipment-view-hero__actions {
    flex-shrink: 0;
}

.shipment-view-btn-icon {
    margin-left: 0.35rem;
    opacity: 0.9;
}

.shipment-view-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.85rem;
    margin-bottom: 1.5rem;
}

.shipment-view-stat {
    padding: 1rem 1.1rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}

.shipment-view-stat__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
}

.shipment-view-stat__value {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}

.shipment-view-stat__value small {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted);
}

.shipment-view-stat__value--date {
    font-size: 0.88rem;
    font-weight: 600;
}

.shipment-view-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 1.5rem;
    align-items: start;
}

.shipment-view-layout--full {
    grid-template-columns: 1fr;
}

.shipment-view-main {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}

.shipment-view-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.shipment-view-card--weigh {
    grid-column: 1 / -1;
}

.shipment-view-card__title {
    margin: 0 0 1rem;
    padding-bottom: 0.65rem;
    font-size: 1rem;
    font-weight: 700;
    border-bottom: 1px solid var(--border);
}

.shipment-view-card .card-head-row {
    margin-bottom: 0.75rem;
}

.shipment-view-card .card-head-row .shipment-view-card__title {
    margin: 0;
    padding: 0;
    border: none;
}

.detail-list--view {
    grid-template-columns: 120px 1fr;
    gap: 0.55rem 1rem;
}

.notes-box--view {
    margin-top: 0.85rem;
    margin-bottom: 0;
}

.notes-box--print {
    background: #fffbeb;
    border-color: #fcd34d;
}

.print-note-form__textarea {
    width: 100%;
    min-height: 5.5rem;
    resize: vertical;
}

.print-note-readonly {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.shipment-view-plate-wrap {
    padding: 0.75rem 0.5rem 1rem;
    margin-bottom: 0.5rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border-radius: var(--radius-sm);
    border: 1px dashed var(--border);
    container-type: inline-size;
}

.shipment-view-plate-wrap .plate-fit-host {
    width: 100%;
}

.plate-widget--md {
    height: 56px;
}

.plate-widget--md .plate-blue-strip {
    flex: 0 0 32px;
    width: 32px;
    padding: 4px 2px 5px;
}

.plate-widget--md .plate-flag { width: 24px; height: 14px; }
.plate-widget--md .plate-ir-en { font-size: 5.5px; }
.plate-widget--md .plate-body { gap: 10px; padding: 0 12px; }
.plate-widget--md .plate-screw { width: 8px; height: 8px; flex: 0 0 8px; }
.plate-widget--md .plate-letter { font-size: 1.75rem; }
.plate-widget--md .plate-display-num-2,
.plate-widget--md .plate-display-num-3 { font-size: 1.6rem; }
.plate-widget--md .plate-display-num-region { font-size: 1.35rem; }
.plate-widget--md .plate-region-box { min-width: 50px; padding: 5px 10px 4px; }
.plate-widget--md .plate-iran-fa { font-size: 0.55rem; }

.shipment-view-weigh-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

.shipment-view-weigh-item {
    text-align: center;
    padding: 0.85rem 0.5rem;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.shipment-view-weigh-item--net {
    background: color-mix(in srgb, var(--primary) 8%, #fff);
    border-color: color-mix(in srgb, var(--primary) 25%, var(--border));
}

.shipment-view-weigh-item__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
}

.shipment-view-weigh-item__val {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
}

.shipment-view-weigh-caption {
    margin: -0.35rem 0 0.75rem;
    font-size: 0.78rem;
    font-weight: 600;
}

.shipment-view-zone-panel {
    margin-top: 1.25rem;
    padding: 1.1rem 1.15rem;
    background: linear-gradient(180deg, #f5f3ff 0%, #fff 100%);
    border: 1px solid #ddd6fe;
    border-radius: var(--radius-sm);
}

.shipment-view-zone-panel__title {
    margin: 0 0 0.85rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #5b21b6;
}

.shipment-view-zone-receipt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 1rem;
    margin-bottom: 0.85rem;
    background: #fff;
    border: 1px solid #e9d5ff;
    border-radius: var(--radius-sm);
}

.shipment-view-zone-receipt__label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--muted);
}

.shipment-view-zone-receipt__value {
    font-size: 1.1rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #5b21b6;
    letter-spacing: 0.02em;
}

.shipment-view-weigh-grid--zone {
    gap: 0.65rem;
}

.shipment-view-weigh-grid--zone .shipment-view-weigh-item {
    background: #fff;
    border-color: #e9d5ff;
}

.shipment-view-weigh-grid--zone .shipment-view-weigh-item--net {
    background: color-mix(in srgb, #7c3aed 10%, #fff);
    border-color: #c4b5fd;
}

.shipment-view-zone-formula {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.5rem;
    margin: 0.85rem 0 0;
    padding: 0.55rem 0.75rem;
    font-size: 0.8rem;
    color: var(--muted);
    background: rgba(255, 255, 255, 0.85);
    border: 1px dashed #ddd6fe;
    border-radius: var(--radius-sm);
}

.shipment-view-zone-formula__label {
    font-weight: 600;
    color: #6d28d9;
}

.shipment-view-zone-formula__op {
    font-weight: 700;
    color: #7c3aed;
}

.shipment-view-zone-formula strong {
    color: var(--text);
    font-weight: 800;
}

.shipment-view-zone-empty {
    margin: 0;
    font-size: 0.85rem;
}

.shipment-view-aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: sticky;
    top: 1rem;
}

.shipment-view-aside-card h2 {
    font-size: 0.95rem;
}

.workflow-bar--view {
    gap: 0.5rem;
}

.workflow-bar--view .workflow-step {
    min-width: 72px;
    padding: 0.7rem 0.35rem;
    font-size: 0.68rem;
}

.timeline--view {
    padding-right: 0.5rem;
}

.timeline--view .timeline-item {
    padding-bottom: 1.25rem;
}

.timeline--view .timeline-item.active .timeline-marker {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 20%, transparent);
}

.timeline-content__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.2rem;
}

.timeline-content__head strong {
    font-size: 0.95rem;
}

.timeline-content__date {
    font-size: 0.78rem;
    color: var(--muted);
    font-weight: 500;
}

.timeline-content__user {
    display: block;
    font-size: 0.8rem;
    color: var(--muted);
    font-style: normal;
    margin-bottom: 0.25rem;
}

.timeline-content__notes {
    margin: 0.35rem 0 0;
    padding: 0.5rem 0.65rem;
    font-size: 0.85rem;
    background: var(--surface-2);
    border-radius: var(--radius-sm);
    border-right: 3px solid var(--border);
}

.timeline-item--revert .timeline-marker {
    border-color: #f59e0b !important;
    background: #f59e0b !important;
}

.timeline-content__notes--revert {
    background: color-mix(in srgb, #f59e0b 12%, var(--surface-2));
    border-right-color: #f59e0b;
}

.timeline-revert-badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #b45309;
    background: color-mix(in srgb, #f59e0b 18%, transparent);
    border-radius: 4px;
}

.timeline-item--weigh-correction .timeline-marker {
    border-color: #0ea5e9 !important;
    background: #0ea5e9 !important;
}

.timeline-content__notes--weigh-correction {
    background: color-mix(in srgb, #0ea5e9 12%, var(--surface-2));
    border-right-color: #0ea5e9;
}

.timeline-weigh-correction-badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #0369a1;
    background: color-mix(in srgb, #0ea5e9 18%, transparent);
    border-radius: 4px;
}

.shipment-weigh-correction {
    margin-top: 1.25rem;
    padding: 1rem 1.1rem 1.15rem;
    background: linear-gradient(180deg, #f0f9ff 0%, #fff 100%);
    border: 1px solid #bae6fd;
    border-radius: var(--radius-md);
}

.shipment-weigh-correction__head {
    margin-bottom: 0.85rem;
}

.shipment-weigh-correction__title {
    margin: 0 0 0.3rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text);
}

.shipment-weigh-correction__hint {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--muted);
}

.shipment-weigh-correction__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 0.75rem;
}

.shipment-weigh-correction-card {
    margin: 0;
    padding: 0.85rem 0.9rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.shipment-weigh-correction-card__head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.7rem;
}

.shipment-weigh-correction-card__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.shipment-weigh-correction-card__dot--empty {
    background: #6366f1;
}

.shipment-weigh-correction-card__dot--full {
    background: #8b5cf6;
}

.shipment-weigh-correction-card__label {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text);
}

.shipment-weigh-correction-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.55rem 0.65rem;
}

.shipment-weigh-correction-card__field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.shipment-weigh-correction-card__field label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
}

.shipment-weigh-correction-card__field--weight {
    flex: 0 0 auto;
}

.shipment-weigh-correction-card__field--weight .input-kg-wrap--field {
    width: 9.25rem;
}

.shipment-weigh-correction-card__field--weight .input-kg-wrap--field input {
    padding: 0.55rem 0.7rem;
    font-size: 0.95rem;
}

.shipment-weigh-correction-card__field--reason {
    flex: 1 1 8rem;
    min-width: 7rem;
}

.shipment-weigh-correction-card__field--reason .input-field--sm {
    padding: 0.55rem 0.65rem;
    font-size: 0.88rem;
}

.shipment-weigh-correction-card__submit {
    flex: 0 0 auto;
    align-self: flex-end;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .shipment-weigh-correction-card__body {
        flex-direction: column;
        align-items: stretch;
    }

    .shipment-weigh-correction-card__field--weight .input-kg-wrap--field {
        width: 100%;
    }

    .shipment-weigh-correction-card__submit {
        width: 100%;
    }
}

.shipment-revert-history__lead {
    margin: 0 0 1rem;
    font-size: 0.88rem;
}

.shipment-revert-history {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.shipment-revert-history__item {
    padding: 0.75rem 0.9rem;
    background: var(--surface-2);
    border-radius: var(--radius-sm);
    border-right: 4px solid #f59e0b;
}

.shipment-revert-history__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.65rem;
    margin-bottom: 0.35rem;
    font-size: 0.88rem;
}

.shipment-revert-history__meta time {
    margin-right: auto;
    font-size: 0.78rem;
    color: var(--muted);
}

.shipment-revert-history__user {
    display: block;
    font-size: 0.8rem;
    color: var(--muted);
    font-style: normal;
    margin-bottom: 0.25rem;
}

.shipment-revert-history__reason {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.55;
}

.shipment-revert-history__reason-label {
    font-weight: 700;
    color: #b45309;
    margin-left: 0.25rem;
}

.timeline-content__end {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: var(--muted);
}

@media (max-width: 1100px) {
    .shipment-view-layout {
        grid-template-columns: 1fr;
    }

    .shipment-view-aside {
        position: static;
        order: -1;
    }
}

@media (max-width: 768px) {
    .shipment-view-hero {
        padding: 1.15rem 1.25rem;
    }

    .shipment-view-hero__title {
        font-size: 1.4rem;
    }

    .shipment-view-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .shipment-view-cards {
        grid-template-columns: 1fr;
    }

    .shipment-view-card--weigh {
        grid-column: auto;
    }

    .shipment-view-weigh-grid {
        grid-template-columns: 1fr;
    }

    .workflow-bar--view .workflow-step {
        min-width: calc(50% - 0.35rem);
        flex: 1 1 calc(50% - 0.35rem);
    }
}

/* ——— Live track board (shipments/track.php) ——— */
.track-page {
    margin-top: -0.25rem;
    width: 100%;
}

/* تابلو پیگیری / لیست حواله‌ها / گزارش: استفاده از تمام عرض محتوا */
.app-content:has(.track-page),
.app-content:has(.shipments-index-page),
.app-content:has(.vehicles-index-page),
.app-content:has(.dashboard-page),
.app-content:has(.shipment-report-page),
.app-content:has(.vehicle-intake-page--register),
.app-content:has(.admin-catalog-page--vehicle-types),
.app-content:has(.misc-weigh-page) {
    max-width: none;
    width: 100%;
}

/* ——— داشبورد ——— */
.stats-grid--dashboard {
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 1rem;
}

.stat-card--dashboard {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.1rem 1rem 1.1rem 1.15rem;
    min-height: 6.5rem;
}

.stat-card--dashboard::before {
    background: linear-gradient(180deg, var(--stat-accent, var(--primary)), color-mix(in srgb, var(--stat-accent, var(--primary)) 55%, #fff));
}

.stat-card__icon {
    font-size: 1.35rem;
    line-height: 1;
    opacity: 0.85;
}

.stat-card--dashboard .stat-value {
    font-size: 2rem;
}

.stat-card--dashboard .stat-label {
    font-size: 0.8rem;
    line-height: 1.35;
}

.dashboard-no-widgets {
    grid-column: 1 / -1;
    margin: 0;
    padding: 1.5rem;
    text-align: center;
}

.card--dashboard-list {
    margin-top: 0.25rem;
}

.dashboard-page {
    width: 100%;
    min-width: 0;
}

.dashboard-shipments-wrap {
    min-width: 0;
    overflow-x: auto;
}

.dashboard-shipments-table {
    width: 100%;
    min-width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.dashboard-shipments-table[data-cols="8"] {
    min-width: 72rem;
}

.dashboard-shipments-table[data-cols="6"] {
    min-width: 52rem;
}

.dashboard-shipments-table[data-cols="8"] .ds-col-hawaleh { width: 9%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-plate { width: 14%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-driver { width: 10%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-stage { width: 11%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-next { width: 11%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-time { width: 12%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-action { width: 28%; }
.dashboard-shipments-table[data-cols="8"] .ds-col-details { width: 5%; }

.dashboard-shipments-table[data-cols="6"] .ds-col-hawaleh { width: 11%; }
.dashboard-shipments-table[data-cols="6"] .ds-col-plate { width: 18%; }
.dashboard-shipments-table[data-cols="6"] .ds-col-driver { width: 14%; }
.dashboard-shipments-table[data-cols="6"] .ds-col-stage { width: 16%; }
.dashboard-shipments-table[data-cols="6"] .ds-col-time { width: 16%; }
.dashboard-shipments-table[data-cols="6"] .ds-col-details { width: 7%; }

.dashboard-shipments-table th,
.dashboard-shipments-table td {
    padding: 0.7rem 0.65rem;
    text-align: right;
    vertical-align: middle;
    border-bottom: 1px solid var(--border);
}

.dashboard-shipments-table thead th {
    background: var(--surface-2);
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
}

.dashboard-shipments-table tbody tr:last-child td {
    border-bottom: none;
}

.dashboard-shipments-table tbody tr:hover {
    background: #f8fafc;
}

.dashboard-shipments-table .ds-cell-plate {
    padding: 0.45rem 0.5rem;
}

.dashboard-shipments-table .ds-cell-plate .plate-fit-host {
    width: 100%;
    max-width: 100%;
}

.dashboard-shipments-table .ds-cell-stage,
.dashboard-shipments-table .ds-cell-next {
    overflow: hidden;
}

.dashboard-shipments-table .ds-cell-action {
    min-width: 0;
}

.dashboard-shipments-table .ds-cell-details {
    text-align: center;
    white-space: nowrap;
}

.dashboard-shipment-row__hawaleh {
    font-size: 0.95rem;
    color: var(--primary);
    white-space: nowrap;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked,
.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked td {
    background-color: #fecaca;
}

.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked {
    box-shadow: inset 4px 0 0 #b91c1c;
}

.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked:hover,
.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked:hover td {
    background-color: #fca5a5;
}

.dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked .dashboard-shipment-row__hawaleh {
    color: #991b1b;
}

.shipment-exit-blocked-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
    white-space: nowrap;
}

.dashboard-shipment-row__time {
    font-size: 0.82rem;
    color: var(--text-soft);
    white-space: nowrap;
}

.dashboard-stage-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    font-size: 0.86rem;
    line-height: 1.35;
}

.dashboard-stage-chip__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-stage-chip--next {
    color: var(--text-soft);
}

.dashboard-advance-empty {
    font-size: 0.8rem;
}

.dashboard-shipments-table .ds-cell-action .dashboard-advance-stack {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
}

.dashboard-shipments-table .ds-cell-action .dashboard-advance-stack > * {
    width: 100%;
    max-width: 100%;
}

.dashboard-shipment-row__actions .btn {
    white-space: nowrap;
}

/* ——— داشبورد واکنش‌گرا ——— */
@media (max-width: 1024px) {
    .dashboard-advance-cell {
        max-width: none;
    }

    .stage-compact-bar--weigh {
        flex-wrap: wrap;
        justify-content: center;
    }

    .stage-compact-weigh-field .input-kg-wrap--compact input {
        width: 100%;
        min-width: 5rem;
    }
}

@media (max-width: 900px) {
    .dashboard-page .stats-grid--dashboard {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
        margin-bottom: 1.25rem;
    }

    .dashboard-page .stat-card--dashboard {
        min-height: 5.25rem;
        padding: 0.95rem 0.85rem;
    }

    .dashboard-page .stat-card--dashboard .stat-value {
        font-size: 1.75rem;
    }

    .dashboard-page .stat-card__icon {
        font-size: 1.2rem;
    }

    .card--dashboard-list .card-header {
        align-items: flex-start;
    }

    .card--dashboard-list .card-header .btn {
        width: 100%;
        justify-content: center;
    }

    .dashboard-shipments-wrap {
        overflow: visible;
        border: none;
        background: transparent;
    }

    .dashboard-shipments-table {
        min-width: 0;
        border: none;
    }

    .dashboard-shipments-table thead {
        display: none;
    }

    .dashboard-shipments-table tbody {
        display: block;
    }

    .dashboard-shipments-table tbody tr.dashboard-shipment-row {
        display: block;
        margin-bottom: 0.85rem;
        padding: 0.85rem 0.9rem;
        border: 1px solid var(--border);
        border-radius: var(--radius-sm);
        background: var(--surface);
        box-shadow: var(--shadow-sm);
    }

    .dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked {
        background-color: #fecaca;
        border-color: #f87171;
        box-shadow: inset 4px 0 0 #b91c1c, var(--shadow-sm);
    }

    .dashboard-shipments-table tbody tr.dashboard-shipment-row.dashboard-shipment-row--exit-blocked td {
        background: transparent;
    }

    .dashboard-shipments-table tbody tr.dashboard-shipment-row:last-child {
        margin-bottom: 0;
    }

    .dashboard-shipments-table tbody td {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0.65rem 1rem;
        width: 100%;
        padding: 0.5rem 0;
        border: none;
        border-bottom: 1px dashed var(--border);
        white-space: normal;
    }

    .dashboard-shipments-table tbody td:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .dashboard-shipments-table tbody td::before {
        content: attr(data-label);
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--muted);
        flex: 0 0 auto;
        min-width: 5.5rem;
        padding-top: 0.15rem;
    }

    .dashboard-shipments-table tbody td.ds-cell-details::before,
    .dashboard-shipments-table tbody td:not([data-label])::before,
    .dashboard-shipments-table tbody td[data-label=""]::before {
        display: none;
    }

    .dashboard-shipments-table tbody td.ds-cell-plate {
        flex-wrap: wrap;
    }

    .dashboard-shipments-table tbody td.ds-cell-plate::before {
        width: 100%;
        flex: 0 0 100%;
        margin-bottom: 0.15rem;
    }

    .dashboard-shipments-table tbody td.ds-cell-plate .plate-fit-host {
        width: 100%;
        max-width: 100%;
        justify-content: center;
    }

    .dashboard-shipments-table tbody td.ds-cell-action {
        flex-direction: column;
        align-items: stretch;
    }

    .dashboard-shipments-table tbody td.ds-cell-action::before {
        width: 100%;
        flex: 0 0 100%;
        margin-bottom: 0.2rem;
    }

    .dashboard-shipments-table .dashboard-advance-stack {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .dashboard-shipments-table .dashboard-advance-stack > * {
        width: 100%;
    }

    .dashboard-shipments-table .dashboard-advance-stack .stage-action-form,
    .dashboard-shipments-table .dashboard-advance-stack .stage-compact-weigh-form,
    .dashboard-shipments-table .dashboard-advance-stack form {
        width: 100%;
    }

    .dashboard-shipments-table .stage-compact-bar {
        width: 100%;
        justify-content: center;
    }

    .dashboard-shipments-table .stage-compact-bar--weigh {
        padding: 0.5rem;
    }

    .dashboard-shipments-table .stage-compact-btn,
    .dashboard-shipments-table .stage-action__btn--wide {
        width: 100%;
    }

    .dashboard-shipments-table tbody td.ds-cell-details {
        padding-top: 0.65rem;
        margin-top: 0.15rem;
        border-top: 1px solid var(--border);
        justify-content: center;
    }

    .btn-block-mobile {
        display: flex;
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 520px) {
    .dashboard-page .stats-grid--dashboard {
        grid-template-columns: 1fr;
    }

    .dashboard-page .stat-card--dashboard .stat-value {
        font-size: 1.55rem;
    }

    .dashboard-shipments-table tbody td {
        flex-direction: column;
        align-items: stretch;
        gap: 0.35rem;
    }

    .dashboard-shipments-table tbody td::before {
        min-width: 0;
        padding-top: 0;
    }

    .dashboard-stage-chip {
        justify-content: flex-start;
    }
}

.dashboard-perm-section {
    margin: 1.25rem 0 0;
    padding: 1rem 1.1rem;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.dashboard-perm-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
}

.dashboard-perm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.dashboard-perm-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.dashboard-perm-item:has(input:checked) {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.dashboard-perm-item input {
    flex-shrink: 0;
    margin: 0;
}

.dashboard-perm-item__icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--c, #2563eb) 12%, #fff);
    border-radius: 6px;
    font-size: 1rem;
}

.dashboard-perm-item__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    line-height: 1.3;
}

.dashboard-perm-item__text strong {
    font-size: 0.82rem;
}

.dashboard-perm-item__text small {
    font-size: 0.72rem;
    color: var(--muted);
}

/* ——— لیست خودروها ——— */
.vehicles-list-table {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
}

.vehicles-list-table th,
.vehicles-list-table td {
    white-space: nowrap;
    vertical-align: middle;
}

.vehicles-list-table__carrier {
    font-weight: 600;
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vehicles-list-table__time {
    font-size: 0.82rem;
    direction: ltr;
    unicode-bidi: plaintext;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.vehicles-list-table tbody tr.vehicles-list-row--exit-blocked,
.vehicles-list-table tbody tr.vehicles-list-row--exit-blocked td {
    background-color: #fecaca;
}

.vehicles-list-table tbody tr.vehicles-list-row--exit-blocked {
    box-shadow: inset 4px 0 0 #b91c1c;
}

.vehicles-list-table tbody tr.vehicles-list-row--exit-blocked:hover,
.vehicles-list-table tbody tr.vehicles-list-row--exit-blocked:hover td {
    background-color: #fca5a5;
}

.vehicle-live-status--exit-blocked {
    border-color: #f87171;
    background: #fef2f2;
}

.vehicle-live-status {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    max-width: 16rem;
}

.vehicle-live-status--active {
    padding: 0.25rem 0.5rem;
    background: var(--surface-2);
    border-radius: 6px;
    border: 1px solid var(--border);
}

.vehicle-live-status__stage {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
}

.vehicle-live-status__hawaleh {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--muted);
    direction: ltr;
    unicode-bidi: isolate;
}

.vehicle-live-status--waiting .badge {
    white-space: nowrap;
}


.shipments-index-page .table-wrap--wide {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.shipments-list-table {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
}

.shipments-list-table th,
.shipments-list-table td {
    white-space: nowrap;
    vertical-align: middle;
}

.shipments-list-table th:nth-child(4),
.shipments-list-table td:nth-child(4) {
    min-width: 12.75rem;
    width: 12.75rem;
}

.shipments-list-table th:nth-child(2),
.shipments-list-table td:nth-child(2) {
    min-width: 9rem;
    width: 14%;
}

.shipments-list-table .plate-cell,
.dashboard-shipments-wrap .plate-cell,
.shipment-report-table .plate-cell {
    padding: 0.50rem 0.45rem;
    vertical-align: middle;
    container-type: inline-size;
    min-width: 13rem;
    width: 13rem;
}

.plate-cell .plate-widget--fixed {
    display: inline-flex;
    flex-shrink: 0;
    max-width: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.plate-cell .plate-fit-host {
    width: 100%;
    min-width: 8.5rem;
}

.shipments-list-table td:nth-child(2),
.shipments-list-table td:nth-child(3) {
    font-size: 0.82rem;
}

.shipments-list-table .actions-cell {
    white-space: nowrap;
}

.shipments-list-table tbody tr.shipments-list-row--exit-blocked,
.shipments-list-table tbody tr.shipments-list-row--exit-blocked td {
    background-color: #fecaca;
}

.shipments-list-table tbody tr.shipments-list-row--exit-blocked {
    box-shadow: inset 4px 0 0 #b91c1c;
}

.shipments-list-table tbody tr.shipments-list-row--exit-blocked:hover,
.shipments-list-table tbody tr.shipments-list-row--exit-blocked:hover td {
    background-color: #fca5a5;
}

.shipments-list-row__hawaleh {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.shipments-list-row--exit-blocked .shipments-list-row__hawaleh {
    color: #991b1b;
}

.shipments-list-col-check {
    width: 2.5rem;
    text-align: center;
    padding-inline: 0.35rem !important;
}

.shipments-list-col-check input {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

.exit-block-bulk-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin-bottom: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: var(--radius-sm);
    border: 1px solid #fcd34d;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
}

.exit-block-bulk-bar__select-all {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0;
}

.exit-block-bulk-bar__reason {
    flex: 1 1 12rem;
    min-width: 10rem;
    margin: 0;
}

.exit-block-bulk-bar__reason input {
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.88rem;
}

.exit-block-bulk-bar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.exit-block-bulk-hint {
    margin: -0.35rem 0 0.85rem;
    font-size: 0.8rem;
}

.track-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
    padding: 1.35rem 1.5rem;
    background: linear-gradient(135deg, #0c4a6e 0%, #0369a1 55%, #0284c7 100%);
    border-radius: var(--radius);
    color: #fff;
    box-shadow: 0 12px 32px rgba(3, 105, 161, 0.22);
}

.track-hero__eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.85;
    letter-spacing: 0.02em;
}

.track-hero__title {
    margin: 0 0 0.4rem;
    font-size: 1.45rem;
    font-weight: 800;
    border: none;
    padding: 0;
    color: #fff;
}

.track-hero__desc {
    margin: 0;
    font-size: 0.88rem;
    opacity: 0.9;
    max-width: 36rem;
    line-height: 1.55;
}

.track-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.track-hero__actions .btn-outline {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

.track-hero__actions .btn-outline:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: #fff;
    color: #fff;
}

.track-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.track-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.track-stat {
    min-width: 108px;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.track-stat--primary {
    border-color: #bae6fd;
    background: linear-gradient(180deg, #f0f9ff 0%, #fff 100%);
}

.track-stat--warn {
    border-color: #fde68a;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
}

.track-stat--warn .track-stat__value { color: #b45309; }

.track-stat__value {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.track-stat__label {
    font-size: 0.76rem;
    color: var(--muted);
    font-weight: 600;
}

/* تابلو دو ردیفه — بدون اسکرول افقی */
.track-board-wrap {
    width: 100%;
    padding: 0 0 1rem;
    overflow: hidden;
}

.track-board {
    display: grid;
    grid-template-columns: repeat(var(--track-board-cols, 4), minmax(0, 1fr));
    grid-template-rows: repeat(2, auto);
    gap: 1rem;
    width: 100%;
    align-items: stretch;
}

.track-column {
    --stage-color: #3b82f6;
    min-width: 0;
    display: flex;
    flex-direction: column;
    max-height: min(420px, calc(50vh - 100px));
    min-height: 260px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.track-column--orphan {
    border-style: dashed;
    background: #fafafa;
}

.track-column__head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.75rem 0.7rem;
    background: linear-gradient(180deg, color-mix(in srgb, var(--stage-color) 14%, #fff) 0%, var(--surface) 100%);
    border-bottom: 1px solid var(--border);
    border-top: 4px solid var(--stage-color);
    flex-shrink: 0;
}

.track-column__order {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: color-mix(in srgb, var(--stage-color) 18%, #fff);
    color: var(--stage-color);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
}

.track-column__title {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text);
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border: none;
    padding: 0;
}

.track-column__count {
    flex-shrink: 0;
    min-width: 1.6rem;
    height: 1.6rem;
    padding: 0 0.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--stage-color);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
}

.track-column__body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.7rem;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.track-column__empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 100px;
    color: var(--muted);
    font-size: 0.8rem;
    border: 2px dashed var(--border);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.65);
}

.track-column__empty-icon {
    font-size: 1.1rem;
    opacity: 0.4;
}

/* ——— کارت حواله در کانبان ——— */
.track-card {
    display: flex;
    flex-direction: column;
    padding: 0.8rem 0.75rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.track-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);
    border-color: color-mix(in srgb, var(--stage-color) 55%, var(--border));
    text-decoration: none;
}

.track-card--exit-blocked {
    border-color: #fca5a5;
    background: linear-gradient(180deg, #fff5f5 0%, #fff 100%);
    box-shadow: inset 0 0 0 1px rgba(220, 38, 38, 0.12);
}

.track-card--exit-blocked .track-card__hawaleh {
    color: #b91c1c;
}

.track-card--warn {
    border-color: #fcd34d;
    background: #fffbeb;
}

.track-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.track-card__hawaleh {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
}

.track-card__link {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--muted);
    opacity: 0;
    transition: opacity 0.15s ease, color 0.15s ease;
}

.track-card:hover .track-card__link {
    opacity: 1;
    color: var(--stage-color, var(--primary));
}

.track-card__plate-box {
    margin-bottom: 0.6rem;
    padding: 0.5rem 0.4rem;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
    border: 1px solid #fde68a;
    border-radius: 8px;
    container-type: inline-size;
}

.track-card__plate-box .plate-fit-host {
    width: 100%;
}

.track-card__facts {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.track-card__fact {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.5rem;
    align-items: baseline;
    font-size: 0.78rem;
    line-height: 1.35;
}

.track-card__fact dt {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
}

.track-card__fact dd {
    margin: 0;
    font-weight: 600;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.track-card__foot {
    margin-top: 0.55rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--border);
}

.track-card__foot time {
    font-size: 0.7rem;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.track-footnote {
    font-size: 0.8rem;
    text-align: center;
    margin: 0.35rem 0 0;
}

.track-footnote strong {
    font-weight: 700;
}

.track-empty-setup {
    text-align: center;
    padding: 2.5rem 1.5rem;
    max-width: 28rem;
    margin: 2rem auto;
}

.track-empty-setup__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 1.5rem;
    display: grid;
    place-items: center;
}

.track-empty-setup h2 {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
    border: none;
    padding: 0;
}

@media (max-width: 900px) {
    .track-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
    }

    .track-column {
        max-height: min(380px, 55vh);
        min-height: 220px;
    }
}

@media (max-width: 560px) {
    .track-board {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .track-hero {
        padding: 1.1rem 1.15rem;
    }

    .track-hero__title {
        font-size: 1.2rem;
    }

    .track-column {
        max-height: none;
        min-height: 200px;
    }
}

/* Legacy kanban aliases (if used elsewhere) */
.kanban { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; align-items: flex-start; }
.kanban-column { min-width: 240px; max-width: 280px; flex-shrink: 0; }
.kanban-header { padding: 0.9rem 1rem; font-weight: 700; font-size: 0.85rem; border-top: 4px solid; background: var(--surface); border-radius: var(--radius-sm) var(--radius-sm) 0 0; display: flex; align-items: center; gap: 0.5rem; box-shadow: var(--shadow-sm); }
.kanban-header .count { margin-right: auto; background: var(--primary-light); color: var(--primary); padding: 0.15rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; }
.kanban-cards { background: linear-gradient(180deg, #e2e8f0 0%, #f1f5f9 100%); padding: 0.65rem; border-radius: 0 0 var(--radius-sm) var(--radius-sm); min-height: 100px; }
.kanban-card { display: block; background: var(--surface); padding: 0.9rem; border-radius: var(--radius-sm); margin-bottom: 0.5rem; border: 1px solid var(--border); color: inherit; text-decoration: none; transition: transform var(--transition), box-shadow var(--transition); }
.kanban-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); text-decoration: none; border-color: var(--primary); }
.kanban-card strong { display: block; font-size: 0.88rem; color: var(--primary); }
.kanban-card span { font-size: 0.8rem; color: var(--muted); }
.kanban-empty { text-align: center; color: var(--muted); font-size: 0.8rem; padding: 1.5rem; }

/* ——— Admin stages ——— */
.page-lead { max-width: 52rem; line-height: 1.6; margin: -0.25rem 0 1.25rem; }

.stage-add-card { margin-bottom: 1.5rem; border-top: 4px solid var(--primary); }

.stage-add-form__grid {
    display: grid;
    grid-template-columns: 1fr minmax(140px, 160px) minmax(200px, 1fr) auto;
    gap: 1rem 1.25rem;
    align-items: end;
}

.form-group--color .color-field {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.form-group--color input[type="color"] {
    width: 52px;
    height: 44px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    background: var(--surface);
}

.color-field__hint { font-size: 0.75rem; color: var(--muted); }

.form-group__label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-soft);
}

.form-group__label--hidden { visibility: hidden; }

.stage-flag-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.stage-flag-chip { cursor: pointer; }

.stage-flag-chip input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
}

.stage-flag-chip__box {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
    background: var(--surface);
    transition: border-color var(--transition), background var(--transition), color var(--transition);
}

.stage-flag-chip input:checked + .stage-flag-chip__box {
    border-color: var(--primary);
    background: var(--primary-light);
    color: var(--primary);
}

.stage-flag-chip input:checked + .stage-flag-chip__box--entry {
    border-color: #0ea5e9;
    background: #e0f2fe;
    color: #0369a1;
}

.stage-flag-chip input:checked + .stage-flag-chip__box--loading {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

.stage-flag-chip input:checked + .stage-flag-chip__box--reentry {
    border-color: #7c3aed;
    background: #f5f3ff;
    color: #5b21b6;
}

.stage-flag-chip input:checked + .stage-flag-chip__box--reentry-target {
    border-color: #0d9488;
    background: #f0fdfa;
    color: #0f766e;
}

.stage-perm-tag--reentry-target {
    background: #ccfbf1;
    color: #0f766e;
}

.stage-flag-chip input:checked + .stage-flag-chip__box--exit {
    border-color: #f59e0b;
    background: #fffbeb;
    color: #b45309;
}

.stage-list-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
}

.stage-list-card__head h2 { margin: 0; border: none; padding: 0; }
.stage-list-card__head p { margin: 0; font-size: 0.85rem; }

.stage-sortable .stage-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 1rem 1.15rem;
}

.stage-row__order {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--muted);
    flex-shrink: 0;
}

.stage-row__num {
    min-width: 1.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-align: center;
}

.stage-row__dot { flex-shrink: 0; }

.stage-row__fields {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    flex: 1;
    min-width: 0;
}

.stage-row__fields .form-group { margin: 0; min-width: 0; }
.stage-row__fields .form-group input[type="text"] { min-width: 10rem; width: 100%; max-width: 14rem; }
.stage-row__fields .form-group input[type="color"] { width: 44px; height: 38px; padding: 2px; border-radius: 8px; }

.stage-capture-select {
    min-width: 11rem;
    max-width: 100%;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.82rem;
    background: #fff;
}

.stage-add-form__grid .stage-capture-select {
    width: 100%;
}

.stage-row__actions,
.stage-row__delete {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.stage-row__delete { margin: 0; }

.stage-list-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.stage-list-card__footer-hint {
    margin: 0;
    font-size: 0.85rem;
}

.stages-bulk-form--dirty .stage-list-card__footer .btn-primary {
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.35);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.u-hidden { display: none !important; }

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

/* ——— Carrier companies admin ——— */
.carrier-add-card { margin-bottom: 1.5rem; border-top: 4px solid #0d9488; }

.carrier-add-form__row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
    align-items: end;
}

.carrier-add-form__name { flex: 1; min-width: min(100%, 260px); }
.carrier-add-form__submit { flex-shrink: 0; }

.carrier-list { display: flex; flex-direction: column; gap: 1.25rem; }

.carrier-company-card { padding: 1.25rem 1.35rem; }

.carrier-company-card__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

.carrier-company-card__head-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    flex: 1;
    min-width: min(100%, 280px);
}

.carrier-company-card__head-form .form-group { margin: 0; min-width: 12rem; flex: 1; }
.carrier-company-card__delete { margin: 0; margin-inline-start: auto; }

.carrier-company-card__users h3 {
    font-size: 0.95rem;
    margin: 0 0 0.35rem;
    border: none;
    padding: 0;
}

.carrier-company-card__users-hint { font-size: 0.82rem; margin: 0 0 1rem; line-height: 1.5; }

.carrier-user-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.carrier-user-chip {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-2);
    cursor: pointer;
    font-size: 0.82rem;
    transition: border-color var(--transition), background var(--transition);
}

.carrier-user-chip:has(input:checked) {
    border-color: #0d9488;
    background: #ecfdf5;
}

.carrier-user-chip input { margin-top: 0.15rem; flex-shrink: 0; }

.carrier-user-chip span { line-height: 1.35; }

.carrier-company-card__users-actions { display: flex; justify-content: flex-end; }

.user-access-card__meta {
    margin-bottom: 0.75rem;
}

.user-access-card__template {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed var(--border);
}

.user-add-card {
    margin-bottom: 1.5rem;
}

.user-access-form__section {
    margin-bottom: 1.35rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px dashed var(--border);
}

.user-access-form__section:last-of-type {
    border-bottom: none;
    margin-bottom: 0.75rem;
}

.user-access-form__title {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-soft);
}

.user-access-card__header {
    margin-bottom: 0.5rem;
}

.input-readonly {
    background: var(--surface-2);
    color: var(--text-soft);
    cursor: default;
}

/* ——— Admin users list ——— */
.admin-users-page {
    max-width: 960px;
}

.admin-users-page__lead {
    margin: 0;
    max-width: 36rem;
}

.admin-users-table {
    width: 100%;
}

.admin-users-table th,
.admin-users-table td {
    vertical-align: middle;
}

.admin-users-row__name {
    font-weight: 700;
    color: var(--text);
    text-decoration: none;
}

.admin-users-row__name:hover {
    color: var(--primary);
    text-decoration: underline;
}

.admin-users-row__username {
    font-family: ui-monospace, monospace;
    font-size: 0.88rem;
}

.admin-users-row--inactive {
    opacity: 0.72;
}

.admin-user-edit-page .page-toolbar {
    margin-bottom: 1rem;
}

.admin-user-edit-page__head {
    margin-bottom: 1rem;
}

/* ——— Admin catalog pages (انواع خودرو، …) ——— */
.admin-catalog-page {
    max-width: 880px;
}

.app-content--full .admin-catalog-page,
.app-content--full .admin-catalog-page--vehicle-types {
    max-width: none;
    width: 100%;
    margin-inline: 0;
}

.admin-catalog-page--vehicle-types {
    max-width: none;
    width: 100%;
}

.admin-catalog-page--vehicle-types .page-lead {
    max-width: none;
}

.app-content--full .vehicle-type-add-card .carrier-add-form__row {
    max-width: none;
}

/* شبکه کارت — انواع خودرو */
.admin-catalog-page--vehicle-types .catalog-list--grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
    padding: 1.25rem 1.5rem;
}

.admin-catalog-page--vehicle-types .catalog-list--grid .catalog-item-card--tile {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin: 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    background: var(--surface);
}

.admin-catalog-page--vehicle-types .catalog-item-card__tile-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.admin-catalog-page--vehicle-types .catalog-item-card__tile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.admin-catalog-page--vehicle-types .catalog-item-card__tile-head .catalog-sort-badge {
    margin-bottom: 0;
    align-self: center;
}

.admin-catalog-page--vehicle-types .catalog-item-card__name {
    flex: none;
    min-width: 0;
    max-width: none;
    width: 100%;
}

.admin-catalog-page--vehicle-types .catalog-item-card__name input {
    width: 100%;
}

.admin-catalog-page--vehicle-types .catalog-item-card__tile-actions {
    display: flex;
    gap: 0.5rem;
}

.admin-catalog-page--vehicle-types .catalog-item-card__tile-actions .btn {
    flex: 1;
}

.admin-catalog-page--vehicle-types .catalog-item-card__delete {
    margin: 0;
    margin-inline-start: 0;
}

.admin-catalog-page--vehicle-types .catalog-item-card__delete .btn-block {
    width: 100%;
}

@media (max-width: 640px) {
    .admin-catalog-page--vehicle-types .catalog-list--grid {
        grid-template-columns: 1fr;
    }
}

.admin-catalog-page .page-lead {
    margin: -0.25rem 0 1.35rem;
    line-height: 1.65;
    font-size: 0.9rem;
}

.vehicle-type-add-card {
    border-top-color: #2563eb;
    margin-bottom: 1.5rem;
}

.ref-form-card__icon--vehicle {
    background: linear-gradient(135deg, #dbeafe, #eff6ff);
    color: #2563eb;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
}

.catalog-list-card {
    padding: 0;
    overflow: hidden;
}

.catalog-list-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, var(--surface-2) 0%, var(--surface) 100%);
}

.catalog-list-card__head h2 {
    margin: 0 0 0.3rem;
    font-size: 1.05rem;
    font-weight: 700;
    border: none;
    padding: 0;
}

.catalog-list-card__head p {
    margin: 0;
    font-size: 0.82rem;
}

.catalog-list-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.catalog-stat-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-soft);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 999px;
}

.catalog-stat-chip--active {
    color: #047857;
    background: #ecfdf5;
    border-color: #6ee7b7;
}

.catalog-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.catalog-list .catalog-item-card {
    border: none;
    border-radius: 0;
    box-shadow: none;
    border-bottom: 1px solid var(--border);
    padding: 1.1rem 1.5rem;
}

.catalog-list .catalog-item-card:last-child {
    border-bottom: none;
}

.catalog-item-card__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
}

.catalog-item-card__form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    flex: 1;
    min-width: min(100%, 260px);
}

.catalog-item-card__form .form-group {
    margin: 0;
    flex: 1;
    min-width: 10rem;
}

.catalog-item-card__name {
    min-width: min(100%, 220px);
}

.catalog-item-card__delete {
    margin: 0;
    margin-inline-start: auto;
}

.catalog-sort-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.45rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-soft);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    align-self: flex-end;
    margin-bottom: 0.15rem;
}

.catalog-list-card > .empty-state {
    padding: 2.5rem 1.5rem;
}

@media (max-width: 640px) {
    .catalog-item-card__delete {
        margin-inline-start: 0;
        width: 100%;
    }

    .catalog-item-card__delete .btn {
        width: 100%;
    }
}

.carrier-fixed-label {
    margin: 0;
    padding: 0.65rem 0.85rem;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-weight: 600;
    color: var(--primary);
}

@media (max-width: 900px) {
    .stage-add-form__grid { grid-template-columns: 1fr 1fr; }
    .form-group--submit { grid-column: span 2; }
    .stage-row__form { flex-basis: 100%; }
    .stage-row__actions { margin-inline-start: auto; }
}

/* ——— Admin ——— */
.sortable-list { list-style: none; }

.sortable-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    margin-bottom: 0.5rem;
    background: var(--surface-2);
    cursor: grab;
    transition: box-shadow var(--transition);
}

.sortable-list li:hover { box-shadow: var(--shadow-sm); }
.sortable-list li.dragging { opacity: 0.55; }
.drag-handle { cursor: grab; color: var(--muted); font-size: 1.1rem; }

.inline-edit-form,
.user-edit-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    flex: 1;
}

.inline-edit-form input[type="text"],
.user-edit-row input,
.user-edit-row select {
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-family: inherit;
}

.perm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.perm-group {
    background: var(--surface-2);
    padding: 1rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}

.perm-group h4 { font-size: 0.82rem; color: var(--primary); margin-bottom: 0.65rem; font-weight: 700; }
.perm-item { display: block; font-size: 0.85rem; margin-bottom: 0.4rem; cursor: pointer; }
.delete-role-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--border); }

/* ——— Alerts ——— */
.alert {
    padding: 0.9rem 1.15rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.text-muted { color: var(--muted); font-size: 0.85rem; line-height: 1.5; }
.empty-state {
    text-align: center;
    color: var(--muted);
    padding: 3rem 1.5rem;
    background: var(--surface-2);
    border-radius: var(--radius-sm);
    border: 1px dashed var(--border);
}

.unit-hint {
    font-size: 0.75rem;
    color: var(--accent);
    font-weight: 600;
}

/* ——— Responsive ——— */
@media (max-width: 960px) {
    .sidebar {
        width: var(--sidebar-w);
        transform: translateX(100%);
        transition: transform 0.3s ease, width 0.3s ease;
    }

    .sidebar.is-open { transform: translateX(0); }

    .app-main,
    .app-shell--sidebar-collapsed .app-main {
        margin-right: 0;
    }

    .sidebar-collapse-btn {
        display: none;
    }

    .sidebar-toggle { display: block; }

    .app-shell--sidebar-collapsed .sidebar {
        width: var(--sidebar-w);
    }

    .app-content { padding: 1.25rem; }

    .detail-grid,
    .form-grid { grid-template-columns: 1fr; }

    .form-grid .span-2 { grid-column: span 1; }

    .ref-forms-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .app-header { padding: 0 1rem; }
    .stats-grid { grid-template-columns: 1fr 1fr; }
}

.signature-preview-box {
    margin: 1rem 0;
    padding: 1rem;
    background: var(--surface-2, #f8fafc);
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    text-align: center;
}
.signature-preview-img {
    max-height: 120px;
    max-width: 100%;
    object-fit: contain;
}

.logo-preview-img {
    max-height: 100px;
    max-width: 200px;
    object-fit: contain;
}

.raw-material-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border, #e2e8f0);
}

.raw-material-tabs__link {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    border: 1px solid var(--border, #e2e8f0);
    background: var(--surface, #fff);
    color: var(--text, #1e293b);
    text-decoration: none;
    font-size: 0.9rem;
    transition: border-color 0.15s, background 0.15s;
}

.raw-material-tabs__link:hover {
    border-color: var(--primary, #2563eb);
}

.raw-material-tabs__link--active {
    border-color: var(--primary, #2563eb);
    background: rgba(37, 99, 235, 0.08);
    font-weight: 600;
}

.raw-material-tabs__code {
    font-size: 0.72rem;
    color: var(--muted, #64748b);
    font-family: ui-monospace, monospace;
    direction: ltr;
    text-align: right;
}

/* ——— گردش کار ابطال حواله ——— */
.cancel-workflow-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.75rem 0 1rem;
}

.cancel-workflow-step {
    flex: 1 1 auto;
    min-width: 4.5rem;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 0.5rem;
    text-align: center;
    font-size: 0.75rem;
    background: #f8fafc;
}

.cancel-workflow-step.done {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #047857;
}

.cancel-workflow-step.current {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #b91c1c;
    font-weight: 600;
}

.cancel-workflow-step__num {
    display: block;
    font-weight: 700;
    font-size: 0.85rem;
}

.cancel-workflow-approvals {
    margin: 0.5rem 0 1rem;
    padding: 0;
    list-style: none;
    font-size: 0.85rem;
}

.cancel-workflow-approvals li {
    padding: 0.25rem 0;
    border-bottom: 1px dashed var(--border, #e2e8f0);
}

.cancel-stage-users-matrix {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cancel-stage-users-card {
    padding: 0.75rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 0.5rem;
    background: #fafafa;
}

.cancel-stage-users-card__title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.cancel-stage-users-card__hint {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
}

.cancel-stage-users-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.35rem 0.75rem;
}

.cancel-stage-user-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.85rem;
}

.cancel-stage-delete-list {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* ——— مدیریت مراحل ابطال (admin) ——— */
.cancel-admin-page .page-title {
    display: none;
}

.cancel-admin-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin-bottom: 1.5rem;
    padding: 1.35rem 1.5rem;
    border-radius: 14px;
    background: linear-gradient(135deg, #fef2f2 0%, #fff 45%, #f8fafc 100%);
    border: 1px solid #fecaca;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.cancel-admin-hero__main {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    flex: 1;
    min-width: min(100%, 18rem);
}

.cancel-admin-hero__icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #dc2626;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.35);
}

.cancel-admin-hero__title {
    margin: 0 0 0.35rem;
    font-size: 1.45rem;
    font-weight: 700;
    color: #0f172a;
}

.cancel-admin-hero__lead {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.65;
    color: #475569;
    max-width: 42rem;
}

.cancel-admin-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.cancel-admin-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 5.5rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--border, #e2e8f0);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.cancel-admin-stat--warn {
    border-color: #fcd34d;
    background: #fffbeb;
}

.cancel-admin-stat--warn .cancel-admin-stat__value {
    color: #b45309;
}

.cancel-admin-stat__value {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
    color: #0f172a;
}

.cancel-admin-stat__label {
    font-size: 0.72rem;
    color: #64748b;
    margin-top: 0.15rem;
    text-align: center;
}

.cancel-admin-preview {
    margin-bottom: 1.25rem;
    padding: 1rem 1.25rem;
}

.cancel-admin-preview__title {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #334155;
}

.cancel-admin-pipeline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.cancel-admin-pipeline__arrow {
    color: #94a3b8;
    font-size: 0.9rem;
    padding: 0 0.15rem;
}

.cancel-admin-pipeline__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.55rem 0.85rem;
    border-radius: 10px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    min-width: 5.5rem;
    text-align: center;
}

.cancel-admin-pipeline__step.is-incomplete {
    border-color: #fcd34d;
    background: #fffbeb;
}

.cancel-admin-pipeline__step--end {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}

.cancel-admin-pipeline__num {
    font-size: 0.75rem;
    font-weight: 800;
    color: #64748b;
}

.cancel-admin-pipeline__step--end .cancel-admin-pipeline__num {
    color: #dc2626;
}

.cancel-admin-pipeline__name {
    font-size: 0.82rem;
    font-weight: 600;
    color: #0f172a;
}

.cancel-admin-pipeline__meta {
    font-size: 0.68rem;
    color: #64748b;
}

.cancel-admin-grid {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cancel-admin-add__fields {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.85rem 1rem;
    align-items: end;
}

@media (max-width: 768px) {
    .cancel-admin-add__fields {
        grid-template-columns: 1fr;
    }
}

.cancel-admin-add .form-group--action {
    margin-bottom: 0;
}

.input-ltr {
    direction: ltr;
    text-align: left;
}

.cancel-stage-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.cancel-stage-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 1rem 1.15rem;
    border-radius: 12px;
    border: 1px solid var(--border, #e2e8f0);
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.cancel-stage-row:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.cancel-stage-row.is-inactive {
    opacity: 0.72;
    background: #f8fafc;
}

.cancel-stage-row__order {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.cancel-stage-row__index {
    width: 1.6rem;
    height: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e2e8f0;
    color: #475569;
    font-size: 0.75rem;
    font-weight: 700;
}

.cancel-stage-row__sort-input {
    width: 3.25rem;
    padding: 0.35rem 0.4rem;
    text-align: center;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    font-size: 0.85rem;
}

.cancel-stage-row__main {
    flex: 1;
    min-width: 10rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.cancel-stage-row__name-input {
    width: 100%;
    max-width: 20rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
}

.cancel-stage-row__slug {
    font-size: 0.72rem;
    color: #94a3b8;
    background: transparent;
    padding: 0;
}

.cancel-stage-row__active {
    flex-shrink: 0;
}

.cancel-stage-row__delete {
    flex-shrink: 0;
}

.cancel-stage-delete-form {
    margin: 0;
}

.cancel-admin-approvers-card {
    overflow: hidden;
}

.cancel-approvers__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border, #e2e8f0);
}

.cancel-approvers__search {
    flex: 1;
    min-width: min(100%, 14rem);
    max-width: 22rem;
    margin: 0;
}

.cancel-approvers__search-input {
    width: 100%;
    padding: 0.5rem 0.85rem 0.5rem 2.25rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 10px;
    font-size: 0.9rem;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.1a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") no-repeat right 0.65rem center;
}

.cancel-approvers__rule {
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.cancel-approvers__rule-icon {
    display: inline-flex;
    width: 1.25rem;
    height: 1.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #dcfce7;
    color: #15803d;
    font-size: 0.7rem;
    font-weight: 700;
}

.cancel-approvers__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 1rem;
}

.cancel-approvers__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.85rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: 0.85rem;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cancel-approvers__tab:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.cancel-approvers__tab.is-active {
    background: #fef2f2;
    border-color: #f87171;
    color: #991b1b;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(220, 38, 38, 0.12);
}

.cancel-approvers__tab.has-warning:not(.is-active) {
    border-color: #fcd34d;
}

.cancel-approvers__tab-num {
    width: 1.35rem;
    height: 1.35rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.06);
    font-size: 0.72rem;
    font-weight: 800;
}

.cancel-approvers__tab.is-active .cancel-approvers__tab-num {
    background: #dc2626;
    color: #fff;
}

.cancel-approvers__tab-badge {
    min-width: 1.25rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
    text-align: center;
}

.cancel-approvers__tab.is-active .cancel-approvers__tab-badge {
    background: #dc2626;
    color: #fff;
}

.cancel-approvers__panel {
    display: none;
    animation: cancel-panel-in 0.2s ease;
}

.cancel-approvers__panel.is-active {
    display: block;
}

@keyframes cancel-panel-in {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cancel-user-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 0.55rem;
}

.cancel-user-chip {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
    margin: 0;
}

.cancel-user-chip:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.cancel-user-chip.is-selected {
    border-color: #22c55e;
    background: #f0fdf4;
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25);
}

.cancel-user-chip__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.cancel-user-chip__avatar {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: linear-gradient(145deg, #64748b, #475569);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cancel-user-chip.is-selected .cancel-user-chip__avatar {
    background: linear-gradient(145deg, #16a34a, #15803d);
}

.cancel-user-chip__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.cancel-user-chip__name {
    font-size: 0.88rem;
    font-weight: 600;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cancel-user-chip__username {
    font-size: 0.72rem;
    color: #94a3b8;
    direction: ltr;
    text-align: right;
}

.cancel-user-chip__check {
    flex-shrink: 0;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    border: 2px solid #cbd5e1;
    background: #fff;
    transition: border-color 0.15s, background 0.15s;
}

.cancel-user-chip.is-selected .cancel-user-chip__check {
    border-color: #22c55e;
    background: #22c55e;
    box-shadow: inset 0 0 0 2px #fff;
}

.cancel-approvers__panel-empty {
    margin: 0.75rem 0 0;
    font-size: 0.85rem;
}

.cancel-admin-empty-card .empty-state {
    padding: 2rem 1rem;
    text-align: center;
}

.cancel-admin-empty-card .empty-state__title {
    font-weight: 600;
    margin: 0 0 0.35rem;
}

.cancel-admin-empty {
    margin: 0;
    padding: 1rem;
    text-align: center;
    color: #64748b;
}

.cancel-admin-approvers-footer {
    margin-top: 1.25rem;
}

/* ——— توزین خودروهای متفرقه ——— */
.misc-weigh-page .table-wrap--wide {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.misc-weigh-page__intro {
    margin: 0;
    max-width: none;
    flex: 1 1 20rem;
    line-height: 1.55;
}

.misc-weigh-table {
    width: 100%;
    min-width: 100%;
    table-layout: auto;
}

.misc-weigh-table th,
.misc-weigh-table td {
    white-space: nowrap;
    vertical-align: middle;
    padding: 0.9rem 1.15rem;
}

.misc-weigh-table th:nth-child(1),
.misc-weigh-table td:nth-child(1) {
    min-width: 7.5rem;
}

.misc-weigh-table th:nth-child(2),
.misc-weigh-table td:nth-child(2) {
    min-width: 9.5rem;
}

.misc-weigh-table th:nth-child(3),
.misc-weigh-table td:nth-child(3) {
    min-width: 8.5rem;
}

.misc-weigh-table th:nth-child(4),
.misc-weigh-table td:nth-child(4) {
    min-width: 16rem;
    width: 22%;
}

.misc-weigh-table__cargo {
    white-space: normal;
    line-height: 1.5;
    word-break: break-word;
}

.misc-weigh-table .plate-cell {
    padding: 0.5rem 0.65rem;
}

.misc-weigh-table .table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    min-width: 9rem;
}

.misc-weigh-table__time {
    font-size: 0.82rem;
    min-width: 8rem;
}

.misc-weigh-row--pending {
    box-shadow: inset 4px 0 0 #d97706;
}

.misc-weigh-form-card {
    max-width: 960px;
}

.misc-weigh-form__grid {
    display: grid;
    gap: 1.25rem;
}

@media (min-width: 860px) {
    .misc-weigh-form__grid {
        grid-template-columns: 1fr 1fr;
    }

    .misc-weigh-form__block--weigh {
        grid-column: 1 / -1;
    }
}

.misc-weigh-form__block h2 {
    margin: 0 0 1rem;
    font-size: 1rem;
}

.misc-weigh-form__hint {
    margin: 0 0 1rem;
    font-size: 0.85rem;
}

.misc-weigh-form__actions {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.misc-weigh-view-hero__top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.misc-weigh-view-hero__label {
    margin: 0;
    font-size: 0.82rem;
    color: var(--muted);
}

.misc-weigh-view-hero__ref {
    margin: 0.15rem 0 0;
    font-size: 1.35rem;
    letter-spacing: 0.02em;
}

.misc-weigh-view-grid {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

@media (min-width: 900px) {
    .misc-weigh-view-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.misc-weigh-stats {
    display: grid;
    gap: 0.75rem;
}

.misc-weigh-stat {
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem 0.75rem;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 8px;
}

.misc-weigh-stat__k {
    font-size: 0.78rem;
    color: var(--muted);
}

.misc-weigh-stat__meta {
    font-size: 0.75rem;
    color: var(--muted);
}

.misc-weigh-stat--net strong {
    color: #15803d;
}

.misc-weigh-full-panel {
    margin-top: 1rem;
}

.misc-weigh-view-notes {
    margin: 1rem 0 0;
    font-size: 0.88rem;
}

.misc-weigh-view-footer {
    margin: 1rem 0 0;
    font-size: 0.82rem;
}

.misc-weigh-kind-toggle {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.misc-weigh-kind-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.25rem;
}

.misc-weigh-kind-btn {
    min-width: 9.5rem;
}

.misc-weigh-kind-btn--full {
    background: #0369a1;
    border-color: #0369a1;
}

.misc-weigh-kind-btn--full:hover {
    background: #075985;
    border-color: #075985;
}

.misc-weigh-form__block--weigh .input-kg-wrap--weigh {
    max-width: 16rem;
}

.misc-weigh-kind-toggle__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface-2);
    cursor: pointer;
    font-size: 0.88rem;
}

.misc-weigh-kind-toggle__item:has(input:checked) {
    border-color: var(--primary);
    background: #eff6ff;
}

.misc-weigh-kind-fixed {
    margin: 0 0 1rem;
    font-weight: 700;
}

.misc-weigh-second-driver {
    margin-bottom: 0.75rem;
    max-width: 20rem;
}

/* ——— فرم ورود/خروج ——— */
.app-content:has(.gate-permits-page) {
    max-width: none;
    width: 100%;
}

.gate-permits-page__intro {
    margin: 0;
    flex: 1 1 20rem;
}

.gate-permits-search {
    margin-bottom: 1rem;
    padding: 1rem 1.15rem;
}

.gate-permits-search__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
}

.gate-permits-search__inner input[type="search"] {
    flex: 1 1 14rem;
    min-width: 12rem;
    height: 42px;
    padding: 0 0.75rem;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
}

.gate-permits-table th,
.gate-permits-table td {
    vertical-align: middle;
}

.gate-permits-view-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.gate-permits-view-hero {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.gate-permits-view-hero h1 {
    margin: 0.15rem 0 0;
    font-size: 1.5rem;
}

.gate-permits-view-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.gate-permits-view-grid .k {
    display: block;
    font-size: 0.78rem;
    color: var(--muted);
    margin-bottom: 0.15rem;
}

.gate-permits-view-audit {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-2);
}

.gate-permits-view-audit .k {
    display: block;
    font-size: 0.78rem;
    color: var(--muted);
    margin-bottom: 0.15rem;
}

.gate-permits-view-audit__meta {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--text-soft);
}

.gate-permit-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.15rem;
}

.gate-permit-form__grid .span-2 {
    grid-column: 1 / -1;
}

.gate-permit-form__items-title {
    margin: 1.25rem 0 0.75rem;
    font-size: 1rem;
}

.gate-permit-form__items-hint {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
}

.gate-permit-items-table__action-col {
    width: 2.75rem;
    padding-inline: 0.25rem !important;
    text-align: center;
}

.gate-permit-item-row__num {
    text-align: center;
    font-weight: 600;
}

.gate-permit-item-row__action {
    text-align: center;
    vertical-align: middle;
    padding-inline: 0.25rem !important;
}

.gate-permit-item-diff-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    color: #64748b;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.gate-permit-item-diff-btn__icon {
    display: block;
    flex-shrink: 0;
}

.gate-permit-item-diff-btn:hover {
    border-color: #94a3b8;
    color: #475569;
    background: #f8fafc;
}

.gate-permit-item-diff-btn--active,
.gate-permit-item-row--has-diff .gate-permit-item-diff-btn {
    border-color: #d97706;
    background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
    color: #b45309;
    box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.12);
}

.gate-permit-item-diff-btn[aria-expanded="true"] {
    border-color: #d97706;
    background: #fffbeb;
    color: #b45309;
}

.gate-permit-item-row:has(+ .gate-permit-item-diff--open) td {
    border-bottom-color: transparent;
}

.gate-permit-item-diff > td {
    padding-top: 0;
    padding-bottom: 0.45rem;
    border-top: none;
    background: #fffbeb;
    vertical-align: middle;
}

.gate-permit-item-diff__mark {
    text-align: center;
    font-size: 0.65rem;
    font-weight: 700;
    color: #b45309;
    line-height: 1;
}

.gate-permit-item-diff__mark::before {
    content: '↓';
    display: block;
    opacity: 0.65;
}

.gate-permit-item-diff__action-spacer {
    background: #fffbeb;
}

.gate-permit-item-input--salco {
    background: #fff;
    border-color: #fcd34d;
}

.gate-permit-item-input--salco:focus {
    border-color: #d97706;
    box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.12);
}

.gate-permit-item-input--salco::placeholder {
    color: rgba(146, 64, 14, 0.4);
    font-size: 0.82em;
}

.gate-permit-view-items--salco th,
.gate-permit-view-items--salco td {
    font-size: 0.88rem;
}

.gate-permit-items-table input {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 0.35rem 0.45rem;
    font: inherit;
    background: #fff;
}

.gate-permit-items-table th,
.gate-permit-items-table td {
    padding: 0.45rem 0.5rem;
    vertical-align: middle;
}

.gate-permit-items-table th:nth-child(1),
.gate-permit-items-table td:nth-child(1) {
    width: 3rem;
    text-align: center;
}

@media (max-width: 760px) {
    .gate-permit-form__grid {
        grid-template-columns: 1fr;
    }
}

.gate-permits-scans {
    margin-top: 1rem;
    padding: 1.35rem 1.5rem 1.5rem;
}

.gate-permits-scans__head {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--border);
}

.gate-permits-scans__head-icon {
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--primary-light), #bae6fd);
    color: var(--primary);
    box-shadow: var(--shadow-sm);
}

.gate-permits-scans__head-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.gate-permits-scans__head-text {
    flex: 1;
    min-width: 0;
}

.gate-permits-scans__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin-bottom: 0.35rem;
}

.gate-permits-scans__title-row h2 {
    margin: 0;
    font-size: 1.15rem;
}

.gate-permits-scans__intro {
    margin: 0;
    font-size: 0.88rem;
    color: var(--muted);
    line-height: 1.6;
}

.gate-permits-scans__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 1.15rem;
}

.gate-permits-scan-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--transition), border-color var(--transition);
}

.gate-permits-scan-card:hover {
    box-shadow: var(--shadow);
}

.gate-permits-scan-card.is-uploaded {
    border-color: #bbf7d0;
}

.gate-permits-scan-card.is-empty {
    border-color: var(--border);
}

.gate-permits-scan-card__head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(180deg, var(--surface-2), #fff);
    border-bottom: 1px solid var(--border);
}

.gate-permits-scan-card__icon {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

.gate-permits-scan-card__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

.gate-permits-scan-card__icon--area {
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    color: #b45309;
}

.gate-permits-scan-card__icon--salco {
    background: linear-gradient(135deg, var(--primary-light), #bae6fd);
    color: var(--primary);
}

.gate-permits-scan-card__titles {
    flex: 1;
    min-width: 0;
}

.gate-permits-scan-card__titles h3 {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
}

.gate-permits-scan-card__status {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.55rem;
}

.gate-permits-scan-card__body {
    padding: 1rem 1.1rem;
    flex: 1;
}

.gate-permits-scan-card__preview {
    position: relative;
    display: block;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    background: #f1f5f9;
    min-height: 160px;
    margin-bottom: 0.85rem;
    text-decoration: none;
    color: inherit;
}

.gate-permits-scan-card__preview img {
    display: block;
    width: 100%;
    max-height: 240px;
    object-fit: contain;
    background: #fff;
}

.gate-permits-scan-card__preview-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 0.45rem 0.65rem;
    background: linear-gradient(transparent, rgba(15, 23, 42, 0.72));
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    opacity: 0;
    transition: opacity var(--transition);
}

.gate-permits-scan-card__preview:hover .gate-permits-scan-card__preview-overlay {
    opacity: 1;
}

.gate-permits-scan-card__pdf {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 160px;
    color: #dc2626;
    background: linear-gradient(180deg, #fff, #fef2f2);
}

.gate-permits-scan-card__pdf svg {
    width: 2.5rem;
    height: 2.5rem;
}

.gate-permits-scan-card__pdf strong {
    font-size: 1rem;
    letter-spacing: 0.06em;
}

.gate-permits-scan-card__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.65rem 1rem;
    margin: 0 0 0.85rem;
    padding: 0.75rem 0.85rem;
    background: var(--surface-2);
    border-radius: 8px;
    border: 1px solid var(--border);
}

.gate-permits-scan-card__meta div {
    min-width: 0;
}

.gate-permits-scan-card__meta dt {
    font-size: 0.72rem;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 0.15rem;
}

.gate-permits-scan-card__meta dd {
    margin: 0;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text);
    word-break: break-word;
}

.gate-permits-scan-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.gate-permits-scan-card__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.gate-permits-scan-card__delete {
    display: inline;
    margin: 0;
}

.gate-permits-scan-card__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 180px;
    padding: 1.25rem;
    border: 2px dashed #cbd5e1;
    border-radius: 10px;
    background: repeating-linear-gradient(
        -45deg,
        var(--surface-2),
        var(--surface-2) 8px,
        #f1f5f9 8px,
        #f1f5f9 16px
    );
    color: var(--muted);
}

.gate-permits-scan-card__placeholder svg {
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 0.65rem;
    opacity: 0.55;
}

.gate-permits-scan-card__placeholder p {
    margin: 0 0 0.25rem;
    font-weight: 700;
    color: var(--text-soft);
    font-size: 0.92rem;
}

.gate-permits-scan-card__placeholder span {
    font-size: 0.8rem;
}

.gate-permits-scan-card__foot {
    padding: 0.85rem 1.1rem 1.1rem;
    border-top: 1px solid var(--border);
    background: var(--surface-2);
}

.gate-permits-scan-upload {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.gate-permits-scan-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.gate-permits-scan-dropzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 1.1rem 1rem;
    border: 2px dashed #94a3b8;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    text-align: center;
    transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}

.gate-permits-scan-dropzone:hover,
.gate-permits-scan-dropzone.is-dragover {
    border-color: var(--primary);
    background: var(--primary-light);
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.12);
}

.gate-permits-scan-dropzone.has-file {
    border-color: #22c55e;
    background: #f0fdf4;
    border-style: solid;
}

.gate-permits-scan-dropzone__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--primary-light);
    color: var(--primary);
}

.gate-permits-scan-dropzone__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.gate-permits-scan-dropzone__title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text);
}

.gate-permits-scan-dropzone__hint {
    font-size: 0.76rem;
    color: var(--muted);
}

.gate-permits-scan-dropzone__filename {
    display: block;
    max-width: 100%;
    margin-top: 0.25rem;
    padding: 0.35rem 0.65rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.85);
    font-size: 0.8rem;
    font-weight: 600;
    color: #15803d;
    direction: ltr;
    word-break: break-all;
}

.gate-permits-scan-upload__submit {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.65rem 1rem;
}

.gate-permits-scan-upload__submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.gate-permits-scan-upload__submit.is-loading {
    opacity: 0.75;
}

@media (max-width: 640px) {
    .gate-permits-scans__head {
        flex-direction: column;
    }

    .gate-permits-scans {
        padding: 1rem;
    }
}
