:root,[data-theme=light]{--bg-primary: #FFFFFF;--bg-secondary: #F5F7FA;--bg-card: #FFFFFF;--bg-elevated: #FFFFFF;--text-primary: #1A1A2E;--text-secondary: #6B7280;--text-muted: #7A8491;--border-color: #E5E7EB;--border-light: #F0F0F0;--shadow-card: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-card-hover: 0 4px 12px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.12);--shadow-xl: 0 12px 48px rgba(0,0,0,.16);--tcdd-primary: #003087;--tcdd-primary-light: #005bbb;--tcdd-primary-dark: #001d52;--tcdd-primary-alpha: rgba(0, 48, 135, .1);--color-critical: #D55E00;--color-warning: #C88B00;--color-success: #009E73;--color-info: #0072B2;--color-accent: #56B4E9;--color-neutral: #999999;--color-critical-alpha: rgba(213, 94, 0, .1);--color-warning-alpha: rgba(200, 139, 0, .1);--color-success-alpha: rgba(0, 158, 115, .1);--color-info-alpha: rgba(0, 114, 178, .1);--sidebar-bg: linear-gradient(180deg, #0A1628 0%, #0E1E33 50%, #0A1628 100%);--sidebar-text: rgba(255,255,255,.95);--sidebar-text-muted: rgba(255,255,255,.6);--sidebar-text-dim: rgba(255,255,255,.35);--sidebar-border: rgba(255,255,255,.08);--table-header-bg: linear-gradient(180deg, #fafafa 0%, #f0f0f0 100%);--table-header-color: var(--text-secondary);--table-row-even: rgba(0, 48, 135, .02);--table-row-hover: rgba(0, 48, 135, .05);--table-border: #e8e8e8;--chart-grid: #E5E7EB;--chart-text: #6B7280;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--login-bg: linear-gradient(135deg, #001529 0%, #003087 40%, #005bbb 80%, #0077cc 100%);--login-btn: linear-gradient(135deg, #003087 0%, #005bbb 50%, #0077cc 100%);--login-btn-hover: linear-gradient(135deg, #003a9e 0%, #0066cc 50%, #0088dd 100%);--login-error-color: #ff8a8a;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-primary: #0F1923;--bg-secondary: #1A2634;--bg-card: #1E2D3D;--bg-elevated: #243447;--text-primary: #E8EAED;--text-secondary: #9AA5B4;--text-muted: #6B7A8A;--border-color: #2D3F50;--border-light: #243447;--shadow-card: 0 1px 3px rgba(0,0,0,.3);--shadow-card-hover: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--shadow-xl: 0 12px 48px rgba(0,0,0,.6);--color-critical-alpha: rgba(213, 94, 0, .12);--color-warning-alpha: rgba(200, 139, 0, .12);--color-success-alpha: rgba(0, 158, 115, .12);--color-info-alpha: rgba(0, 114, 178, .12);--sidebar-bg: linear-gradient(180deg, #0A1628 0%, #0E1E33 50%, #0A1628 100%);--sidebar-text: rgba(255,255,255,.92);--sidebar-text-muted: rgba(255,255,255,.55);--sidebar-text-dim: rgba(255,255,255,.3);--sidebar-border: rgba(255,255,255,.08);--table-header-bg: linear-gradient(180deg, #243447 0%, #1E2D3D 100%);--table-header-color: var(--text-secondary);--table-row-even: rgba(255, 255, 255, .02);--table-row-hover: rgba(255, 255, 255, .05);--table-border: #2D3F50;--chart-grid: #2D3F50;--chart-text: #9AA5B4;--login-bg: linear-gradient(135deg, #060E16 0%, #0A1929 30%, #001d52 70%, #002a6b 100%);--login-btn: linear-gradient(135deg, #003a9e 0%, #005bbb 50%, #0077cc 100%);--login-btn-hover: linear-gradient(135deg, #004ab8 0%, #0077cc 50%, #0099ee 100%);--login-error-color: #ff9a9a}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.tabular-nums,.ant-statistic-content-value,.ant-statistic-content,.kpi-value,.ant-table-cell,.ant-badge-count,.ant-tag,.ant-progress-text{font-variant-numeric:tabular-nums}.skip-to-content{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999}.skip-to-content--visible{position:fixed;left:8px;top:8px;width:auto;height:auto;overflow:visible;background:var(--tcdd-primary);color:#fff;padding:8px 16px;border-radius:4px;font-size:14px;font-weight:600}.ant-card{transition:transform var(--transition-fast),box-shadow var(--transition-fast)!important;border-radius:var(--radius-md)!important;border-color:var(--border-color)!important;background:var(--bg-card)!important;box-shadow:var(--shadow-card)!important}.ant-card:hover{box-shadow:var(--shadow-card-hover)!important}.ant-card[role=button]:hover,.ant-card-hoverable:hover{transform:translateY(-2px)}.ant-card-hoverable:hover{transform:translateY(-4px)!important;box-shadow:var(--shadow-lg)!important}.ant-table-thead>tr>th{background:var(--table-header-bg)!important;font-size:13px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.3px;color:var(--table-header-color)!important;border-bottom:2px solid var(--table-border)!important}.ant-table-tbody>tr:nth-child(2n)>td{background:var(--table-row-even)!important}.ant-table-tbody>tr:hover>td{background:var(--table-row-hover)!important}.table-row-error td{background:#d55e000f!important}.table-row-warning td{background:#c88b000f!important}.row-critical td{background:#d55e000f!important}.row-warning td{background:#c88b000f!important}.table-row-error td:first-child,.row-critical td:first-child{border-left:3px solid var(--color-critical)!important;position:relative}.table-row-warning td:first-child,.row-warning td:first-child{border-left:3px solid var(--color-warning)!important;position:relative}.table-row-error td:first-child:before,.row-critical td:first-child:before{content:"";display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--color-critical);margin-right:6px;vertical-align:middle;flex-shrink:0}.table-row-warning td:first-child:before,.row-warning td:first-child:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-warning);margin-right:6px;vertical-align:middle;flex-shrink:0}.ant-tag{border-radius:12px!important;font-weight:500!important}.ant-btn-primary{box-shadow:0 2px 8px #0030874d!important;transition:all var(--transition-fast)!important}.ant-btn-primary:hover{box-shadow:0 4px 16px #00308766!important;transform:translateY(-1px)}.ant-statistic-content-value{font-variant-numeric:tabular-nums;transition:color var(--transition-normal)}.ant-layout-sider,.app-sider{background:var(--sidebar-bg)!important;box-shadow:2px 0 8px #00000026!important}.ant-menu-dark{background:transparent!important}.ant-menu-dark .ant-menu-item{margin:4px 8px!important;border-radius:8px!important;transition:all var(--transition-fast)!important}.ant-menu-dark .ant-menu-item:hover{background:#ffffff1a!important}.ant-menu-dark .ant-menu-item-selected{background:#ffffff2e!important;box-shadow:0 2px 8px #0003!important;border-left:3px solid var(--color-accent)!important}.ant-layout-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color)}.app-header-enhanced{border-bottom:2px solid transparent!important;background-image:linear-gradient(var(--bg-primary),var(--bg-primary)),linear-gradient(90deg,#003087,#0050d0,#003087)!important;background-origin:border-box!important;background-clip:padding-box,border-box!important}.ant-badge .ant-badge-count{animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.alarm-badge-active .ant-badge-count{animation:alarmPulseActive 1.4s ease-in-out infinite!important;box-shadow:0 0 0 2px #ff4d4f4d}@keyframes alarmPulseActive{0%,to{transform:scale(1);box-shadow:0 0 0 2px #ff4d4f4d}50%{transform:scale(1.2);box-shadow:0 0 0 6px #ff4d4f00}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.ant-breadcrumb{padding:12px 24px!important}.ant-breadcrumb a{transition:color var(--transition-fast)!important}.ant-breadcrumb a:hover{color:var(--tcdd-primary)!important}svg [role=button]:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:50%}.ant-input:focus,.ant-input-focused,.ant-input-number:focus-within,.ant-select-focused .ant-select-selector{border-color:var(--tcdd-primary)!important;box-shadow:0 0 0 3px #0030871a!important}.ant-skeleton-element .ant-skeleton-input,.ant-alert{border-radius:var(--radius-sm)!important}.ant-modal-content{border-radius:var(--radius-lg)!important;overflow:hidden}.ant-tooltip-inner{border-radius:6px!important;font-size:12px!important;padding:6px 12px!important}.kpi-card-blue{border-top:3px solid var(--tcdd-primary)!important}.kpi-card-green{border-top:3px solid var(--color-success)!important}.kpi-card-orange{border-top:3px solid var(--color-warning)!important}.kpi-card-red{border-top:3px solid var(--color-critical)!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-fade-in{animation:fadeInUp .35s ease-out}.ant-layout-content>*{animation:fadeInUp .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cohort-transition{animation:fadeIn .3s ease-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.input-error{animation:shake .4s ease}@keyframes criticalPulse{0%,to{border-color:#d55e0066;box-shadow:0 0 #d55e0033}50%{border-color:#d55e00cc;box-shadow:0 0 12px 2px #d55e0026}}.alarm-critical-pulse{border:2px solid rgba(213,94,0,.4)!important;animation:criticalPulse 2s ease-in-out infinite!important;border-radius:var(--radius-sm)!important}@keyframes tabHeaderSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes tabContentFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tab-content-fade{animation:tabContentFade .25s ease-out}.user-avatar-wrapper{position:relative;display:inline-flex}.user-status-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;background:var(--color-success);border:2px solid var(--bg-primary);border-radius:50%;z-index:1}.dashboard-section-divider{display:flex;align-items:center;gap:8px;margin:24px 0 16px;color:var(--text-secondary);font-size:15px;font-weight:600}.dashboard-section-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border-color),transparent)}.sidebar-logo-rail{display:inline-block;width:26px;height:26px;margin-right:8px;vertical-align:middle;flex-shrink:0}.sidebar-logo-collapsed{position:relative;font-size:22px;font-weight:800}.sidebar-logo-collapsed:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:20px;height:2px;background:#ffffff73;border-radius:1px}.vehicle-info-card{border-left:4px solid var(--tcdd-primary);background:var(--bg-secondary);padding:10px 16px;margin-bottom:16px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;font-size:13px;transition:background var(--transition-normal)}.vehicle-info-card .info-label{color:var(--text-muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.vehicle-info-card .info-value{font-weight:600;color:var(--text-primary)}.boji-separator td{background:var(--bg-secondary)!important;border-bottom:2px dashed var(--border-color)!important;text-align:center;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:4px 0!important}.kpi-card{cursor:pointer;transition:all var(--transition-fast)!important}.kpi-card:focus-visible{outline:3px solid var(--tcdd-primary-light);outline-offset:2px;box-shadow:var(--shadow-lg)!important}.kpi-card .kpi-value{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.kpi-card .kpi-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px}.kpi-card .kpi-icon-circle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;flex-shrink:0}.kpi-card .kpi-trend{font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:10px}.kpi-card .kpi-trend.up-bad{color:var(--color-critical);background:#d55e0014}.kpi-card .kpi-trend.down-good,.kpi-card .kpi-trend.up-good{color:var(--color-success);background:#009e7314}.kpi-card .kpi-trend.down-bad{color:var(--color-critical);background:#d55e0014}.kpi-card .kpi-subtitle{font-size:11px;color:var(--text-muted);margin-top:4px}.mini-sparkline{display:inline-block;vertical-align:middle;width:50px;height:20px}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:16px}.filter-bar .active-filter{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:12px;background:#00308714;color:var(--tcdd-primary);cursor:pointer}[data-theme=dark] .ant-layout-content{background:var(--bg-secondary)!important}[data-theme=dark] .ant-layout-header{background:var(--bg-card)!important}[data-theme=dark] .ant-layout-sider{background:var(--sidebar-bg)!important}[data-theme=dark] .app-header-enhanced{background-image:linear-gradient(var(--bg-card),var(--bg-card)),linear-gradient(90deg,#003087,#0050d0,#003087)!important}[data-theme=dark] .ant-card{background:var(--bg-card)!important;border-color:var(--border-color)!important}#nprogress .bar{background:var(--tcdd-primary)!important;height:3px!important}#nprogress .peg{box-shadow:0 0 10px var(--tcdd-primary),0 0 5px var(--tcdd-primary)!important}.meas-cell{position:relative;padding:2px 0}.meas-input.ant-input-number{background:transparent!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;box-shadow:none!important;padding:2px 4px!important;font-variant-numeric:tabular-nums}.meas-input.ant-input-number:hover{border-bottom-color:var(--tcdd-primary-light)!important}.meas-input.ant-input-number-focused,.meas-input.ant-input-number:focus-within{border-bottom:2px solid #56B4E9!important;box-shadow:none!important}.meas-input.ant-input-number .ant-input-number-handler-wrap{display:none!important}.meas-input.ant-input-number .ant-input-number-input{text-align:center;font-size:14px;font-variant-numeric:tabular-nums;padding:2px 4px}.meas-input.input-error.ant-input-number{border-bottom:2px solid var(--color-critical)!important;animation:shake .4s ease}.meas-input.meas-warning.ant-input-number{border-bottom:2px solid var(--color-warning)!important}.prev-measurement{font-size:10px;margin-top:2px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.first-meas{color:var(--text-muted)}@keyframes rowFlash{0%{background:#56b4e940!important}to{background:transparent}}.row-flash td{animation:rowFlash .6s ease-out!important}.bogie-group-cell{text-align:center;vertical-align:middle!important;border-right:2px solid rgba(0,48,135,.15)!important;background:var(--bg-secondary)!important;padding:4px 6px!important}[data-theme=dark] .bogie-group-cell{background:#ffffff08!important;border-right-color:#56b4e926!important}.status-icon-cell{text-align:center!important;vertical-align:middle!important;padding:0 4px!important}.measurement-action-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-wrap:wrap;margin-top:16px}.measurement-action-bar .action-bar-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.measurement-action-bar .action-bar-buttons{display:flex;align-items:center;gap:8px}.torna-bulk-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;color:var(--text-secondary)}.bogie-separator-row td{border-top:2px dashed var(--border-color)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.page-fade-in,.tab-content-fade,.ant-layout-content>*{animation:none!important}.ant-card:hover,.ant-card-hoverable:hover,.ant-btn-primary:hover{transform:none!important}.alarm-critical-pulse,.ant-badge .ant-badge-count,.alarm-badge-active .ant-badge-count,.input-error,.table-skeleton-cell,.chart-skeleton-bar,.chart-skeleton-line{animation:none!important}}.ant-btn-ghost-cancel{border-color:var(--border-color)!important;color:var(--text-secondary)!important;background:transparent!important}.ant-btn-ghost-cancel:hover{border-color:var(--tcdd-primary)!important;color:var(--tcdd-primary)!important}@media(max-width:576px){.ant-modal-body{padding:16px!important}}.header-region-separator{width:1px;height:20px;background:var(--border-color);margin:0 4px}.header-region-text{font-size:11px;color:var(--text-muted);white-space:nowrap}.error-boundary-container{display:flex;justify-content:center;align-items:center;min-height:60vh;max-height:100vh;overflow-y:auto}.table-skeleton-row{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--border-light)}.table-skeleton-cell{height:14px;border-radius:4px;background:var(--border-light);animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.bogie-separator-row td{border-bottom:3px solid var(--tcdd-primary-alpha, rgba(0, 48, 135, .15))!important;position:relative}.bogie-separator-row td:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:linear-gradient(90deg,var(--tcdd-primary-alpha, rgba(0, 48, 135, .1)),transparent)}.chart-skeleton{display:flex;flex-direction:column;gap:8px;padding:16px}.chart-skeleton-header{display:flex;gap:16px;margin-bottom:8px}.chart-skeleton-body{position:relative;border-left:2px solid var(--border-color, #e5e7eb);border-bottom:2px solid var(--border-color, #e5e7eb);padding:12px 0 0 8px;display:flex;align-items:flex-end;gap:4px;min-height:200px}.chart-skeleton-bar{flex:1;border-radius:3px 3px 0 0;background:var(--border-light, #f0f0f0);animation:skeleton-shimmer 1.5s ease-in-out infinite}.chart-skeleton-line{position:absolute;top:30%;left:8px;right:0;height:2px;background:var(--border-color, #e5e7eb);border-radius:1px;animation:skeleton-shimmer 1.5s ease-in-out infinite}.chart-skeleton-line:nth-child(2){top:55%}.chart-skeleton-line:nth-child(3){top:75%}@keyframes skeleton-gradient{0%{background-position:-600px 0}to{background-position:600px 0}}.table-skeleton-cell,.chart-skeleton-bar{background:linear-gradient(90deg,var(--border-light, #f0f0f0) 0%,var(--bg-primary, #fafafa) 50%,var(--border-light, #f0f0f0) 100%);background-size:600px 100%;animation:skeleton-gradient 1.8s ease-in-out infinite}.ant-table-tbody>tr{transition:background-color .2s ease}.recharts-default-tooltip{animation:fadeIn .15s ease-out}.ant-tag{transition:box-shadow .2s ease,transform .15s ease}.ant-tag:hover{box-shadow:0 2px 6px #0000001f;transform:translateY(-1px)}.ant-statistic-content{transition:color .3s ease}@media(max-width:1024px){.kpi-card{padding:12px}.kpi-card .kpi-value{font-size:26px}.chart-skeleton-body{min-height:160px}.dashboard-section-divider{font-size:13px}}@media(max-width:768px){.kpi-card .kpi-value{font-size:24px}.kpi-card .kpi-icon-circle{width:36px;height:36px}.vehicle-info-card{gap:12px 16px}.mini-sparkline{display:none}.ant-table-thead>tr>th:nth-child(n+5),.ant-table-tbody>tr>td:nth-child(n+5){display:none}.recharts-wrapper{font-size:10px}.page-fade-in{padding:16px!important}}@media(max-width:576px){.kpi-card .kpi-label{font-size:10px}.kpi-card .kpi-value{font-size:20px}.kpi-card .kpi-subtitle,.kpi-card .kpi-watermark{display:none}.dashboard-section-divider{font-size:12px;gap:6px}body{font-size:13px}.ant-card-head-title{font-size:13px!important}.ant-statistic-title{font-size:11px!important}.ant-statistic-content{font-size:18px!important}.page-fade-in{padding:12px!important}.ant-table-thead>tr>th:nth-child(n+4),.ant-table-tbody>tr>td:nth-child(n+4){display:none}.chart-export-btn{padding:2px 6px!important;font-size:10px!important}.ant-card-body{padding:12px!important}.ant-tabs-tab{padding:8px 10px!important;font-size:12px!important}}@media print{.ant-layout-sider,.ant-layout-header,.ant-drawer,.skip-to-content,.alarm-badge-active,.ant-btn,.ant-segmented,.ant-select,.ant-input,.ant-pagination,.chart-export-btn,.recharts-brush{display:none!important}body,.ant-layout,.ant-layout-content{background:#fff!important;color:#000!important;min-height:auto!important}.ant-card{border:1px solid #ddd!important;box-shadow:none!important;break-inside:avoid}.ant-table{page-break-inside:auto}.ant-table-row{page-break-inside:avoid}.ant-table-thead>tr>th{background:#f5f5f5!important;color:#000!important}.recharts-surface{max-width:100%!important}.kpi-card{border:1px solid #ccc!important;box-shadow:none!important}.page-fade-in,.alarm-critical-pulse{animation:none!important}@page{margin:1.5cm;size:A4}}#main-content>*{animation:contentFadeIn .2s ease-out}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.heatmap-table tr:hover td{filter:brightness(1.12);transition:filter var(--transition-fast)}.heatmap-table td{transition:filter var(--transition-fast)}:root,[data-theme=light]{--glass-bg: rgba(255, 255, 255, .72);--glass-bg-strong: rgba(255, 255, 255, .88);--glass-border: rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px rgba(31, 38, 135, .08), inset 0 1px 0 rgba(255,255,255,.7);--glass-shadow-hover: 0 16px 48px rgba(31, 38, 135, .14), inset 0 1px 0 rgba(255,255,255,.8);--header-glass-bg: rgba(255, 255, 255, .85);--kpi-gradient-blue: linear-gradient(135deg, rgba(0,48,135,.06) 0%, rgba(0,91,187,.1) 100%);--kpi-gradient-green: linear-gradient(135deg, rgba(0,158,115,.06) 0%, rgba(0,158,115,.12) 100%);--kpi-gradient-orange: linear-gradient(135deg, rgba(230,159,0,.06) 0%, rgba(230,159,0,.12) 100%);--kpi-gradient-red: linear-gradient(135deg, rgba(213,94,0,.06) 0%, rgba(213,94,0,.12) 100%)}[data-theme=dark]{--glass-bg: rgba(30, 45, 61, .82);--glass-bg-strong: rgba(30, 45, 61, .95);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255,255,255,.05);--glass-shadow-hover: 0 16px 48px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255,255,255,.08);--header-glass-bg: rgba(15, 25, 35, .92);--kpi-gradient-blue: linear-gradient(135deg, rgba(0,48,135,.15) 0%, rgba(0,91,187,.22) 100%);--kpi-gradient-green: linear-gradient(135deg, rgba(0,158,115,.12) 0%, rgba(0,158,115,.2) 100%);--kpi-gradient-orange: linear-gradient(135deg, rgba(230,159,0,.12) 0%, rgba(230,159,0,.2) 100%);--kpi-gradient-red: linear-gradient(135deg, rgba(213,94,0,.12) 0%, rgba(213,94,0,.2) 100%)}.glass-card{background:var(--glass-bg)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important}.glass-card:hover{box-shadow:var(--glass-shadow-hover)!important}.kpi-card,.ant-card.kpi-card{position:relative!important;overflow:hidden!important;background:var(--glass-bg)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border:1px solid var(--glass-border)!important;box-shadow:var(--glass-shadow)!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important;height:100%!important}.kpi-card .ant-card-body,.ant-card.kpi-card .ant-card-body{height:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important}.dashboard-equal-row{align-items:stretch!important}.dashboard-equal-row>.ant-col{display:flex!important;flex-direction:column!important}.dashboard-equal-row>.ant-col>.ant-card,.dashboard-equal-row>.ant-col>div>.ant-card{flex:1!important}.kpi-card:hover,.ant-card.kpi-card:hover{box-shadow:var(--glass-shadow-hover)!important;transform:translateY(-4px)!important}.kpi-card-blue{background:var(--kpi-gradient-blue)!important;border-top:3px solid var(--tcdd-primary)!important}.kpi-card-green{background:var(--kpi-gradient-green)!important;border-top:3px solid var(--color-success)!important}.kpi-card-orange{background:var(--kpi-gradient-orange)!important;border-top:3px solid var(--color-warning)!important}.kpi-card-red{background:var(--kpi-gradient-red)!important;border-top:3px solid var(--color-critical)!important}.kpi-watermark{position:absolute;right:8px;bottom:8px;opacity:.07;color:currentColor;pointer-events:none;transition:opacity .25s ease,transform .25s ease;line-height:0}.kpi-card:hover .kpi-watermark{opacity:.11;transform:scale(1.06) rotate(-3deg)}.icon-container{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0}.icon-container-circle{border-radius:50%}.icon-container-sm{width:32px;height:32px}.icon-container-md{width:40px;height:40px}.icon-container-lg{width:48px;height:48px}.sidebar-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 12px 16px;border-bottom:1px solid rgba(255,255,255,.08);gap:6px;flex-shrink:0}.sidebar-header-title{color:#fff;font-size:14px;font-weight:600;line-height:1.3;text-align:center}.sidebar-header-subtitle{color:#ffffff80;font-size:12px;line-height:1.2;text-align:center}.sidebar-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:#ffffff4d;padding:20px 16px 6px;margin:0;-webkit-user-select:none;user-select:none;line-height:1}.sidebar-group:first-child .sidebar-group-title{padding-top:12px}.sidebar-nav-item{margin:2px 8px;border-radius:8px;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.sidebar-nav-item:not(.sidebar-nav-item--active):hover{background:#ffffff0f;transform:translate(2px)}.sidebar-nav-item--active{margin-left:0;border-radius:0 8px 8px 0;background:#56b4e91f;border-left:3px solid var(--color-accent)}.sidebar-nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;color:#ffffffb3!important;text-decoration:none!important;font-size:14px;font-weight:500;letter-spacing:.2px;transition:color var(--transition-fast);min-height:40px}.sidebar-nav-item--active .sidebar-nav-link{padding-left:17px;color:#fff!important;font-weight:600}.sidebar-nav-item:not(.sidebar-nav-item--active):hover .sidebar-nav-link{color:#fffffff2!important}.sidebar-nav-link svg{flex-shrink:0;color:#ffffff80;transition:color var(--transition-fast)}.sidebar-nav-item--active .sidebar-nav-link svg{color:var(--color-accent)}.sidebar-nav-item:not(.sidebar-nav-item--active):hover .sidebar-nav-link svg{color:#fffc}.sidebar-nav-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav-item--collapsed .sidebar-nav-link{padding:10px 0;justify-content:center;gap:0}.sidebar-nav-item--collapsed.sidebar-nav-item--active .sidebar-nav-link{padding-left:0;justify-content:center}.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding:12px 16px;flex-shrink:0}.sidebar-footer-inner{display:flex;align-items:center;gap:10px;min-height:40px}.sidebar-footer-inner--collapsed{justify-content:center}.sidebar-user-avatar{width:32px;height:32px;border-radius:8px;background:#56b4e933;color:var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0;cursor:default}.sidebar-footer-user-info{display:flex;flex-direction:column;overflow:hidden}.sidebar-footer-user-name{font-size:13px;font-weight:500;color:#ffffffd9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer-user-role{font-size:11px;color:#fff6;text-transform:capitalize;margin-top:1px}.live-status-widget{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:#009e7314;border:1px solid rgba(0,158,115,.2);cursor:default;-webkit-user-select:none;user-select:none}[data-theme=dark] .live-status-widget{background:#009e731f;border-color:#009e734d}.live-status-dot{position:relative;width:18px;height:18px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center}.live-status-dot:before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color-success);z-index:1}.live-status-dot:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:liveStatusPing 2s ease-out infinite}.live-status-label{font-size:11px;font-weight:600;color:var(--color-success);white-space:nowrap;letter-spacing:.3px}@keyframes liveStatusPing{0%{transform:scale(1);opacity:.7}80%{transform:scale(2);opacity:0}to{transform:scale(2);opacity:0}}.app-header-enhanced{background:var(--header-glass-bg)!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important}.tab-icon-container{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-fast)}.tab-icon-container:hover{transform:scale(1.1)}.alarm-timeline{padding:8px 0}.alarm-timeline-item{display:flex;gap:16px;position:relative;padding-bottom:24px}.alarm-timeline-item:last-child{padding-bottom:0}.alarm-timeline-item:not(:last-child):before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--border-color)}.alarm-timeline-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;margin-top:2px;box-shadow:0 0 0 3px var(--bg-secondary);transition:box-shadow var(--transition-fast)}.alarm-timeline-dot.dot-critical{background:var(--color-critical);animation:alarmDotPulse 2s ease-in-out infinite}.alarm-timeline-dot.dot-warning{background:var(--color-warning)}.alarm-timeline-dot.dot-info{background:var(--color-info)}.alarm-timeline-dot.dot-acknowledged{background:var(--color-success);opacity:.7}@keyframes alarmDotPulse{0%,to{box-shadow:0 0 0 3px var(--bg-secondary),0 0 0 5px #d55e004d}50%{box-shadow:0 0 0 3px var(--bg-secondary),0 0 0 9px #d55e0000}}.alarm-timeline-content{flex:1;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px 16px;box-shadow:var(--shadow-card);transition:all var(--transition-fast)}.alarm-timeline-content:hover{box-shadow:var(--shadow-card-hover);transform:translate(4px)}.alarm-timeline-content.content-critical{border-left:3px solid var(--color-critical)}.alarm-timeline-content.content-warning{border-left:3px solid var(--color-warning)}.alarm-timeline-content.content-info{border-left:3px solid var(--color-info)}.alarm-timeline-content.content-acknowledged{opacity:.65}.alarm-timeline-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.alarm-timeline-meta{font-size:11px;color:var(--text-muted);margin-top:6px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.premium-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 32px;gap:16px;text-align:center}.premium-empty-icon{width:80px;height:80px;border-radius:24px;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);margin-bottom:8px}.premium-empty-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.premium-empty-desc{font-size:13px;color:var(--text-muted);max-width:280px;line-height:1.6;margin:0}.page-motion{width:100%;min-height:100%}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.ant-btn-primary{background:linear-gradient(135deg,var(--tcdd-primary) 0%,var(--tcdd-primary-light) 100%)!important;border:none!important;font-weight:500!important}.ant-btn-primary:hover{background:linear-gradient(135deg,var(--tcdd-primary-light) 0%,#0077cc 100%)!important}.ant-menu-dark .ant-menu-item-selected{background:#56b4e91f!important}body,.ant-layout,.ant-layout-sider,.ant-layout-header,.ant-card,.ant-table-container,.ant-table-thead>tr>th,.ant-table-tbody>tr>td,.ant-popover-inner,.ant-modal-content,.ant-drawer-content,.ant-menu-item,.ant-select-selector,.ant-input{transition:background-color .3s ease,border-color .3s ease!important}.ant-table-tbody>tr.row-critical:hover>td{background:#d55e0012!important;box-shadow:inset 0 0 0 1px #d55e002e!important}.ant-table-tbody>tr.row-warning:hover>td{background:#c88b0012!important;box-shadow:inset 0 0 0 1px #c88b002e!important}.alarm-heatmap{display:flex;gap:3px;flex-wrap:nowrap;overflow-x:auto;padding:4px 0 8px}.heatmap-week{display:flex;flex-direction:column;gap:3px;flex-shrink:0}.heatmap-cell{width:12px;height:12px;border-radius:2px;cursor:default;transition:transform .1s ease,opacity .1s ease}.heatmap-cell:hover{transform:scale(1.35);opacity:.9}.heatmap-month-labels{display:flex;gap:3px;margin-bottom:4px;font-size:10px;color:var(--text-muted)}.arc-gauge-wrap{display:inline-flex;align-items:center;justify-content:center;position:relative}.bogie-diagram-3d-wrapper{perspective:900px;perspective-origin:50% 0%;display:inline-block}.bogie-diagram-3d-wrapper svg{transform:rotateX(7deg);transform-style:preserve-3d;transform-origin:50% 100%;transition:transform .4s ease;will-change:transform;filter:drop-shadow(0 8px 16px rgba(0,0,0,.15))}.bogie-diagram-3d-wrapper:hover svg{transform:rotateX(3deg) scale(1.015);filter:drop-shadow(0 12px 24px rgba(0,0,0,.2))}[data-theme=dark] .bogie-diagram-3d-wrapper svg{filter:drop-shadow(0 8px 20px rgba(0,0,0,.4))}.command-palette-overlay .ant-modal-content{padding:0!important;background:var(--glass-bg-strong, rgba(255,255,255,.96))!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;border:1px solid var(--glass-border)!important;border-radius:16px!important;overflow:hidden!important}[data-theme=dark] .command-palette-overlay .ant-modal-content{background:#141e2af7!important}.cmd-search-wrap{padding:12px 16px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:10px}.cmd-search-wrap input{border:none!important;background:transparent!important;box-shadow:none!important;font-size:15px;padding:0;flex:1}.cmd-search-wrap input:focus{box-shadow:none!important}.cmd-results-list{max-height:360px;overflow-y:auto}.cmd-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;border-radius:0;transition:background-color .12s ease}.cmd-item:hover,.cmd-item.cmd-item-active{background:var(--tcdd-primary-alpha, rgba(0,48,135,.08))}[data-theme=dark] .cmd-item:hover,[data-theme=dark] .cmd-item.cmd-item-active{background:#56b4e91f}.cmd-item-icon{width:32px;height:32px;border-radius:8px;background:var(--tcdd-primary-alpha, rgba(0,48,135,.08));display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--tcdd-primary)}.cmd-item-text{flex:1;min-width:0}.cmd-item-label{font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.3}.cmd-item-desc{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-item-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--border-light);color:var(--text-muted);flex-shrink:0}.cmd-footer{padding:8px 16px;border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-muted)}.cmd-footer kbd{display:inline-block;padding:1px 5px;font-size:10px;background:var(--bg-elevated, #f5f5f5);border:1px solid var(--border-color);border-radius:3px;margin:0 2px;font-family:inherit}.recharts-tooltip-cursor{stroke:var(--tcdd-primary)!important;stroke-width:1.5!important;stroke-dasharray:6 4!important;stroke-opacity:.6!important}@media(max-width:1024px){.live-status-widget,.header-region-separator,.header-region-text,.header-user-info{display:none}.app-header-enhanced .ant-space{gap:2px!important}}@media(max-width:768px){.premium-empty{padding:32px 16px}.alarm-timeline-item:before{left:11px}}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
