@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--surface-base:#0d0d0b;--surface-panel:#13120f;--surface-elevated:#1a1916;--surface-input:#111110;--surface-row:#161513;--accent:#e53935;--accent-dim:#b71c1c;--accent-subtle:#3a1010;--ink:#f5f5f0;--ink-soft:#a09d96;--ink-muted:#5c5a55;--ink-on-red:#fff;--status-ok:#4caf50;--status-warn:#ffa726;--status-fail:#e53935;--status-pending:#5c5a55;--border:#2a2825;--border-accent:#e53935;--border-soft:#1e1d1a;--rounded-none:0px;--rounded-xs:2px;--rounded-sm:4px;--rounded-md:6px;--rounded-lg:8px;--bg-base:var(--surface-base);--bg-card:var(--surface-panel);--bg-card-hover:var(--surface-elevated);--bg-header:var(--surface-base);--bg-toolbar:var(--surface-elevated);--bg-terminal:var(--surface-input);--border-color:var(--border);--border-color-glow:var(--border-accent);--border-subtle:var(--border-soft);--color-primary:var(--accent);--color-primary-dim:var(--accent-subtle);--color-secondary:var(--ink);--color-accent:var(--accent);--color-danger:var(--status-fail);--color-warning:var(--status-warn);--color-text-main:var(--ink);--color-text-muted:var(--ink-soft);--color-text-dark:var(--ink-muted);--color-text-label:var(--ink-soft)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--surface-base);color:var(--ink);min-height:100vh;font-family:Inter,sans-serif;line-height:1.5;overflow-x:hidden}body:before{content:"";z-index:-2;opacity:.12;background-image:url(/train-bg.jpg);background-position:50% 40%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--rounded-none)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.glass-card{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--rounded-md);padding:20px;transition:border-color .2s,background .2s;position:relative;overflow:hidden}.glass-card:hover{border-color:var(--border-accent);background:var(--surface-elevated)}.bento-grid{grid-template-columns:repeat(12,1fr);gap:24px;max-width:1440px;margin:0 auto;padding:24px;display:grid}.app-header{z-index:100;background:var(--surface-base);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:12px;display:flex}.brand-logo-img{border-radius:var(--rounded-sm);border:1px solid var(--border);object-fit:cover;flex-shrink:0;width:32px;height:32px}.brand-title{letter-spacing:-.3px;color:var(--ink);font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:1.2}.brand-tagline{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:400}nav{gap:8px;height:100%;display:flex}.nav-tab{color:var(--ink-soft);cursor:pointer;text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;height:100%;padding:0 16px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;transition:color .2s,border-color .2s}.nav-tab:hover{color:var(--ink)}.nav-tab.active{color:var(--ink);border-bottom:2px solid var(--accent)}.control-toolbar{background:var(--surface-elevated);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;height:44px;padding:0 24px;display:flex}.led-indicator{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.led-indicator.active{background-color:var(--status-ok)}.led-indicator.warning{background-color:var(--status-warn)}.led-indicator.danger{background-color:var(--status-fail)}.timeline-step-btn{border-radius:var(--rounded-xs);border:1px solid var(--border);width:20px;height:20px;color:var(--ink-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;transition:all .2s;display:flex}.timeline-step-btn:hover:not(:disabled){border-color:var(--border-accent);color:var(--ink)}.timeline-step-btn.passed{border-color:var(--border);background:var(--surface-panel);color:var(--ink-soft)}.timeline-step-btn.active{border-color:var(--border-accent);background:var(--accent);color:var(--ink-on-red)}.btn-primary{background:var(--accent);color:var(--ink-on-red);border-radius:var(--rounded-sm);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;height:36px;padding:10px 20px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-dim)}.btn-primary:disabled{opacity:.3;cursor:not-allowed}.btn-secondary{color:var(--ink);border:1px solid var(--border);border-radius:var(--rounded-sm);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;height:36px;padding:10px 20px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;transition:border-color .15s}.btn-secondary:hover:not(:disabled){border-color:var(--ink-soft)}.btn-secondary:disabled{opacity:.3;cursor:not-allowed}.card-header h3{letter-spacing:2px;text-transform:uppercase;color:var(--color-text-label);font-family:Inter,sans-serif;font-size:.75rem;font-weight:700}.scanner-overlay{pointer-events:none;background:linear-gradient(#0000 0%,#e31a220f 50%,#0000 100%);width:100%;height:100%;animation:2s linear infinite scan-vertical;position:absolute;top:0;left:0}@keyframes pulse-white{0%{box-shadow:0 0 #fff9}70%{box-shadow:0 0 0 5px #fff0}to{box-shadow:0 0 #fff0}}@keyframes pulse-red{0%{box-shadow:0 0 #e31a2299}70%{box-shadow:0 0 0 5px #e31a2200}to{box-shadow:0 0 #e31a2200}}@keyframes scan-vertical{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.bento-grid{animation:.35s ease-out fadeSlideIn}@media (width<=900px){.control-toolbar{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 16px}.toolbar-desc{display:none}.app-header{padding:0 16px}.bento-grid{gap:12px;padding:12px 16px}}.leaflet-container{font-family:inherit;background:#030712!important}.custom-map-tooltip{border:1px solid var(--border-color)!important;color:var(--color-text-main)!important;background:#040812eb!important;border-radius:4px!important;padding:4px 8px!important;font-family:JetBrains Mono,monospace!important;font-size:.62rem!important;box-shadow:0 4px 16px #0009!important}.custom-map-tooltip:before{border-top-color:var(--border-color)!important;border-bottom-color:var(--border-color)!important}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/200% 100%;border-radius:6px;animation:1.8s ease-in-out infinite shimmer}.skeleton-text{height:12px;margin-bottom:8px}.skeleton-bar{height:20px;margin-bottom:6px}.skeleton-circle{border-radius:50%;width:40px;height:40px}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.4s ease-out forwards fadeSlideUp}.stagger-children>*{opacity:0;animation:.35s ease-out forwards fadeSlideUp}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}@keyframes pulse-ring{0%{box-shadow:0 0 #e31a2266}70%{box-shadow:0 0 0 8px #e31a2200}to{box-shadow:0 0 #e31a2200}}.pulse-badge{animation:2s ease-out infinite pulse-ring}.stat-value{font-variant-numeric:tabular-nums;transition:all .3s ease-out}.tooltip-wrapper{cursor:help;position:relative}.tooltip-wrapper:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:100;background:#000000e6;border-radius:4px;padding:4px 10px;font-size:.6rem;transition:opacity .2s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-wrapper:hover:after{opacity:1}.badge-status{border-radius:var(--rounded-xs);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:6px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:400;display:inline-flex}.badge-status.healthy{color:var(--status-ok);background:#4caf5026;border:1px solid #4caf504d}.badge-status.failed{background:var(--accent-subtle);color:var(--accent);border:1px solid var(--border-accent)}.badge-status.pending{color:var(--ink-muted);border:1px solid var(--border);background:0 0}.badge-status.in-review{color:var(--status-warn);background:#ffa7261a;border:1px solid #ffa7264d}.badge-status.resolved{color:var(--ink-muted);border:1px solid var(--border);background:0 0}.status-ticker-container{color:var(--ink-muted);white-space:nowrap;text-align:center;flex:1;min-width:0;max-width:450px;margin:0 auto;font-family:JetBrains Mono,monospace;font-size:14px;overflow:hidden}
