/* =============================================================================
   SMART WAY HRMS  —  app.css
   SMART WAY MARINE CARGO LLC
   Developed By Muhammad Ali Ansari — AI Operations Specialist
   ---------------------------------------------------------------------------
   Executive navy / sky design language. Fully responsive, RTL-aware for Urdu.
   ============================================================================= */

:root {
    /* Brand palette */
    --swmc-navy-900: #0a1f36;
    --swmc-navy-800: #0f2b48;
    --swmc-navy-700: #16395d;
    --swmc-navy-600: #1e56a0;
    --swmc-navy-500: #2b70c9;
    --swmc-navy-400: #4d8ede;
    --swmc-sky-200: #bae6fd;
    --swmc-sky-100: #dcecfc;
    --swmc-sky-50: #f2f8ff;

    --swmc-yellow: #fde047;
    --swmc-yellow-bg: #fefce8;
    --swmc-yellow-text: #854d0e;

    --swmc-green: #166534;
    --swmc-green-mid: #15803d;
    --swmc-green-bg: #f0fdf4;
    --swmc-green-border: #86efac;

    --swmc-red: #b91c1c;
    --swmc-red-dark: #7f1d1d;
    --swmc-red-bg: #fee2e2;

    --swmc-slate-900: #0f172a;
    --swmc-slate-800: #1e293b;
    --swmc-slate-600: #475569;
    --swmc-slate-500: #64748b;
    --swmc-slate-400: #94a3b8;
    --swmc-slate-300: #cbd5e1;
    --swmc-slate-200: #e2e8f0;
    --swmc-slate-100: #f1f5f9;
    --swmc-slate-50: #f8fafc;

    /* Layout metrics */
    --swmc-sidebar-w: 268px;
    --swmc-sidebar-collapsed-w: 76px;
    --swmc-topbar-h: 64px;
    --swmc-radius: 12px;
    --swmc-radius-sm: 8px;

    --swmc-shadow-sm: 0 1px 2px rgba(15, 43, 72, .06), 0 1px 3px rgba(15, 43, 72, .08);
    --swmc-shadow: 0 4px 14px rgba(15, 43, 72, .08);
    --swmc-shadow-lg: 0 12px 34px rgba(15, 43, 72, .14);

    /* Typography */
    --swmc-font-head: 'Poppins', 'Segoe UI', system-ui, sans-serif;
    --swmc-font-body: 'Montserrat', 'Segoe UI', system-ui, sans-serif;
    --swmc-font-urdu: 'Noto Nastaliq Urdu', 'Jameel Noori Nastaleeq', serif;
    --swmc-font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;

    --bs-body-font-family: var(--swmc-font-body);
}

/* =============================================================================
   Base
   ============================================================================= */

* { -webkit-font-smoothing: antialiased; }

html, body { height: 100%; }

body {
    font-family: var(--swmc-font-body);
    font-size: .9rem;
    background: #eef2f7;
    color: var(--swmc-slate-800);
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, .swmc-head {
    font-family: var(--swmc-font-head);
    font-weight: 700;
    color: var(--swmc-navy-800);
    letter-spacing: -.01em;
}

a { text-decoration: none; }

.font-monospace, .swmc-mono { font-family: var(--swmc-font-mono) !important; }

/* Urdu Nastaliq */
.swmc-urdu {
    font-family: var(--swmc-font-urdu);
    direction: rtl;
    unicode-bidi: isolate;
    font-size: 1.02em;
    line-height: 1.9;
}

.swmc-urdu-sm { font-size: .92em; line-height: 1.8; }
.swmc-urdu-lg { font-size: 1.2em; line-height: 2; }

/* Scrollbars */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(30, 86, 160, .28); border-radius: 20px; }
::-webkit-scrollbar-thumb:hover { background: rgba(30, 86, 160, .5); }

/* Accessibility */
.swmc-skip-link {
    position: absolute; left: -999px; top: 8px; z-index: 2000;
    background: var(--swmc-navy-800); color: #fff; padding: 10px 18px;
    border-radius: var(--swmc-radius-sm); font-weight: 600;
}
.swmc-skip-link:focus { left: 8px; color: #fff; }

:focus-visible {
    outline: 3px solid rgba(43, 112, 201, .55);
    outline-offset: 2px;
    border-radius: 4px;
}

/* =============================================================================
   Sidebar
   ============================================================================= */

.swmc-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--swmc-sidebar-w);
    background: linear-gradient(180deg, var(--swmc-navy-900) 0%, var(--swmc-navy-800) 55%, var(--swmc-navy-700) 100%);
    color: #cdd9e6;
    display: flex;
    flex-direction: column;
    z-index: 1045;
    box-shadow: 2px 0 18px rgba(10, 31, 54, .22);
    transition: transform .26s ease, width .26s ease;
}

.swmc-sidebar__brand {
    height: var(--swmc-topbar-h);
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    flex-shrink: 0;
}

.swmc-sidebar__brand img {
    height: 34px;
    width: auto;
    background: #fff;
    padding: 3px 7px;
    border-radius: 6px;
    flex-shrink: 0;
}

.swmc-sidebar__brand-text { min-width: 0; }

.swmc-sidebar__brand-text strong {
    display: block;
    font-family: var(--swmc-font-head);
    font-size: .92rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: .02em;
    line-height: 1.15;
    white-space: nowrap;
}

