@import"https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700;800&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.erp-notify-host[data-v-50bf0749]{position:fixed;z-index:4000;inset-inline-end:var(--spacing-lg);top:calc(var(--header-height, 70px) + var(--spacing-md) + env(safe-area-inset-top,0px));bottom:auto;pointer-events:none;max-width:min(420px,calc(100vw - 2rem))}.erp-notify-stack[data-v-50bf0749]{display:flex;flex-direction:column-reverse;gap:var(--spacing-sm);align-items:stretch}.erp-notify[data-v-50bf0749]{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);line-height:1.45;border-inline-end:4px solid transparent}.erp-notify__msg[data-v-50bf0749]{flex:1;min-width:0;padding-top:2px}.erp-notify__close[data-v-50bf0749]{flex-shrink:0;border:none;background:transparent;color:inherit;opacity:.65;cursor:pointer;padding:var(--spacing-xs);line-height:1;border-radius:var(--border-radius-sm)}.erp-notify__close[data-v-50bf0749]:hover{opacity:1}.erp-notify--success[data-v-50bf0749]{background:var(--bs-success-light);color:var(--text-primary);border-inline-end-color:var(--bs-success)}.erp-notify--error[data-v-50bf0749]{background:var(--bs-danger-light);color:var(--bs-danger);border-inline-end-color:var(--bs-danger)}.erp-notify--warning[data-v-50bf0749]{background:var(--bs-warning-light);color:#856404;border-inline-end-color:var(--bs-warning)}.erp-notify--info[data-v-50bf0749]{background:var(--bs-info-light);color:#0c5460;border-inline-end-color:var(--bs-info)}.erp-notify-enter-active[data-v-50bf0749],.erp-notify-leave-active[data-v-50bf0749]{transition:opacity .28s ease,transform .28s ease}.erp-notify-enter-from[data-v-50bf0749],.erp-notify-leave-to[data-v-50bf0749]{opacity:0;transform:translateY(-10px)}.erp-notify-move[data-v-50bf0749]{transition:transform .22s ease}.visually-hidden[data-v-50bf0749]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:576px){.erp-notify-host[data-v-50bf0749]{inset-inline:var(--spacing-md);inset-inline-end:var(--spacing-md);top:auto;bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom,0px));max-width:none}.erp-notify-stack[data-v-50bf0749]{flex-direction:column}.erp-notify-enter-from[data-v-50bf0749],.erp-notify-leave-to[data-v-50bf0749]{transform:translateY(12px)}}:root{--bs-blue: #0070cd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffac07;--bs-green: #00ae8d;--bs-teal: #20c997;--bs-cyan: #00aff1;--bs-black: #000;--bs-white: #fff;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0070cd;--bs-primary-rgb: 0, 112, 205;--bs-primary-dark: #005ba3;--bs-primary-light: #e6f2fa;--bs-success: #00ae8d;--bs-success-rgb: 0, 174, 141;--bs-success-light: #e6f7f4;--bs-info: #00aff1;--bs-info-rgb: 0, 175, 241;--bs-info-light: #e6f8fe;--bs-warning: #ffac07;--bs-warning-rgb: 255, 172, 7;--bs-warning-light: #fff8e6;--bs-danger: #dc3545;--bs-danger-rgb: 220, 53, 69;--bs-danger-light: #fce8ea;--bs-dark: #003461;--bs-dark-rgb: 0, 52, 97;--bs-light: #f8f9fa;--bs-light-rgb: 248, 249, 250;--risk-low: #16a34a;--risk-medium: #ca8a04;--risk-high: #ea580c;--risk-critical: #dc2626;--risk-low-surface: #dcfce7;--risk-medium-surface: #fef9c3;--risk-high-surface: #ffedd5;--risk-critical-surface: #fee2e2;--risk-low-on-surface: #166534;--risk-medium-on-surface: #854d0e;--risk-high-on-surface: #9a3412;--risk-critical-on-surface: #991b1b;--bg-body: #f0f4f8;--bg-card: #ffffff;--bg-sidebar: #003461;--bg-sidebar-hover: #004a8a;--bg-header: #ffffff;--text-primary: #003461;--text-secondary: #495057;--text-muted: #6c757d;--text-light: #ffffff;--text-link: #0070cd;--border-color: #dee2e6;--border-radius-sm: 4px;--border-radius: 8px;--border-radius-lg: 12px;--border-radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 52, 97, .08);--shadow: 0 2px 8px rgba(0, 52, 97, .1);--shadow-lg: 0 4px 16px rgba(0, 52, 97, .12);--shadow-xl: 0 8px 32px rgba(0, 52, 97, .15);--kpi-stripe-neutral: #5a6b7c;--kpi-stripe-muted: #8b97a3;--kpi-stripe-accent: #0062b3;--kpi-stripe-pending: #9a7b2d;--kpi-stripe-positive: #0a8f7a;--kpi-stripe-negative: #b84d57;--font-family: "Tajawal", "Neo Sans W23", "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--sidebar-width: 280px;--sidebar-collapsed-width: 80px;--header-height: 70px;--card-padding: 1.5rem;--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease;--insights-canvas: #f3f2f1;--insights-panel-bg: #ffffff;--insights-panel-border: #edebe9;--insights-panel-radius: 2px;--insights-panel-shadow: 0 .3px .9px rgba(0, 0, 0, .08), 0 1.6px 3.6px rgba(0, 0, 0, .05);--insights-panel-shadow-hover: 0 2px 8px rgba(0, 0, 0, .09);--insights-title: #323130;--insights-subtitle: #605e5c;--insights-gap: 1.25rem;--insights-chart-grid: rgba(225, 223, 221, .95);--insights-chart-tick: #605e5c}[data-theme=dark]{--bg-body: #0f172a;--bg-card: #1e293b;--bg-sidebar: #0f172a;--bg-header: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: #334155;--insights-canvas: #1b1a19;--insights-panel-bg: #252423;--insights-panel-border: #3b3a39;--insights-title: #f3f2f1;--insights-subtitle: #c8c6c4;--insights-chart-grid: rgba(255, 255, 255, .08);--insights-chart-tick: #a19f9d}.page-title-card{margin-bottom:.5rem;border:1px solid color-mix(in srgb,var(--border-color) 85%,var(--bs-primary) 15%);box-shadow:inset 3px 0 0 0 var(--bs-primary)}:root:dir(rtl) .page-title-card{box-shadow:inset -3px 0 0 0 var(--bs-primary)}.risks-data-row.risks-row--low{border-inline-start:4px solid var(--risk-low)}.risks-data-row.risks-row--medium{border-inline-start:4px solid var(--risk-medium)}.risks-data-row.risks-row--high{border-inline-start:4px solid var(--risk-high)}.risks-data-row.risks-row--critical{border-inline-start:4px solid var(--risk-critical)}.risks-sev-pill{display:inline-block;padding:2px var(--spacing-sm);border-radius:999px;font-size:var(--font-size-xs);font-weight:700;text-transform:capitalize}.risks-sev-pill--low{background:var(--risk-low-surface);color:var(--risk-low-on-surface)}.risks-sev-pill--medium{background:var(--risk-medium-surface);color:var(--risk-medium-on-surface)}.risks-sev-pill--high{background:var(--risk-high-surface);color:var(--risk-high-on-surface)}.risks-sev-pill--critical{background:var(--risk-critical-surface);color:var(--risk-critical-on-surface)}.page-content.insights-surface{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--spacing-md);align-content:start;background:#f1f5f9;padding-top:0;padding-bottom:var(--spacing-lg);box-sizing:border-box;min-width:0}.page-content.insights-surface>*{min-width:0}.page-content.insights-surface .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--insights-gap);margin-bottom:0}@media(max-width:1199.98px){.page-content.insights-surface .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.page-content.insights-surface .kpi-grid{grid-template-columns:minmax(0,1fr)}}.page-content.insights-surface .kpi-card{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow);padding:var(--spacing-md) var(--spacing-lg);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.page-content.insights-surface .kpi-card:hover{transform:none;box-shadow:var(--insights-panel-shadow-hover);border-color:#0070cd38}.page-content.insights-surface .kpi-card:before{width:3px;opacity:.95}.page-content.insights-surface .kpi-label{color:var(--insights-subtitle);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.02em}.page-content.insights-surface .kpi-value{color:var(--insights-title);font-weight:700;font-size:clamp(1.35rem,2.2vw,1.75rem)}.page-content.insights-surface .quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--insights-gap);margin-bottom:0}@media(max-width:991.98px){.page-content.insights-surface .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.page-content.insights-surface .quick-actions{grid-template-columns:minmax(0,1fr)}}.page-content.insights-surface .quick-action-btn{flex-direction:row;justify-content:flex-start;align-items:center;text-align:start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow);min-height:3.25rem}.page-content.insights-surface .quick-action-btn:hover{transform:none;border-color:var(--bs-primary);box-shadow:var(--insights-panel-shadow-hover)}.page-content.insights-surface .quick-action-btn i{font-size:1.25rem}.page-content.insights-surface .quick-action-btn span{font-weight:600;font-size:var(--font-size-sm);color:var(--insights-title)}.page-content.insights-surface .map-section.card{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow);overflow:hidden}.page-content.insights-surface .map-section .card-header{background:var(--insights-panel-bg);border-bottom:1px solid var(--insights-panel-border);padding:var(--spacing-md) var(--spacing-lg)}.page-content.insights-surface .map-section .card-title{color:var(--insights-title);font-size:var(--font-size-base);font-weight:700;margin:0}.page-content.insights-surface .map-section .card-title i{color:var(--insights-subtitle)}.page-content.insights-surface .map-section.map-section--fullscreen,.page-content.insights-surface .map-section:fullscreen{background:var(--insights-panel-bg)}.page-content.insights-surface .dashboard-map-canvas{border-radius:0}.page-content.insights-surface .map-legend{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);box-shadow:var(--insights-panel-shadow);border-radius:var(--insights-panel-radius)}.page-content.insights-surface .recent-projects{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow)}.page-content.insights-surface .recent-projects .card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--insights-panel-border);background:var(--insights-panel-bg)}.page-content.insights-surface .recent-projects .card-title{color:var(--insights-title);font-size:var(--font-size-base);font-weight:700}.page-content.insights-surface .recent-projects .card-title i{color:var(--insights-subtitle)}.page-content.insights-surface .recent-projects .text-muted{color:var(--insights-subtitle)!important}.page-content.insights-surface .project-item:hover{background:#0070cd0f}.page-content.insights-surface .project-item{border-bottom-color:var(--insights-panel-border)}.page-content.insights-surface .dashboard-charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--insights-gap);margin-bottom:0}@media(max-width:991.98px){.page-content.insights-surface .dashboard-charts-grid{grid-template-columns:minmax(0,1fr)}}.page-content.insights-surface .dashboard-load-error{border-radius:var(--insights-panel-radius);margin-bottom:0}.page-content.insights-surface .reports-toolbar-lead{color:var(--insights-subtitle);margin-bottom:var(--insights-gap)}.page-content.insights-surface .reports-section{margin-bottom:0}.page-content.insights-surface .reports-section-title{color:var(--insights-title);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--spacing-sm)}.page-content.insights-surface .projects-vue .projects-list-shell,.page-content.insights-surface .projects-table-container.projects-list-shell{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow);overflow:hidden}.page-content.insights-surface .projects-list-shell__header{border-bottom:1px solid var(--insights-panel-border);background:var(--insights-panel-bg)}.page-content.insights-surface .projects-list-shell__title{color:var(--insights-title);font-size:var(--font-size-base)}.page-content.insights-surface .reports-section>.projects-table-container.reports-table-wrap{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow);padding:var(--spacing-lg)}.page-content.insights-surface .reports-table-wrap .projects-table{border-radius:var(--insights-panel-radius)}.page-content.insights-surface .reports-jobs-empty{color:var(--insights-subtitle)}.page-content.insights-surface .app-filters-section,.page-content.insights-surface .projects-filters.app-filters-section{background:var(--insights-panel-bg);border:1px solid var(--insights-panel-border);border-radius:var(--insights-panel-radius);box-shadow:var(--insights-panel-shadow)}.info-card,.info-card-header,.info-card-body,.info-card-title,.info-list,.info-item,.info-label,.info-value{text-align:start}.info-card-title{justify-content:flex-start}.info-card-title i{flex-shrink:0}.info-card-header{gap:var(--spacing-md)}.info-card-header>.btn,.info-card-header>a.btn{flex-shrink:0}.kpi-card,.kpi-content,.kpi-label,.kpi-value{text-align:start}.kpi-change{justify-content:flex-start}.stats-cards .stats-cards__row-title{text-align:start}.global-catalog-page .info-card-title{justify-content:flex-start}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-body);min-height:100vh;overflow-x:hidden;text-align:start}:root:dir(rtl){direction:rtl}:root:dir(ltr){direction:ltr}:root:dir(rtl) .fa-arrow-left,:root:dir(rtl) .fa-arrow-right,:root:dir(rtl) .fa-chevron-left,:root:dir(rtl) .fa-chevron-right{transform:scaleX(-1)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;margin-bottom:var(--spacing-md);color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}a{color:var(--text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--bs-primary-dark)}.app-container{display:flex;min-height:100vh}.main-content{flex:1;min-width:0;margin-right:var(--sidebar-width);padding:var(--spacing-xl);padding-top:calc(var(--header-height) + var(--spacing-xl));padding-bottom:0;transition:margin-right var(--transition-base)}.main-content.sidebar-collapsed{margin-right:var(--sidebar-collapsed-width)}.sidebar{position:fixed;right:0;top:0;width:var(--sidebar-width);height:100vh;background:linear-gradient(165deg,rgba(255,255,255,.06) 0%,transparent 42%),linear-gradient(180deg,#0c2744,#001f3f 52%,#00152b);color:var(--text-light);z-index:1000;transition:transform var(--transition-base),width var(--transition-base);overflow-x:hidden;overflow-y:auto;box-shadow:-6px 0 28px #00000038;border-inline-start:1px solid rgba(255,255,255,.07)}.sidebar.collapsed{width:var(--sidebar-collapsed-width);transform:none}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .sidebar-subtitle,.sidebar.collapsed .nav-item span,.sidebar.collapsed .nav-section-title{display:none}.sidebar.collapsed .sidebar-header{justify-content:center;padding:var(--spacing-md) var(--spacing-sm)}.sidebar.collapsed .sidebar-logo{margin:0}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--spacing-md)}.sidebar.collapsed .nav-item i{margin:0;font-size:1.25rem}.sidebar-header{padding:var(--spacing-lg) var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 70%)}.sidebar-logo{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;max-width:208px;min-height:82px;padding:.55rem .8rem;border-radius:var(--border-radius-lg);background:#fff;box-shadow:0 8px 20px #00000029,inset 0 0 0 1px #00346114;text-decoration:none;color:inherit}.sidebar-logo:focus-visible{outline:2px solid rgba(0,175,241,.6);outline-offset:3px}.sidebar-logo__img{display:block;max-width:min(156px,100%);height:auto;max-height:64px;width:auto;object-fit:contain}.sidebar.collapsed .sidebar-logo__img{max-width:40px;max-height:40px}.sidebar.collapsed .sidebar-logo{min-height:56px;max-width:56px;padding:.35rem}.sidebar-title{font-size:var(--font-size-lg);font-weight:700;white-space:nowrap}.sidebar-subtitle{font-size:var(--font-size-xs);opacity:.7}.sidebar-nav{padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xl)}.nav-section{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-xs);margin-top:var(--spacing-sm)}.nav-section-title{font-size:10px;font-weight:700;text-transform:uppercase;opacity:.45;letter-spacing:.12em;margin-bottom:0}.nav-item{display:flex;align-items:center;gap:var(--spacing-md);margin:0 var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius);color:#ffffffd1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);border-right:3px solid transparent;text-decoration:none}.nav-item:hover{background:#ffffff14;color:var(--text-light)}.nav-item.active{background:linear-gradient(90deg,#0070cd6b,#0070cd40);color:#fff;border-right-color:var(--bs-primary);font-weight:600;box-shadow:inset 0 0 0 1px #ffffff24,0 8px 18px #0003}.nav-item i{font-size:var(--font-size-lg);width:24px;text-align:center;opacity:.95}.nav-item:hover i,.nav-item.active i{opacity:1}.nav-item.active i{color:#d6edff}.nav-item.active span{text-shadow:0 1px 0 rgba(0,0,0,.16)}.nav-item span{white-space:nowrap}.header{position:fixed;top:0;left:0;right:var(--sidebar-width);min-height:var(--header-height);background:linear-gradient(180deg,#fff,#f4f8fc);border-bottom:1px solid rgba(0,52,97,.08);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-sm) var(--spacing-md);padding:var(--spacing-sm) var(--spacing-xl);z-index:999;transition:right var(--transition-base);box-shadow:0 1px 2px #0034610f,0 4px 24px #0034610a}.header.sidebar-collapsed{right:var(--sidebar-collapsed-width)}.header-right{display:flex;align-items:center;gap:var(--spacing-lg);min-width:0;flex:1 1 auto}.header-title-wrap{min-width:0;flex:1}.header-logo{height:48px;display:flex;align-items:center}.header-logo img{height:100%;width:auto;max-width:200px;object-fit:contain}.header-left{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.page-title{font-size:var(--font-size-xl);font-weight:700;margin:0;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-muted);max-width:100%}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--bs-primary)}.breadcrumb-separator{margin:0 var(--spacing-xs)}.search-box{position:relative;width:min(300px,100%);max-width:100%;flex:0 1 auto}.search-box input{width:100%;min-width:0;padding:var(--spacing-sm) var(--spacing-md);padding-inline-end:40px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-family:inherit;font-size:var(--font-size-sm);background:var(--bg-body);transition:all var(--transition-fast)}.search-box input:focus{outline:none;border-color:var(--bs-primary);box-shadow:0 0 0 3px #0070cd1a}.search-box i{position:absolute;inset-inline-end:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.header .search-box{width:min(440px,100%)}.header .search-box input{padding:var(--spacing-md) calc(var(--spacing-xl) + 10px) var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:48px}.header .search-box i{inset-inline-end:var(--spacing-lg);font-size:1.125rem}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.icon-btn{width:40px;height:40px;border:none;background:var(--bg-body);border-radius:var(--border-radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);position:relative;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.icon-btn:hover{background:var(--bs-primary-light);color:var(--bs-primary)}.icon-btn.icon-btn--nav{width:42px;height:42px;border-radius:50%;background:var(--bg-card);border:1px solid rgba(0,52,97,.12);color:var(--text-primary);box-shadow:0 1px 2px #0034610f}.icon-btn.icon-btn--nav:hover{background:var(--bs-primary-light);border-color:#0070cd59;color:var(--bs-primary);transform:translateY(-1px);box-shadow:0 4px 12px #0070cd1f}.icon-btn.icon-btn--nav[aria-expanded=true]{background:var(--bs-primary-light);border-color:#0070cd73;color:var(--bs-primary);box-shadow:inset 0 0 0 1px #0070cd26}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;inset-inline-start:0;width:min(350px,calc(100vw - 24px));max-width:calc(100vw - 16px);background:var(--bg-card);border:1px solid rgba(0,52,97,.08);border-radius:var(--border-radius-xl);box-shadow:0 4px 6px #0034610a,0 16px 40px #0034611f;margin-top:var(--spacing-sm);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--transition-base),transform var(--transition-base),visibility var(--transition-base);z-index:1100;overflow:hidden}.dropdown-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(0,52,97,.08);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);background:linear-gradient(180deg,rgba(0,112,205,.06) 0%,transparent 100%)}.dropdown-header h4{margin:0;font-size:var(--font-size-sm);font-weight:800;letter-spacing:.02em;color:var(--text-primary)}.dropdown-header a{font-size:var(--font-size-xs);font-weight:600}.dropdown-body{max-height:400px;overflow-y:auto}.dropdown-item{padding:var(--spacing-md) var(--spacing-lg);display:flex;gap:var(--spacing-md);border-bottom:1px solid var(--border-color);transition:background var(--transition-fast);cursor:pointer;text-decoration:none;color:inherit;text-align:right}.dropdown-item:hover{background:var(--bs-primary-light)}.dropdown-item-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dropdown-item-content{flex:1}.dropdown-item-title{font-weight:600;font-size:var(--font-size-sm);margin-bottom:2px}.dropdown-item-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.4}.dropdown-item-time{font-size:10px;color:var(--text-muted);margin-top:4px}.dropdown-footer{padding:var(--spacing-sm) var(--spacing-md);text-align:center;border-top:1px solid rgba(0,52,97,.08);background:linear-gradient(180deg,transparent 0%,rgba(0,112,205,.04) 100%)}.dropdown-footer a{font-size:var(--font-size-xs);font-weight:700;color:var(--bs-primary)}.dropdown-footer a:hover{color:var(--bs-primary-dark)}.icon-btn .badge{position:absolute;top:-2px;inset-inline-end:-2px;inset-inline-start:auto;left:auto;right:auto;min-width:18px;height:18px;padding:0 5px;background:linear-gradient(145deg,#e85d6f 0%,var(--bs-danger) 100%);color:#fff;font-size:10px;font-weight:800;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-card);box-shadow:0 2px 6px #dc354573}.user-menu{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-body);border-radius:var(--border-radius);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.user-menu:hover{background:var(--bs-primary-light)}.user-menu.user-menu-trigger{padding:4px 6px 4px 4px;gap:10px;background:var(--bg-card);border:1px solid rgba(0,52,97,.12);border-radius:999px;box-shadow:0 1px 2px #0034610f}.user-menu.user-menu-trigger:hover{border-color:#0070cd59;background:linear-gradient(180deg,#ffffff 0%,var(--bs-primary-light) 100%);box-shadow:0 4px 14px #0070cd1f;transform:translateY(-1px)}.user-menu.user-menu-trigger[aria-expanded=true]{border-color:#0070cd80;box-shadow:0 0 0 3px #0070cd1f,0 4px 12px #0070cd1a}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#1a7fd4 0%,var(--bs-primary) 55%,#005ba3 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm);box-shadow:0 0 0 2px var(--bg-card),0 0 0 3px #0070cd40}.user-menu-trigger .user-avatar{width:38px;height:38px}.user-menu-chevron{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#0034610f;color:var(--text-muted);font-size:10px;flex-shrink:0;transition:background var(--transition-fast)}.user-menu-trigger:hover .user-menu-chevron{background:#0070cd1f;color:var(--bs-primary)}.user-info{text-align:right;min-width:0}.user-name{font-weight:700;font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.user-role{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.header-dropdown:has(.user-menu-trigger) .dropdown-menu{inset-inline-start:auto;inset-inline-end:0}.card{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:var(--font-size-lg);font-weight:700;margin:0;display:flex;align-items:center;gap:var(--spacing-sm)}.card-title i{color:var(--bs-primary)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--bg-body)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.kpi-card{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);display:flex;align-items:flex-start;gap:var(--spacing-lg);box-shadow:var(--shadow);transition:all var(--transition-base);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;inset-inline-start:0;width:4px;height:100%;background:var(--kpi-color, var(--bs-primary))}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.kpi-icon{width:37px;height:37px;border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);flex-shrink:0}.kpi-icon.primary{background:var(--bs-primary-light);color:var(--bs-primary)}.kpi-icon.success{background:var(--bs-success-light);color:var(--bs-success)}.kpi-icon.warning{background:var(--bs-warning-light);color:var(--bs-warning)}.kpi-icon.danger{background:var(--bs-danger-light);color:var(--bs-danger)}.kpi-icon.info{background:var(--bs-info-light);color:var(--bs-info)}.kpi-icon.neutral{background:#5a6b7c1a;color:#4a5a68}.kpi-icon.muted{background:#8b97a324;color:#6b7782}.kpi-icon.accent{background:#0062b31a;color:var(--kpi-stripe-accent)}.kpi-icon.pending{background:#9a7b2d1a;color:#7d6824}.kpi-icon.positive{background:#0a8f7a1a;color:var(--kpi-stripe-positive)}.kpi-icon.negative{background:#b84d571a;color:#9a3f48}.kpi-content{flex:1}.kpi-label{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--spacing-xs)}.kpi-value{font-size:var(--font-size-3xl);font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:var(--spacing-xs)}.kpi-change{font-size:var(--font-size-xs);display:flex;align-items:center;gap:var(--spacing-xs)}.kpi-change.positive{color:var(--bs-success)}.kpi-change.negative{color:var(--bs-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--bs-primary);color:#fff}.btn-primary:hover{background:var(--bs-primary-dark);transform:translateY(-1px)}.btn-secondary{background:var(--bg-body);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bs-gray-200)}.btn-success{background:var(--bs-success);color:#fff}.btn-success:hover{background:#009577}.btn-danger{background:var(--bs-danger);color:#fff}.btn-danger:hover{background:#c82333}.btn-outline{background:transparent;border:2px solid var(--bs-primary);color:var(--bs-primary)}.btn-outline:hover{background:var(--bs-primary);color:#fff}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs)}.btn-icon{width:36px;height:36px;padding:0}.table-container{overflow-x:auto}.table-responsive{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-behavior:smooth}.table-responsive::-webkit-scrollbar{height:10px}.table-responsive::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--bs-primary) 30%,var(--border-color));border-radius:999px}.data-table{width:100%;border-collapse:collapse}.data-table th{background:var(--bg-body);font-weight:600;font-size:var(--font-size-sm);color:var(--text-muted);white-space:nowrap}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bs-primary-light)}.data-table tbody td{font-size:var(--font-size-sm)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--border-radius-sm)}.badge-primary{background:var(--bs-primary-light);color:var(--bs-primary)}.badge-success{background:var(--bs-success-light);color:var(--bs-success)}.badge-warning{background:var(--bs-warning-light);color:#856404}.badge-danger{background:var(--bs-danger-light);color:var(--bs-danger)}.badge-info{background:var(--bs-info-light);color:#0c5460}.risk-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-size:var(--font-size-xs);font-weight:600}.risk-badge:before{content:"";width:8px;height:8px;border-radius:50%}.risk-low{background:var(--risk-low-surface);color:var(--risk-low-on-surface)}.risk-low:before{background:var(--risk-low)}.risk-medium{background:var(--risk-medium-surface);color:var(--risk-medium-on-surface)}.risk-medium:before{background:var(--risk-medium)}.risk-high{background:var(--risk-high-surface);color:var(--risk-high-on-surface)}.risk-high:before{background:var(--risk-high)}.risk-critical{background:var(--risk-critical-surface);color:var(--risk-critical-on-surface)}.risk-critical:before{background:var(--risk-critical)}.progress{height:8px;background:var(--bs-gray-200);border-radius:4px;overflow:hidden}.progress-bar{height:100%;border-radius:4px;transition:width var(--transition-base)}.progress-bar.primary{background:var(--bs-primary)}.progress-bar.success{background:var(--bs-success)}.progress-bar.warning{background:var(--bs-warning)}.progress-bar.danger{background:var(--bs-danger)}.tabs{display:flex;gap:var(--spacing-xs);border-bottom:2px solid var(--border-color);margin-bottom:var(--spacing-lg);overflow-x:auto}.tab-item{padding:var(--spacing-md) var(--spacing-lg);font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast);white-space:nowrap;display:flex;align-items:center;gap:var(--spacing-sm)}.tab-item:hover{color:var(--bs-primary)}.tab-item.active{color:var(--bs-primary);border-bottom-color:var(--bs-primary)}.tab-item i{font-size:var(--font-size-base)}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.form-control{width:100%;padding:var(--spacing-md);font-family:inherit;font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-card);color:var(--text-primary);transition:all var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--bs-primary);box-shadow:0 0 0 3px #0070cd26}.form-control::placeholder{color:var(--text-muted)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23495057' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 12px center;padding-left:40px}.filters-bar{display:flex;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--bg-card);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.filter-item{min-width:180px}.filter-item label{display:block;font-size:var(--font-size-xs);color:var(--text-muted);margin-bottom:var(--spacing-xs)}.filter-item select,.filter-item input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-family:inherit;font-size:var(--font-size-sm)}.map-container{width:100%;height:400px;border-radius:var(--border-radius-lg);overflow:hidden;position:relative;background:var(--bs-gray-200)}.map-container.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;height:100vh;border-radius:0}.map-controls{position:absolute;top:var(--spacing-md);left:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs);z-index:10}.alert{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius);display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.alert-warning{background:var(--bs-warning-light);border-right:4px solid var(--bs-warning);color:#856404}.alert-danger{background:var(--bs-danger-light);border-right:4px solid var(--bs-danger);color:var(--bs-danger)}.alert-success{background:var(--bs-success-light);border-right:4px solid var(--bs-success);color:var(--bs-success)}.alert-info{background:var(--bs-info-light);border-right:4px solid var(--bs-info);color:#0c5460}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000;opacity:0;visibility:hidden;transition:all var(--transition-fast)}.modal-overlay.active{opacity:1;visibility:visible}.modal{background:var(--bg-card);border-radius:var(--border-radius-xl);width:90%;max-width:600px;max-height:90vh;overflow:hidden;transform:scale(.9) translateY(20px);transition:transform var(--transition-base)}.modal-overlay.active .modal{transform:scale(1) translateY(0)}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--font-size-lg);font-weight:700;margin:0}.modal-close{width:32px;height:32px;border:none;background:var(--bg-body);border-radius:var(--border-radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bs-danger-light);color:var(--bs-danger)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;max-height:60vh}.modal-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color);display:flex;justify-content:flex-start;gap:var(--spacing-md)}.modal .modal-body .modal-footer.modal-footer-inline{background:transparent}.folder-tree{font-size:var(--font-size-sm)}.folder-item{cursor:pointer}.folder-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);transition:background var(--transition-fast)}.folder-header:hover{background:var(--bs-primary-light)}.folder-header.active{background:var(--bs-primary-light);color:var(--bs-primary)}.folder-children{padding-right:var(--spacing-lg);display:none}.folder-item.open>.folder-children{display:block}.folder-icon{color:var(--bs-warning)}.file-icon{color:var(--bs-primary)}.timeline{position:relative;padding-right:30px}.timeline:before{content:"";position:absolute;right:10px;top:0;bottom:0;width:2px;background:var(--border-color)}.timeline-item{position:relative;padding-bottom:var(--spacing-lg)}.timeline-dot{position:absolute;right:-30px;top:0;width:20px;height:20px;background:var(--bs-primary);border-radius:50%;border:3px solid var(--bg-card);box-shadow:var(--shadow)}.timeline-dot.success{background:var(--bs-success)}.timeline-dot.warning{background:var(--bs-warning)}.timeline-dot.danger{background:var(--bs-danger)}.timeline-content{background:var(--bg-body);padding:var(--spacing-md);border-radius:var(--border-radius)}.timeline-date{font-size:var(--font-size-xs);color:var(--text-muted);margin-bottom:var(--spacing-xs)}.timeline-title{font-weight:600;margin-bottom:var(--spacing-xs)}.timeline-desc{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}@media(max-width:1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:992px){.sidebar{transform:translate(100%)}.sidebar.collapsed{transform:translate(0)}.main-content{margin-right:0;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.header{right:0;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.search-box{width:min(240px,36vw)}.header .search-box{width:min(360px,58vw)}.page-title{font-size:var(--font-size-lg)}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.header{align-items:stretch;padding:var(--spacing-sm) var(--spacing-md)}.header-right{flex:1 1 100%;width:100%;gap:var(--spacing-sm)}.header-title-wrap{flex:1;min-width:0}.header-left{flex:1 1 100%;width:100%;flex-wrap:nowrap;gap:var(--spacing-sm);align-items:center}.search-box{flex:1 1 auto;width:auto!important;min-width:0;max-width:none}.header-actions{flex-shrink:0;gap:var(--spacing-sm)}.main-content{padding-top:calc(128px + var(--spacing-lg))}.breadcrumb{font-size:var(--font-size-xs);line-height:1.35}.grid-2,.grid-3,.grid-4,.kpi-grid{grid-template-columns:1fr}.filters-bar{flex-direction:column}.filter-item{width:100%}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:576px){.page-title{font-size:var(--font-size-base);-webkit-line-clamp:3}.user-info,.user-menu-chevron{display:none}.user-menu{padding:var(--spacing-xs);gap:0}.user-menu.user-menu-trigger{padding:2px}.main-content{padding-top:calc(132px + var(--spacing-md))}.icon-btn.icon-btn--nav{width:38px;height:38px}}@media(max-width:400px){.header-right{gap:var(--spacing-xs)}.breadcrumb{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;max-width:100%;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.main-content{padding-top:calc(118px + var(--spacing-md))}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-slide-in{animation:slideInRight .3s ease forwards}.animate-slide-up{animation:slideUp .3s ease forwards}.animate-pulse{animation:pulse 2s infinite}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--bs-primary)!important}.text-success{color:var(--bs-success)!important}.text-warning{color:var(--bs-warning)!important}.text-danger{color:var(--bs-danger)!important}.bg-primary{background-color:var(--bs-primary)!important}.bg-success{background-color:var(--bs-success)!important}.bg-warning{background-color:var(--bs-warning)!important}.bg-danger{background-color:var(--bs-danger)!important}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.p-1{padding:var(--spacing-sm)}.p-2{padding:var(--spacing-md)}.p-3{padding:var(--spacing-lg)}.p-4{padding:var(--spacing-xl)}.d-flex{display:flex}.align-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing-sm)}.gap-2{gap:var(--spacing-md)}.gap-3{gap:var(--spacing-lg)}.rounded{border-radius:var(--border-radius)}.rounded-lg{border-radius:var(--border-radius-lg)}.shadow{box-shadow:var(--shadow)}.shadow-lg{box-shadow:var(--shadow-lg)}html[lang=en]{--font-page-en: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif}html[lang=en] body{font-family:var(--font-page-en);font-feature-settings:"kern" 1,"liga" 1}html[lang=en] .page-content,html[lang=en] .dashboard-content{font-family:var(--font-page-en)}html[lang=en] .page-title{letter-spacing:-.02em;font-weight:700}html[lang=en] .page-toolbar-lead,html[lang=en] .documents-toolbar-lead,html[lang=en] .analytics-lead,html[lang=en] .settings-lead,html[lang=en] .contractors-toolbar-lead,html[lang=en] .risks-toolbar-lead,html[lang=en] .locations-toolbar-lead,html[lang=en] .approvals-toolbar-lead,html[lang=en] .reports-toolbar-lead,html[lang=en] .users-toolbar-lead{font-weight:500;letter-spacing:.01em;line-height:1.55}html[lang=en] .dashboard-content .quick-action-btn{letter-spacing:.02em;font-weight:600}html[lang=en] .dashboard-content .kpi-card,html[lang=en] .projects-vue .app-filters-section,html[lang=en] .documents-page .documents-upload-form,html[lang=en] .analytics-page .analytics-lead,html[lang=en] .analytics-page .app-filters-section,html[lang=en] .analytics-page .analytics-line-card,html[lang=en] .analytics-project-panel .analytics-line-card,html[lang=en] .settings-page .settings-section-header h3,html[lang=en] .settings-page .form-label,html[lang=en] .contractors-page .contractors-table-wrap{letter-spacing:.01em}html[lang=en] .risks-page .risk-badge,html[lang=en] .risks-page .doc-status-badge{letter-spacing:.02em}html[lang=en] .locations-page .locations-layout,html[lang=en] .locations-page .locations-create-form,html[lang=en] .location-profile-vue .location-profile-header{letter-spacing:.01em}html[lang=en] .location-profile-vue .location-profile-badge,html[lang=en] .location-profile-vue .location-status-pill{letter-spacing:.03em}html[lang=en] .approvals-page .table-title,html[lang=en] .approvals-page .approvals-table-wrap,html[lang=en] .reports-page .reports-section-title,html[lang=en] .reports-page .reports-section{letter-spacing:.01em}html[lang=en] .users-page .table-title,html[lang=en] .users-page .role-badge{letter-spacing:.02em}html[lang=en] .project-workspace-vue .project-tabs{letter-spacing:.01em}html[lang=en] .project-workspace-vue .project-tab{font-weight:500}html[lang=en] .project-workspace-vue .project-tab.active{font-weight:600}html[lang=en] .sidebar{left:0;right:auto;font-family:var(--font-page-en);box-shadow:6px 0 28px #00000038;border-inline-start:none;border-inline-end:1px solid rgba(255,255,255,.07)}html[lang=en] .main-content{margin-right:0;margin-left:var(--sidebar-width);transition:margin-left var(--transition-base)}html[lang=en] .main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}html[lang=en] .header{left:var(--sidebar-width);right:0;transition:left var(--transition-base)}html[lang=en] .header.sidebar-collapsed{left:var(--sidebar-collapsed-width)}html[lang=en] .sidebar .nav-item{border-left:none;border-right:3px solid transparent}html[lang=en] .sidebar .nav-item.active{border-right-color:var(--bs-primary);box-shadow:inset 0 0 0 1px #ffffff24,0 8px 18px #0003}html[lang=en] .sidebar .nav-section-title{letter-spacing:.1em;font-weight:700}html[lang=en] .sidebar .nav-item{letter-spacing:.015em}html[lang=en] .sidebar .nav-item span{font-weight:500}html[lang=en] .sidebar .nav-item.active span{font-weight:600}html[lang=en] .sidebar .nav-badge{letter-spacing:.04em;font-weight:600;font-size:.65rem}@media(max-width:992px){html[lang=en] .sidebar{transform:translate(-100%);left:0;right:auto}html[lang=en] .sidebar.collapsed{transform:translate(0)}html[lang=en] .main-content{margin-left:0}html[lang=en] .header{left:0;right:0}}.catalog-view-grid,.projects-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-md);padding:var(--spacing-lg)}.catalog-view-grid-empty,.projects-grid-empty{grid-column:1 / -1;padding:var(--spacing-xl) var(--spacing-md)}.catalog-grid-card,.project-card{min-height:240px;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-card);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.catalog-grid-card:hover,.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.catalog-grid-card__header,.catalog-grid-card__body,.catalog-grid-card__footer,.project-card__header,.project-card__body,.project-card__footer{padding:var(--spacing-md)}.catalog-grid-card__header,.project-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.catalog-grid-card__code{padding:.2rem .55rem;border-radius:999px;font-size:var(--font-size-xs);font-weight:700;color:var(--bs-primary);background:color-mix(in srgb,var(--bs-primary) 10%,var(--bg-card))}.catalog-grid-card__body,.project-card__body{flex:1}.catalog-grid-card__title{margin:0;font-size:var(--font-size-base)}.catalog-grid-card__subtitle{margin:var(--spacing-xs) 0 var(--spacing-sm);color:var(--text-muted);font-size:var(--font-size-sm)}.catalog-grid-card__footer{border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.catalog-grid-card--skeleton,.project-card--skeleton{border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--bg-body) 88%,#fff) 25%,color-mix(in srgb,var(--bg-body) 94%,#fff) 37%,color-mix(in srgb,var(--bg-body) 88%,#fff) 63%);background-size:400% 100%;animation:catalog-grid-skeleton 1.25s ease infinite}@keyframes catalog-grid-skeleton{0%{background-position:100% 0}to{background-position:0 0}}.global-catalog-page .table-header{flex-wrap:wrap;gap:var(--spacing-md)}@media(max-width:767.98px){.catalog-view-grid,.projects-grid{grid-template-columns:1fr;padding:var(--spacing-md)}}@media(min-width:768px)and (max-width:1199.98px){.catalog-view-grid,.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px)and (max-width:1399.98px){.catalog-view-grid,.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.projects-table-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);overflow:hidden;min-width:0;width:100%}.projects-vue .projects-list-shell{border:1px solid color-mix(in srgb,var(--bs-primary) 14%,var(--border-color));border-radius:14px;box-shadow:0 4px 6px -1px #0000000d,0 12px 32px -8px #0000001a;overflow:hidden;min-width:0;width:100%;max-width:100%;background:linear-gradient(180deg,var(--bg-card) 0%,color-mix(in srgb,var(--bg-card) 96%,var(--bs-primary)) 100%)}.table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.table-title{font-size:var(--font-size-lg);font-weight:700;display:flex;align-items:center;gap:var(--spacing-sm)}.table-title i{color:var(--bs-primary)}.table-actions{display:flex;gap:var(--spacing-sm)}.projects-vue .projects-list-shell__header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-color);background:linear-gradient(180deg,color-mix(in srgb,var(--bs-primary) 6%,var(--bg-card)) 0%,var(--bg-card) 100%)}.projects-vue .projects-list-shell__title{font-size:clamp(1.05rem,2vw,1.2rem);font-weight:800;letter-spacing:.02em;gap:.65rem;margin:0}.projects-vue .projects-list-shell__title .projects-list-shell__title-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:12px;background:color-mix(in srgb,var(--bs-primary) 16%,transparent);color:var(--bs-primary);font-size:1rem;box-shadow:inset 0 1px #ffffff59}.app-filters-section{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.app-filters-section__title{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-md);font-size:var(--font-size-base);font-weight:700}.app-filters-section__title i{color:var(--bs-primary)}.app-filters-section__row,.global-catalog-filters__row{display:flex;flex-wrap:wrap;gap:var(--spacing-md);min-width:0;width:100%}.global-catalog-filters__row+.global-catalog-filters__row{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.global-catalog-filters__clear-label{display:block;height:1.25rem}.app-filters-section .filter-group{flex:1 1 auto;min-width:min(100%,180px);max-width:100%}.app-filters-section .filter-group.filter-group-wide{min-width:min(100%,260px)}.app-filters-section .filter-group label{display:block;font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.app-filters-section .filter-group select,.app-filters-section .filter-group input,.app-filters-section .form-group .form-control{width:100%}.app-filters-section .filter-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.ui-data-table{display:flex;flex-direction:column;gap:0}.ui-data-table__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.ui-data-table__header .table-title{margin-bottom:0}.ui-data-table__toolbar{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.ui-data-table__filters{margin-bottom:var(--spacing-lg)}.ui-data-table__surface{margin-bottom:0}.app-table-wrapper{position:relative;min-width:0;max-width:100%}.app-table-wrapper--loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff73;pointer-events:none;z-index:1}.app-table-scroll,.table-responsive{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-behavior:smooth;min-width:0}.table-responsive>table,.table-responsive .projects-table,.table-responsive .app-table,.table-responsive .data-table{min-width:800px}[dir=rtl] .table-responsive{direction:rtl}[dir=rtl] .users-page .users-page__body .app-table-scroll.table-responsive,[dir=rtl] .users-page .users-page__body .app-table-scroll{direction:ltr;text-align:start;unicode-bidi:isolate}[dir=rtl] .users-page .users-page__body .app-table-wrapper{width:100%;max-width:100%}[dir=rtl] .users-page .users-page__body table.projects-table.data-table.app-table{direction:rtl;width:100%;margin-inline:0;min-inline-size:100%}[dir=rtl] .users-page.users-page--en .users-page__body table.projects-table.data-table.app-table{direction:ltr}[dir=rtl] .roles-logs .app-table-scroll.table-responsive,[dir=rtl] .roles-logs .app-table-scroll{direction:ltr;text-align:start;unicode-bidi:isolate}[dir=rtl] .roles-logs .app-table-wrapper{width:100%;max-width:100%}[dir=rtl] .roles-logs table.projects-table.data-table.app-table{direction:rtl;width:100%;margin-inline:0;min-inline-size:100%}.global-catalog-page.users-page .projects-list-shell__header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-color);background:linear-gradient(180deg,color-mix(in srgb,var(--bs-primary) 6%,var(--bg-card)) 0%,var(--bg-card) 100%)}.global-catalog-page.users-page .projects-list-shell__title{display:flex;align-items:center;font-size:clamp(1.05rem,2vw,1.2rem);font-weight:800;letter-spacing:.02em;gap:.65rem}.global-catalog-page.users-page .projects-list-shell__create{font-weight:600;letter-spacing:.02em;padding-inline:1.1rem;border-radius:10px;box-shadow:0 2px 6px color-mix(in srgb,var(--bs-primary) 28%,transparent),inset 0 1px #fff3}@media(max-width:1199.98px){.global-catalog-page.users-page .projects-list-shell__header{flex-wrap:wrap;gap:var(--spacing-md)}}@media(max-width:991.98px){.global-catalog-page.users-page .projects-list-shell__header{padding-inline:var(--spacing-lg)}}@media(max-width:768px){.global-catalog-page.users-page .projects-list-shell__header{flex-direction:column;align-items:stretch;padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-md)}.global-catalog-page.users-page .projects-list-shell__header .table-actions{width:100%;justify-content:stretch}}.users-page .users-page__body table.projects-table.data-table.app-table th,.users-page .users-page__body table.projects-table.data-table.app-table td,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table th,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table td{text-align:center;vertical-align:middle}.users-page .users-page__body table.projects-table.data-table.app-table td .users-name-cell,.users-page .users-page__body table.projects-table.data-table.app-table td .users-name-stack,.users-page .users-page__body table.projects-table.data-table.app-table td .roles-name-wrap,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table td .roles-name-wrap{align-items:center}.users-page .users-page__body table.projects-table.data-table.app-table td .action-btns,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table td .action-btns{justify-content:center}.users-page .users-page__body table.projects-table.data-table.app-table th.text-end,.users-page .users-page__body table.projects-table.data-table.app-table td.text-end,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table th.text-end,.users-page.roles-page .users-page__body table.projects-table.data-table.app-table td.text-end{text-align:center}.roles-logs table.projects-table.data-table.app-table th,.roles-logs table.projects-table.data-table.app-table td{text-align:center;vertical-align:middle}.roles-logs table.projects-table.data-table.app-table td .action-btns{justify-content:center}.app-table{min-width:800px}.projects-table,.data-table{width:100%;border-collapse:collapse}.projects-table th,.projects-table td{padding:var(--spacing-md) var(--spacing-lg);text-align:right;border-bottom:1px solid var(--border-color)}.data-table th,.data-table td{padding:var(--spacing-md);text-align:right;border-bottom:1px solid var(--border-color)}.users-name-cell{display:flex;flex-direction:column;gap:2px}.users-name{font-weight:600}.users-email{font-size:var(--font-size-xs)}.ui-data-table__empty-cell{text-align:center;color:var(--text-muted);padding:var(--spacing-2xl) var(--spacing-lg)!important;font-size:var(--font-size-base)}.projects-table th,.data-table th{background:var(--bg-body);font-weight:600;font-size:var(--font-size-sm);color:var(--text-muted);white-space:nowrap}.projects-table th.sortable{cursor:pointer;transition:color var(--transition-fast)}.projects-table th.sortable i{margin-right:var(--spacing-xs);font-size:10px}.projects-table tbody tr,.data-table tbody tr{transition:background var(--transition-fast)}.projects-table tbody tr:hover,.data-table tbody tr:hover{background:var(--bs-primary-light)}.projects-table th.sortable:hover{color:var(--bs-primary)}.projects-vue .projects-table tbody tr.projects-data-row{transition:background var(--transition-fast),box-shadow var(--transition-fast)}.projects-vue .projects-table tbody tr.projects-data-row:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--bs-primary) 9%,var(--bg-card)) 0%,var(--bg-card) 48%);box-shadow:inset 3px 0 0 var(--bs-primary)}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--bg-body)}.table-info{font-size:var(--font-size-sm);color:var(--text-muted)}.app-pagination{flex-wrap:wrap;gap:var(--spacing-md)}.app-pagination--rtl{flex-direction:row-reverse}.pagination{display:flex;gap:var(--spacing-xs);align-items:center;direction:ltr;flex-direction:row}.pagination.pagination--mirror{flex-direction:row-reverse}.pagination button{min-width:36px;height:36px;border:1px solid var(--border-color);background:var(--bg-card);border-radius:var(--border-radius);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.pagination button:hover{border-color:var(--bs-primary);color:var(--bs-primary)}.pagination button.active,.pagination-btn.active{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff}.pagination button:disabled,.pagination-btn:disabled{opacity:.45;cursor:not-allowed}.app-pagination__icon{display:inline-block;line-height:1}.ui-data-table__pagination{margin-top:var(--spacing-lg)}.text-muted{color:var(--text-muted)!important}.projects-vue .projects-empty{padding:3rem 1.5rem!important;vertical-align:middle}.projects-vue .projects-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);text-align:center;max-width:280px;margin:0 auto}.projects-vue .projects-empty-state__glyph{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;background:color-mix(in srgb,var(--bs-primary) 12%,var(--bg-body));color:var(--bs-primary);font-size:1.5rem;box-shadow:inset 0 1px #ffffff80}.projects-vue .projects-empty-state__text{margin:0;font-size:var(--font-size-sm);font-weight:500;color:var(--text-muted);line-height:1.5}@media(max-width:768px){.app-filters-section__row{gap:var(--spacing-sm)}.projects-vue .projects-list-shell__header{flex-direction:column;align-items:stretch;padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-md)}.projects-vue .projects-list-shell__header .table-actions{width:100%;justify-content:stretch}.projects-vue .app-table-scroll{margin-inline:calc(-1 * var(--spacing-sm));padding-inline:var(--spacing-sm);scroll-padding-inline:var(--spacing-sm)}.projects-vue table.projects-table.app-table{min-width:56rem}.projects-vue .projects-table th,.projects-vue .projects-table td{padding:var(--spacing-sm) var(--spacing-md)}.projects-vue .table-footer.app-pagination{flex-direction:column;align-items:stretch;text-align:center;gap:var(--spacing-md);padding:var(--spacing-md)}.projects-vue .table-footer.app-pagination .pagination{flex-wrap:wrap;justify-content:center}}