.swmc-sidebar__brand-text small {
    display: block;
    font-size: .64rem;
    color: var(--swmc-sky-200);
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
}

.swmc-sidebar__nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 10px 24px;
}

.swmc-nav-heading {
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(186, 230, 253, .62);
    padding: 16px 12px 7px;
    white-space: nowrap;
}

.swmc-nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    margin-bottom: 2px;
    border-radius: var(--swmc-radius-sm);
    color: #c3d2e3;
    font-size: .845rem;
    font-weight: 500;
    line-height: 1.3;
    position: relative;
    transition: background .16s ease, color .16s ease, padding-left .16s ease;
}

.swmc-nav-link > i:first-child {
    width: 20px;
    text-align: center;
    font-size: .95rem;
    flex-shrink: 0;
    opacity: .85;
}

.swmc-nav-link span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.swmc-nav-link:hover {
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.swmc-nav-link.active {
    background: linear-gradient(90deg, var(--swmc-navy-600) 0%, rgba(43, 112, 201, .45) 100%);
    color: #fff;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.swmc-nav-link.active::before {
    content: '';
    position: absolute;
    left: -10px; top: 50%;
    transform: translateY(-50%);
    width: 4px; height: 62%;
    background: var(--swmc-yellow);
    border-radius: 0 4px 4px 0;
}

.swmc-nav-link .swmc-nav-badge {
    font-size: .62rem;
    font-weight: 800;
    padding: 2px 6px;
    border-radius: 20px;
    background: var(--swmc-yellow);
    color: var(--swmc-navy-900);
    flex-shrink: 0;
}

.swmc-sidebar__footer {
    padding: 12px 16px;
    border-top: 1px solid rgba(255, 255, 255, .09);
    font-size: .66rem;
    color: rgba(186, 230, 253, .72);
    line-height: 1.5;
    flex-shrink: 0;
}

.swmc-sidebar__footer strong { color: #fff; display: block; font-size: .7rem; }

/* Collapsed (desktop icon rail) */
body.swmc-collapsed .swmc-sidebar { width: var(--swmc-sidebar-collapsed-w); }
body.swmc-collapsed .swmc-sidebar__brand { justify-content: center; padding: 0 8px; }
body.swmc-collapsed .swmc-sidebar__brand-text,
body.swmc-collapsed .swmc-nav-link span,
body.swmc-collapsed .swmc-nav-link .swmc-nav-badge,
body.swmc-collapsed .swmc-nav-heading,
body.swmc-collapsed .swmc-sidebar__footer { display: none; }
body.swmc-collapsed .swmc-nav-link { justify-content: center; padding: 11px 8px; }
body.swmc-collapsed .swmc-main { margin-left: var(--swmc-sidebar-collapsed-w); }
body.swmc-collapsed .swmc-topbar { left: var(--swmc-sidebar-collapsed-w); }

/* =============================================================================
   Topbar
   ============================================================================= */

.swmc-topbar {
    position: fixed;
    top: 0; right: 0; left: var(--swmc-sidebar-w);
    height: var(--swmc-topbar-h);
    background: rgba(255, 255, 255, .93);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--swmc-slate-200);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 20px;
    z-index: 1035;
    transition: left .26s ease;
}

.swmc-topbar__toggle {
    border: 1px solid var(--swmc-slate-200);
    background: #fff;
    color: var(--swmc-navy-700);
    width: 38px; height: 38px;
    border-radius: var(--swmc-radius-sm);
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.swmc-topbar__toggle:hover { background: var(--swmc-sky-100); color: var(--swmc-navy-800); }

.swmc-topbar__title { min-width: 0; }

.swmc-topbar__title h1 {
    font-size: 1.02rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.swmc-topbar__title small {
    font-size: .7rem;
    color: var(--swmc-slate-500);
    display: block;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.swmc-topbar__spacer { flex: 1; }

.swmc-topbar__chip {
    display: inline-flex; align-items: center; gap: 7px;
    background: var(--swmc-sky-100);
    color: var(--swmc-navy-700);
    border: 1px solid var(--swmc-sky-200);
    padding: 5px 12px;
    border-radius: 30px;
    font-size: .73rem;
    font-weight: 600;
    white-space: nowrap;
}

.swmc-avatar {
    width: 38px; height: 38px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--swmc-navy-600);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 800;
    font-size: .8rem;
    font-family: var(--swmc-font-head);
    flex-shrink: 0;
    border: 2px solid #fff;
    box-shadow: var(--swmc-shadow-sm);
}

.swmc-avatar-lg { width: 96px; height: 96px; font-size: 1.9rem; }
.swmc-avatar-sm { width: 30px; height: 30px; font-size: .68rem; }

/* =============================================================================
   Main content
   ============================================================================= */

.swmc-main {
    margin-left: var(--swmc-sidebar-w);
    padding: calc(var(--swmc-topbar-h) + 20px) 20px 40px;
    min-height: 100vh;
    transition: margin-left .26s ease;
}

.swmc-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
}

.swmc-page-head h2 {
    font-size: 1.42rem;
    margin: 0 0 3px;
    display: flex; align-items: center; gap: 10px;
}

.swmc-page-head .swmc-page-sub {
    font-size: .8rem;
    color: var(--swmc-slate-500);
    margin: 0;
}

.swmc-breadcrumb {
    font-size: .72rem;
    color: var(--swmc-slate-500);
    margin-bottom: 6px;
}
.swmc-breadcrumb a { color: var(--swmc-navy-600); font-weight: 600; }
.swmc-breadcrumb a:hover { text-decoration: underline; }

/* =============================================================================
   Cards & Panels
   ============================================================================= */

.swmc-card {
    background: #fff;
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius);
    box-shadow: var(--swmc-shadow-sm);
    overflow: hidden;
}

.swmc-card__head {
    padding: 13px 18px;
    border-bottom: 1px solid var(--swmc-slate-200);
    background: linear-gradient(180deg, #fff 0%, var(--swmc-slate-50) 100%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.swmc-card__head h3, .swmc-card__head h4, .swmc-card__head h5, .swmc-card__head h6 {
    margin: 0;
    font-size: .88rem;
    font-weight: 700;
    display: flex; align-items: center; gap: 8px;
}

.swmc-card__head i { color: var(--swmc-navy-600); }

.swmc-card__body { padding: 18px; }
.swmc-card__body--tight { padding: 0; }

.swmc-card__foot {
    padding: 12px 18px;
    border-top: 1px solid var(--swmc-slate-200);
    background: var(--swmc-slate-50);
}

/* Section pill headings (also used in printed documents) */
.swmc-section-pill {
    background: linear-gradient(90deg, var(--swmc-navy-600) 0%, var(--swmc-navy-500) 100%);
    color: #fff;
    padding: 6px 14px;
    border-radius: 6px;
    font-family: var(--swmc-font-head);
    font-weight: 700;
    font-size: .74rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0 9px;
}

.swmc-section-pill .urdu-pill-title {
    font-family: var(--swmc-font-urdu);
    font-size: .95rem;
    direction: rtl;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
}

/* =============================================================================
   KPI Stat cards
   ============================================================================= */

.swmc-stat {
    background: #fff;
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius);
    padding: 15px 17px;
    box-shadow: var(--swmc-shadow-sm);
    position: relative;
    overflow: hidden;
    height: 100%;
    transition: transform .16s ease, box-shadow .16s ease;
}

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

.swmc-stat::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--swmc-navy-600);
}

.swmc-stat--success::after { background: var(--swmc-green-mid); }
.swmc-stat--warning::after { background: #d97706; }
.swmc-stat--danger::after { background: var(--swmc-red); }
.swmc-stat--info::after { background: var(--swmc-navy-500); }
.swmc-stat--dark::after { background: var(--swmc-navy-800); }

.swmc-stat__label {
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--swmc-slate-500);
    margin-bottom: 5px;
    display: block;
}

.swmc-stat__value {
    font-family: var(--swmc-font-head);
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--swmc-navy-800);
    line-height: 1.1;
    word-break: break-word;
}

.swmc-stat__value small { font-size: .62em; font-weight: 700; color: var(--swmc-slate-500); }

.swmc-stat__meta { font-size: .71rem; color: var(--swmc-slate-500); margin-top: 5px; }

.swmc-stat__icon {
    position: absolute;
    right: 14px; top: 50%;
    transform: translateY(-50%);
    font-size: 2.1rem;
    color: rgba(30, 86, 160, .09);
}

/* =============================================================================
   Tables
   ============================================================================= */

.swmc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.swmc-table {
    width: 100%;
    margin: 0;
    font-size: .815rem;
    border-collapse: separate;
    border-spacing: 0;
}

.swmc-table thead th {
    background: var(--swmc-slate-100);
    color: var(--swmc-navy-800);
    font-family: var(--swmc-font-head);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 10px 12px;
    border-bottom: 2px solid var(--swmc-slate-300);
    white-space: nowrap;
    vertical-align: middle;
    position: sticky;
    top: 0;
    z-index: 2;
}

.swmc-table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--swmc-slate-200);
    vertical-align: middle;
}

.swmc-table tbody tr:hover { background: var(--swmc-sky-50); }
.swmc-table tbody tr:last-child td { border-bottom: 0; }

.swmc-table tfoot td {
    padding: 11px 12px;
    background: var(--swmc-slate-100);
    font-weight: 700;
    border-top: 2px solid var(--swmc-slate-300);
}

.swmc-table .swmc-num { text-align: right; font-family: var(--swmc-font-mono); white-space: nowrap; }
.swmc-table .swmc-actions { text-align: right; white-space: nowrap; }

.swmc-sort-link { color: inherit; }
.swmc-sort-link:hover { color: var(--swmc-navy-600); }

.swmc-empty {
    text-align: center;
    padding: 48px 20px;
    color: var(--swmc-slate-500);
}
.swmc-empty i { font-size: 2.6rem; color: var(--swmc-slate-300); display: block; margin-bottom: 12px; }
.swmc-empty h5 { color: var(--swmc-slate-600); font-size: .95rem; }

/* Employee cell */
.swmc-emp-cell { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.swmc-emp-cell__name { font-weight: 600; color: var(--swmc-navy-800); line-height: 1.25; }
.swmc-emp-cell__meta { font-size: .69rem; color: var(--swmc-slate-500); font-family: var(--swmc-font-mono); }

/* =============================================================================
   Badges, chips, pills
   ============================================================================= */

.swmc-badge {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .03em;
    padding: 4px 9px;
    border-radius: 20px;
    text-transform: uppercase;
    white-space: nowrap;
}

.swmc-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--swmc-slate-100);
    border: 1px solid var(--swmc-slate-200);
    color: var(--swmc-slate-600);
    padding: 3px 10px;
    border-radius: 20px;
    font-size: .7rem;
    font-weight: 600;
}

.swmc-chip--navy { background: var(--swmc-sky-100); border-color: var(--swmc-sky-200); color: var(--swmc-navy-700); }
.swmc-chip--green { background: var(--swmc-green-bg); border-color: var(--swmc-green-border); color: var(--swmc-green); }
.swmc-chip--yellow { background: var(--swmc-yellow-bg); border-color: var(--swmc-yellow); color: var(--swmc-yellow-text); }
.swmc-chip--red { background: var(--swmc-red-bg); border-color: #fca5a5; color: var(--swmc-red-dark); }

/* =============================================================================
   Forms
   ============================================================================= */

.form-label {
    font-size: .74rem;
    font-weight: 700;
    color: var(--swmc-slate-600);
    letter-spacing: .02em;
    margin-bottom: 5px;
}

.form-label .swmc-req { color: var(--swmc-red); font-weight: 700; }

.form-label .swmc-urdu { font-weight: 400; color: var(--swmc-slate-500); font-size: .95em; }

.form-control, .form-select {
    font-size: .845rem;
    border-color: var(--swmc-slate-300);
    border-radius: var(--swmc-radius-sm);
    padding: .48rem .75rem;
}

.form-control:focus, .form-select:focus {
    border-color: var(--swmc-navy-400);
    box-shadow: 0 0 0 .2rem rgba(43, 112, 201, .16);
}

.form-control::placeholder { color: var(--swmc-slate-400); font-size: .82rem; }

textarea.form-control { min-height: 90px; }

.form-control[dir="rtl"], .swmc-input-urdu {
    font-family: var(--swmc-font-urdu);
    direction: rtl;
    text-align: right;
    line-height: 2.1;
    font-size: .95rem;
}

.input-group-text {
    background: var(--swmc-slate-100);
    border-color: var(--swmc-slate-300);
    font-size: .78rem;
    font-weight: 700;
    color: var(--swmc-slate-600);
}

.form-text { font-size: .7rem; color: var(--swmc-slate-500); }

.invalid-feedback { font-size: .72rem; font-weight: 600; }

.swmc-fieldset {
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius);
    padding: 16px 18px 6px;
    margin-bottom: 18px;
    background: #fff;
}

.swmc-fieldset > legend {
    float: none;
    width: auto;
    font-family: var(--swmc-font-head);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--swmc-navy-600);
    padding: 0 8px;
    margin-left: -8px;
    display: flex; align-items: center; gap: 8px;
}

.form-check-input:checked { background-color: var(--swmc-navy-600); border-color: var(--swmc-navy-600); }

.swmc-switch-row {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 11px 0;
    border-bottom: 1px dashed var(--swmc-slate-200);
}
.swmc-switch-row:last-child { border-bottom: 0; }
.swmc-switch-row__label { font-size: .82rem; font-weight: 600; color: var(--swmc-slate-800); }
.swmc-switch-row__hint { font-size: .71rem; color: var(--swmc-slate-500); }

/* =============================================================================
   Buttons
   ============================================================================= */

.btn { font-size: .82rem; font-weight: 600; border-radius: var(--swmc-radius-sm); padding: .45rem .9rem; }
.btn-sm { font-size: .74rem; padding: .3rem .65rem; }
.btn-lg { font-size: .92rem; padding: .62rem 1.4rem; }

.btn-primary {
    background: linear-gradient(135deg, var(--swmc-navy-600) 0%, var(--swmc-navy-500) 100%);
    border-color: var(--swmc-navy-600);
}
.btn-primary:hover, .btn-primary:focus {
    background: linear-gradient(135deg, var(--swmc-navy-800) 0%, var(--swmc-navy-600) 100%);
    border-color: var(--swmc-navy-800);
}

.btn-dark { background: var(--swmc-navy-800); border-color: var(--swmc-navy-800); }
.btn-dark:hover { background: var(--swmc-navy-900); border-color: var(--swmc-navy-900); }

.btn-outline-primary { color: var(--swmc-navy-600); border-color: var(--swmc-navy-600); }
.btn-outline-primary:hover { background: var(--swmc-navy-600); border-color: var(--swmc-navy-600); }

.swmc-icon-btn {
    width: 30px; height: 30px;
    padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    font-size: .74rem;
}

/* =============================================================================
   Filter bar
   ============================================================================= */

.swmc-filters {
    background: #fff;
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius);
    padding: 13px 16px;
    margin-bottom: 16px;
    box-shadow: var(--swmc-shadow-sm);
}

.swmc-filters .form-label { font-size: .66rem; margin-bottom: 3px; }
.swmc-filters .form-control, .swmc-filters .form-select { font-size: .8rem; padding: .38rem .65rem; }

/* =============================================================================
   Tabs
   ============================================================================= */

.swmc-tabs {
    display: flex;
    gap: 3px;
    border-bottom: 2px solid var(--swmc-slate-200);
    margin-bottom: 18px;
    overflow-x: auto;
    padding-bottom: 0;
}

.swmc-tabs a {
    padding: 9px 15px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--swmc-slate-500);
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    display: inline-flex; align-items: center; gap: 7px;
}

.swmc-tabs a:hover { color: var(--swmc-navy-600); background: var(--swmc-sky-50); border-radius: 6px 6px 0 0; }

.swmc-tabs a.active {
    color: var(--swmc-navy-700);
    border-bottom-color: var(--swmc-navy-600);
    font-weight: 700;
}

.nav-tabs .nav-link { font-size: .82rem; font-weight: 600; color: var(--swmc-slate-500); }
.nav-tabs .nav-link.active { color: var(--swmc-navy-700); font-weight: 700; }

/* =============================================================================
   Alerts / flash
   ============================================================================= */

.swmc-flash-stack {
    position: fixed;
    top: calc(var(--swmc-topbar-h) + 12px);
    right: 20px;
    z-index: 1080;
    width: min(390px, calc(100vw - 40px));
    display: flex; flex-direction: column; gap: 9px;
}

.swmc-flash {
    border: 0;
    border-left: 4px solid;
    border-radius: var(--swmc-radius-sm);
    box-shadow: var(--swmc-shadow-lg);
    font-size: .82rem;
    padding: 12px 40px 12px 14px;
    background: #fff;
    position: relative;
    animation: swmc-slide-in .28s ease;
}

.swmc-flash strong { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 2px; }
.swmc-flash--success { border-left-color: var(--swmc-green-mid); color: var(--swmc-green); }
.swmc-flash--danger { border-left-color: var(--swmc-red); color: var(--swmc-red-dark); }
.swmc-flash--warning { border-left-color: #d97706; color: #92400e; }
.swmc-flash--info { border-left-color: var(--swmc-navy-500); color: var(--swmc-navy-700); }

@keyframes swmc-slide-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }

.alert { font-size: .82rem; border-radius: var(--swmc-radius-sm); }

/* =============================================================================
   Progress
   ============================================================================= */

.swmc-progress {
    height: 7px;
    background: var(--swmc-slate-200);
    border-radius: 20px;
    overflow: hidden;
}

.swmc-progress__bar {
    height: 100%;
    background: linear-gradient(90deg, var(--swmc-navy-600), var(--swmc-navy-400));
    border-radius: 20px;
    transition: width .4s ease;
}

.swmc-progress__bar--green { background: linear-gradient(90deg, var(--swmc-green), #4ade80); }
.swmc-progress__bar--yellow { background: linear-gradient(90deg, #b45309, var(--swmc-yellow)); }
.swmc-progress__bar--red { background: linear-gradient(90deg, var(--swmc-red-dark), #ef4444); }

/* =============================================================================
   Charts (pure CSS/SVG, no JS chart library required)
   ============================================================================= */

.swmc-bars {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    height: 190px;
    padding: 10px 4px 0;
    overflow-x: auto;
}

.swmc-bars__item {
    flex: 1 0 42px;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    height: 100%;
    min-width: 42px;
}

.swmc-bars__bar {
    width: 100%;
    max-width: 42px;
    background: linear-gradient(180deg, var(--swmc-navy-500) 0%, var(--swmc-navy-600) 100%);
    border-radius: 6px 6px 0 0;
    position: relative;
    min-height: 3px;
    transition: height .5s ease;
}

.swmc-bars__bar:hover { background: linear-gradient(180deg, var(--swmc-navy-400) 0%, var(--swmc-navy-500) 100%); }

.swmc-bars__val {
    position: absolute;
    top: -19px; left: 50%;
    transform: translateX(-50%);
    font-size: .62rem;
    font-weight: 800;
    color: var(--swmc-navy-700);
    font-family: var(--swmc-font-mono);
    white-space: nowrap;
}

.swmc-bars__label {
    font-size: .62rem;
    color: var(--swmc-slate-500);
    margin-top: 7px;
    text-align: center;
    font-weight: 600;
    white-space: nowrap;
}

.swmc-hbar { margin-bottom: 11px; }
.swmc-hbar__top { display: flex; justify-content: space-between; font-size: .74rem; margin-bottom: 4px; }
.swmc-hbar__name { font-weight: 600; color: var(--swmc-slate-800); }
.swmc-hbar__val { font-family: var(--swmc-font-mono); font-weight: 700; color: var(--swmc-navy-700); }

.swmc-donut { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.swmc-donut svg { flex-shrink: 0; }
.swmc-donut__legend { flex: 1; min-width: 170px; }
.swmc-donut__legend-item { display: flex; align-items: center; gap: 8px; font-size: .76rem; padding: 3px 0; }
.swmc-donut__swatch { width: 11px; height: 11px; border-radius: 3px; flex-shrink: 0; }
.swmc-donut__legend-item .swmc-donut__val { margin-left: auto; font-family: var(--swmc-font-mono); font-weight: 700; }

/* =============================================================================
   Timeline
   ============================================================================= */

.swmc-timeline { position: relative; padding-left: 26px; }

.swmc-timeline::before {
    content: '';
    position: absolute;
    left: 8px; top: 5px; bottom: 5px;
    width: 2px;
    background: var(--swmc-slate-200);
}

.swmc-timeline__item { position: relative; padding-bottom: 17px; }

.swmc-timeline__item::before {
    content: '';
    position: absolute;
    left: -22px; top: 4px;
    width: 11px; height: 11px;
    border-radius: 50%;
    background: #fff;
    border: 2.5px solid var(--swmc-navy-600);
}

.swmc-timeline__item--green::before { border-color: var(--swmc-green-mid); }
.swmc-timeline__item--red::before { border-color: var(--swmc-red); }
.swmc-timeline__item--yellow::before { border-color: #d97706; }

.swmc-timeline__time { font-size: .67rem; color: var(--swmc-slate-400); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.swmc-timeline__title { font-size: .82rem; font-weight: 600; color: var(--swmc-navy-800); }
.swmc-timeline__text { font-size: .76rem; color: var(--swmc-slate-500); }

/* =============================================================================
   Pagination
   ============================================================================= */

.swmc-pagination {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--swmc-slate-200);
    background: var(--swmc-slate-50);
    font-size: .76rem;
    color: var(--swmc-slate-500);
}

.swmc-pagination .pagination { margin: 0; }
.swmc-pagination .page-link {
    font-size: .78rem;
    color: var(--swmc-navy-600);
    border-color: var(--swmc-slate-200);
    padding: .32rem .62rem;
}
.swmc-pagination .page-item.active .page-link { background: var(--swmc-navy-600); border-color: var(--swmc-navy-600); color: #fff; }
.swmc-pagination .page-item.disabled .page-link { color: var(--swmc-slate-400); }

/* =============================================================================
   Definition lists / detail views
   ============================================================================= */

.swmc-dl { margin: 0; }
.swmc-dl__row {
    display: flex;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--swmc-slate-200);
    font-size: .81rem;
}
.swmc-dl__row:last-child { border-bottom: 0; }
.swmc-dl__key { width: 42%; min-width: 130px; font-weight: 700; color: var(--swmc-slate-600); font-size: .76rem; }
.swmc-dl__val { flex: 1; color: var(--swmc-slate-800); word-break: break-word; }
.swmc-dl__val .swmc-urdu { display: block; color: var(--swmc-slate-600); }

/* Profile header banner */
.swmc-profile-hero {
    background: linear-gradient(135deg, var(--swmc-navy-800) 0%, var(--swmc-navy-600) 100%);
    color: #fff;
    border-radius: var(--swmc-radius);
    padding: 22px 24px;
    display: flex; flex-wrap: wrap; align-items: center; gap: 20px;
    box-shadow: var(--swmc-shadow);
    margin-bottom: 18px;
    position: relative;
    overflow: hidden;
}

.swmc-profile-hero::after {
    content: '';
    position: absolute;
    right: -60px; top: -60px;
    width: 220px; height: 220px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .05);
}

.swmc-profile-hero h2 { color: #fff; margin: 0 0 3px; font-size: 1.32rem; }
.swmc-profile-hero .swmc-urdu { color: var(--swmc-sky-100); }
.swmc-profile-hero__meta { font-size: .78rem; color: rgba(220, 236, 252, .92); }
.swmc-profile-hero__code {
    font-family: var(--swmc-font-mono);
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .22);
    padding: 3px 11px;
    border-radius: 20px;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .05em;
}

.swmc-profile-hero .swmc-avatar {
    width: 88px; height: 88px;
    font-size: 1.7rem;
    border: 3px solid rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .16);
}

/* =============================================================================
   Money display
   ============================================================================= */

.swmc-money { font-family: var(--swmc-font-mono); font-weight: 700; white-space: nowrap; }
.swmc-money--green { color: var(--swmc-green-mid); }
.swmc-money--red { color: var(--swmc-red); }
.swmc-money--navy { color: var(--swmc-navy-600); }
.swmc-money--lg { font-size: 1.05rem; }

.swmc-net-card {
    background: linear-gradient(135deg, var(--swmc-green-bg) 0%, #dcfce7 100%);
    border: 2px solid var(--swmc-green-border);
    border-radius: var(--swmc-radius);
    padding: 15px 20px;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px;
}
.swmc-net-card__label { font-weight: 800; font-size: .82rem; color: var(--swmc-green); text-transform: uppercase; }
.swmc-net-card__hint { font-size: .72rem; color: var(--swmc-green-mid); }
.swmc-net-card__value { font-size: 1.5rem; font-weight: 900; color: var(--swmc-green-mid); font-family: var(--swmc-font-mono); }

/* Loan schedule callout */
.swmc-loan-note {
    border: 1px solid var(--swmc-yellow);
    background: var(--swmc-yellow-bg);
    border-radius: var(--swmc-radius-sm);
    padding: 12px 15px;
}
.swmc-loan-note__head {
    font-weight: 800;
    font-size: .74rem;
    color: var(--swmc-yellow-text);
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.swmc-loan-note__head .swmc-urdu { text-transform: none; letter-spacing: normal; font-weight: 400; }

/* =============================================================================
   Login / auth screens
   ============================================================================= */

.swmc-auth {
    min-height: 100vh;
    display: flex;
    background: var(--swmc-navy-900);
}

.swmc-auth__aside {
    flex: 1.1;
    background:
        radial-gradient(1100px 520px at 12% 8%, rgba(43, 112, 201, .5) 0%, transparent 60%),
        linear-gradient(150deg, var(--swmc-navy-900) 0%, var(--swmc-navy-800) 48%, var(--swmc-navy-600) 100%);
    color: #fff;
    padding: 46px 52px;
    display: flex; flex-direction: column; justify-content: space-between;
    position: relative;
    overflow: hidden;
}

.swmc-auth__aside::after {
    content: '';
    position: absolute;
    right: -140px; bottom: -140px;
    width: 420px; height: 420px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .04);
}

.swmc-auth__logo {
    background: #fff;
    padding: 9px 16px;
    border-radius: 10px;
    display: inline-flex;
    align-self: flex-start;
}
.swmc-auth__logo img { height: 44px; width: auto; }

.swmc-auth__aside h1 {
    color: #fff;
    font-size: 2.05rem;
    line-height: 1.18;
    margin: 0 0 12px;
    max-width: 15ch;
}

.swmc-auth__aside .swmc-urdu { color: var(--swmc-sky-100); font-size: 1.25rem; display: block; margin-bottom: 18px; }

.swmc-auth__features { list-style: none; padding: 0; margin: 18px 0 0; }
.swmc-auth__features li {
    display: flex; align-items: flex-start; gap: 11px;
    font-size: .84rem;
    color: rgba(220, 236, 252, .92);
    padding: 6px 0;
}
.swmc-auth__features i { color: var(--swmc-yellow); margin-top: 3px; }

.swmc-auth__credit { font-size: .72rem; color: rgba(186, 230, 253, .72); line-height: 1.6; }
.swmc-auth__credit strong { color: #fff; display: block; }

.swmc-auth__panel {
    flex: 1;
    background: #fff;
    display: flex; align-items: center; justify-content: center;
    padding: 40px 26px;
    overflow-y: auto;
}

.swmc-auth__form { width: 100%; max-width: 392px; }
.swmc-auth__form h2 { font-size: 1.5rem; margin-bottom: 4px; }
.swmc-auth__form .swmc-auth-sub { font-size: .82rem; color: var(--swmc-slate-500); margin-bottom: 24px; }

.swmc-auth__form .form-control { padding: .62rem .85rem; font-size: .88rem; }
.swmc-auth__form .input-group-text { background: var(--swmc-sky-100); border-color: var(--swmc-slate-300); color: var(--swmc-navy-600); }

.swmc-pw-toggle { cursor: pointer; }

/* =============================================================================
   Installer wizard
   ============================================================================= */

.swmc-installer { max-width: 860px; margin: 0 auto; padding: 32px 18px 60px; }

.swmc-installer__head { text-align: center; margin-bottom: 26px; }
.swmc-installer__head img { height: 54px; background: #fff; padding: 7px 14px; border-radius: 10px; box-shadow: var(--swmc-shadow); }
.swmc-installer__head h1 { margin: 16px 0 4px; font-size: 1.6rem; }

.swmc-steps { display: flex; gap: 6px; margin-bottom: 24px; flex-wrap: wrap; justify-content: center; }
.swmc-steps__item {
    display: flex; align-items: center; gap: 8px;
    font-size: .74rem;
    font-weight: 700;
    color: var(--swmc-slate-400);
    background: #fff;
    border: 1px solid var(--swmc-slate-200);
    border-radius: 30px;
    padding: 6px 14px;
}
.swmc-steps__item span {
    width: 20px; height: 20px;
    border-radius: 50%;
    background: var(--swmc-slate-200);
    color: var(--swmc-slate-500);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: .66rem;
}
.swmc-steps__item.active { color: var(--swmc-navy-700); border-color: var(--swmc-navy-400); box-shadow: var(--swmc-shadow-sm); }
.swmc-steps__item.active span { background: var(--swmc-navy-600); color: #fff; }
.swmc-steps__item.done { color: var(--swmc-green); border-color: var(--swmc-green-border); }
.swmc-steps__item.done span { background: var(--swmc-green-mid); color: #fff; }

.swmc-check-row {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--swmc-slate-200);
    font-size: .82rem;
}
.swmc-check-row:last-child { border-bottom: 0; }
.swmc-check-row__name { font-weight: 600; }
.swmc-check-row__hint { font-size: .71rem; color: var(--swmc-slate-500); }

.swmc-console {
    background: var(--swmc-navy-900);
    color: #a7f3d0;
    font-family: var(--swmc-font-mono);
    font-size: .72rem;
    line-height: 1.65;
    padding: 14px 16px;
    border-radius: var(--swmc-radius-sm);
    max-height: 320px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
.swmc-console .ok { color: #6ee7b7; }
.swmc-console .warn { color: #fcd34d; }
.swmc-console .err { color: #fca5a5; }
.swmc-console .dim { color: #64748b; }

/* =============================================================================
   Error pages
   ============================================================================= */

.swmc-error {
    min-height: 100vh;
    display: flex; align-items: center; justify-content: center;
    padding: 40px 20px;
    background:
        radial-gradient(800px 400px at 50% 0%, rgba(43, 112, 201, .16) 0%, transparent 65%),
        #eef2f7;
    text-align: center;
}
.swmc-error__code {
    font-family: var(--swmc-font-head);
    font-size: 6rem;
    font-weight: 800;
    line-height: 1;
    background: linear-gradient(135deg, var(--swmc-navy-800), var(--swmc-navy-500));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.swmc-error h1 { font-size: 1.5rem; margin: 8px 0 10px; }
.swmc-error p { color: var(--swmc-slate-500); max-width: 46ch; margin: 0 auto 22px; font-size: .88rem; }

/* =============================================================================
   Misc utilities
   ============================================================================= */

.swmc-divider { height: 1px; background: var(--swmc-slate-200); margin: 18px 0; border: 0; }
.swmc-dashed { border-top: 1px dashed var(--swmc-slate-300); margin: 14px 0; }

.swmc-text-xs { font-size: .7rem; }
.swmc-text-sm { font-size: .78rem; }
.swmc-muted { color: var(--swmc-slate-500); }
.swmc-nowrap { white-space: nowrap; }

.swmc-copy-btn { cursor: pointer; color: var(--swmc-navy-600); }

.swmc-scroll-y { max-height: 380px; overflow-y: auto; }

.swmc-file-preview {
    display: flex; align-items: center; gap: 11px;
    padding: 9px 12px;
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius-sm);
    background: var(--swmc-slate-50);
    font-size: .78rem;
}
.swmc-file-preview i { font-size: 1.25rem; color: var(--swmc-navy-600); }

.swmc-dropzone {
    border: 2px dashed var(--swmc-slate-300);
    border-radius: var(--swmc-radius);
    padding: 22px;
    text-align: center;
    background: var(--swmc-slate-50);
    transition: border-color .18s ease, background .18s ease;
    cursor: pointer;
}
.swmc-dropzone:hover, .swmc-dropzone.dragover { border-color: var(--swmc-navy-400); background: var(--swmc-sky-50); }
.swmc-dropzone i { font-size: 1.8rem; color: var(--swmc-navy-500); display: block; margin-bottom: 8px; }

.swmc-stamp-box {
    border: 2px dashed var(--swmc-slate-300);
    border-radius: var(--swmc-radius-sm);
    background: var(--swmc-slate-50);
    height: 92px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-size: .7rem; font-weight: 700; color: var(--swmc-slate-600);
    text-align: center;
}
.swmc-stamp-box img { max-height: 78px; max-width: 100%; object-fit: contain; }

.swmc-sig-preview {
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius-sm);
    background: #fff;
    padding: 8px;
    height: 78px;
    display: flex; align-items: center; justify-content: center;
}
.swmc-sig-preview img { max-height: 60px; max-width: 100%; object-fit: contain; }

.swmc-report-tile {
    display: block;
    background: #fff;
    border: 1px solid var(--swmc-slate-200);
    border-radius: var(--swmc-radius);
    padding: 20px;
    height: 100%;
    box-shadow: var(--swmc-shadow-sm);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    color: inherit;
}
.swmc-report-tile:hover {
    transform: translateY(-3px);
    box-shadow: var(--swmc-shadow-lg);
    border-color: var(--swmc-navy-400);
    color: inherit;
}
.swmc-report-tile__icon {
    width: 46px; height: 46px;
    border-radius: 11px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.2rem;
    background: var(--swmc-sky-100);
    color: var(--swmc-navy-600);
    margin-bottom: 13px;
}
.swmc-report-tile h5 { font-size: .95rem; margin: 0 0 5px; }
.swmc-report-tile p { font-size: .77rem; color: var(--swmc-slate-500); margin: 0 0 8px; line-height: 1.55; }

/* =============================================================================
   Responsive
   ============================================================================= */

@media (max-width: 1199.98px) {
    .swmc-stat__value { font-size: 1.35rem; }
}

@media (max-width: 991.98px) {
    .swmc-sidebar { transform: translateX(-100%); width: var(--swmc-sidebar-w); }
    body.swmc-sidebar-open .swmc-sidebar { transform: none; }
    .swmc-main, body.swmc-collapsed .swmc-main { margin-left: 0; }
    .swmc-topbar, body.swmc-collapsed .swmc-topbar { left: 0; }

    .swmc-backdrop {
        position: fixed; inset: 0;
        background: rgba(10, 31, 54, .5);
        z-index: 1040;
        opacity: 0; pointer-events: none;
        transition: opacity .22s ease;
    }
    body.swmc-sidebar-open .swmc-backdrop { opacity: 1; pointer-events: auto; }

    .swmc-auth__aside { display: none; }
    .swmc-auth__panel { flex: 1; }
}

@media (max-width: 767.98px) {
    body { font-size: .86rem; }
    .swmc-main { padding: calc(var(--swmc-topbar-h) + 14px) 13px 34px; }
    .swmc-topbar { padding: 0 13px; gap: 10px; }
    .swmc-topbar__title small { display: none; }
    .swmc-page-head h2 { font-size: 1.2rem; }
    .swmc-card__body { padding: 14px; }
    .swmc-flash-stack { right: 10px; left: 10px; width: auto; }
    .swmc-dl__row { flex-direction: column; gap: 2px; }
    .swmc-dl__key { width: 100%; }
    .swmc-stat__icon { display: none; }
    .swmc-net-card__value { font-size: 1.25rem; }
    .swmc-error__code { font-size: 4.2rem; }
}

@media (max-width: 575.98px) {
    .swmc-topbar__chip { display: none; }
    .swmc-page-head { flex-direction: column; align-items: stretch; }
    .swmc-page-head .swmc-page-actions { display: flex; flex-wrap: wrap; gap: 7px; }
    .swmc-page-head .swmc-page-actions .btn { flex: 1 1 auto; }
    .swmc-section-pill { flex-direction: column; align-items: flex-start; gap: 3px; }
}

/* =============================================================================
   Print (screen views printed directly)
   ============================================================================= */

@media print {
    .swmc-sidebar, .swmc-topbar, .swmc-backdrop, .swmc-flash-stack,
    .swmc-page-actions, .swmc-filters, .swmc-pagination, .no-print { display: none !important; }

    .swmc-main { margin: 0 !important; padding: 0 !important; }
    body { background: #fff !important; font-size: 11px; }
    .swmc-card { border: 1px solid #cbd5e1 !important; box-shadow: none !important; break-inside: avoid; }
    a[href]::after { content: none !important; }
}
