@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:var(--space-lg)}.login-card{width:100%;max-width:380px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-3xl) var(--space-2xl)}.login-brand{text-align:center;margin-bottom:var(--space-2xl)}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--teal);color:#fff;font-family:var(--font-display);font-size:28px;border-radius:var(--radius-md);margin-bottom:var(--space-md)}.login-brand h1{font-family:var(--font-display);font-size:32px;letter-spacing:3px;color:var(--text-primary)}.login-brand p{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs)}.login-input{width:100%;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);outline:none;transition:border-color var(--transition-fast)}.login-input:focus{border-color:var(--teal)}.login-error{margin-top:var(--space-sm);font-size:var(--font-size-xs);color:var(--error)}.login-btn{width:100%;margin-top:var(--space-lg);padding:12px;background:var(--teal);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast)}.login-btn:hover{background:var(--teal-light)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-lg);border-bottom:1px solid var(--border)}.sidebar-logo{width:36px;height:36px;background:var(--teal);color:#fff;font-family:var(--font-display);font-size:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0}.sidebar-title{font-family:var(--font-display);font-size:20px;letter-spacing:2px;color:var(--text-primary);line-height:1}.sidebar-subtitle{font-size:var(--font-size-2xs);color:var(--text-muted);letter-spacing:1px;text-transform:uppercase}.sidebar-nav{flex:1;padding:var(--space-md) 0;overflow-y:auto}.nav-section{margin-bottom:var(--space-md)}.nav-section-label{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-2xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px}.nav-section-icon{font-size:12px}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:8px var(--space-lg);padding-left:calc(var(--space-lg) + 4px);font-size:var(--font-size-sm);color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast);border-left:3px solid transparent;cursor:pointer}.nav-item:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.nav-item.active{color:var(--teal);background:var(--teal-dim);border-left-color:var(--teal);font-weight:500}.nav-item-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}.sidebar-footer{padding:var(--space-lg);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--space-sm)}.theme-toggle{width:32px;height:32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.theme-toggle:hover{border-color:var(--teal);color:var(--teal)}.logout-btn{flex:1;padding:6px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.logout-btn:hover{border-color:var(--error);color:var(--error)}.main-content{flex:1;margin-left:var(--sidebar-w);padding:var(--space-2xl);min-height:100vh;overflow-x:hidden}@media(max-width:768px){.sidebar{width:60px;min-width:60px}.sidebar-title,.sidebar-subtitle,.nav-section-label,.nav-item span:not(.nav-item-icon),.logout-btn{display:none}.nav-item{padding-left:0;justify-content:center;border-left:none}.main-content{margin-left:60px;padding:var(--space-lg)}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-2xl);gap:var(--space-lg)}.page-header-text h1{font-family:var(--font-display);font-size:28px;letter-spacing:2px;color:var(--text-primary);line-height:1}.page-header-text p{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--space-xs)}.page-header-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:8px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary)}.btn:hover{border-color:var(--teal);color:var(--teal)}.btn-primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-primary:hover{background:var(--teal-light);border-color:var(--teal-light);color:#fff}.btn-icon{padding:8px}.summary-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.metric-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg);transition:border-color var(--transition-fast)}.metric-card:hover{border-color:var(--border-light)}.metric-label{font-size:var(--font-size-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-xs)}.metric-value{font-family:var(--font-mono);font-size:24px;font-weight:600;color:var(--text-primary);line-height:1}.metric-value.teal{color:var(--teal)}.metric-value.accent{color:var(--accent)}.metric-value.success{color:var(--success)}.metric-value.warning{color:var(--warning)}.metric-value.error{color:var(--error)}.metric-sub{font-size:var(--font-size-2xs);color:var(--text-muted);margin-top:var(--space-xs)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot.healthy{background:var(--success)}.status-dot.warning{background:var(--warning)}.status-dot.error{background:var(--error)}.status-dot.unknown{background:var(--text-muted)}.section{margin-bottom:var(--space-2xl)}.section-title{font-family:var(--font-mono);font-size:var(--font-size-2xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.section-title:after{content:"";flex:1;height:1px;background:var(--border)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-xl)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.card-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-2xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th:hover{color:var(--teal)}.data-table td{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.data-table tr:hover td{background:var(--bg-surface-hover)}.data-table td.mono{font-family:var(--font-mono);font-size:var(--font-size-xs)}.data-table td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.alert-banner{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-sm)}.alert-banner.info{background:#3b82f614;border:1px solid rgba(59,130,246,.2);color:var(--info)}.alert-banner.warning{background:#f59e0b14;border:1px solid rgba(245,158,11,.2);color:var(--warning)}.alert-banner.error{background:#ef444414;border:1px solid rgba(239,68,68,.2);color:var(--error)}.alert-banner.success{background:#22c55e14;border:1px solid rgba(34,197,94,.2);color:var(--success)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-2xs);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge.success{background:#22c55e1f;color:var(--success)}.badge.warning{background:#f59e0b1f;color:var(--warning)}.badge.error{background:#ef44441f;color:var(--error)}.badge.info{background:#3b82f61f;color:var(--info)}.badge.muted{background:#6e6a651f;color:var(--text-muted)}.badge.teal{background:var(--teal-dim);color:var(--teal)}.badge.accent{background:var(--accent-subtle);color:var(--accent)}.form-input{width:100%;max-width:420px;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);outline:none;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--teal)}.form-input::placeholder{color:var(--text-muted)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-muted);gap:var(--space-md)}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}@media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-sm)}.check-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.check-card .check-icon{width:10px;height:10px;border-radius:50%;flex-shrink:0}.check-icon.pass{background:var(--success)}.check-icon.warn{background:var(--warning)}.check-icon.fail{background:var(--error)}.check-icon.skip{background:var(--text-muted)}.check-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.check-msg{font-size:var(--font-size-2xs);color:var(--text-muted)}.stacked-bar-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:6px}.stacked-bar-label{width:50px;text-align:right;font-family:var(--font-mono);font-size:var(--font-size-2xs);color:var(--text-muted);flex-shrink:0}.stacked-bar-track{flex:1;height:24px;background:#ffffff08;border-radius:4px;overflow:hidden;display:flex}.stacked-bar-fill{height:100%;display:flex;align-items:center;padding-left:6px;font-family:var(--font-mono);font-size:10px;color:#fff;font-weight:600;min-width:fit-content;transition:width 1s ease}.stacked-bar-meta{width:90px;text-align:right;font-family:var(--font-mono);font-size:var(--font-size-2xs);color:var(--text-muted);flex-shrink:0}.chart-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg)}.chart-card .recharts-text{fill:var(--text-muted);font-size:11px}.chart-card .recharts-cartesian-grid line{stroke:var(--border)}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted);font-size:var(--font-size-sm)}:root{--font-display: "Bebas Neue", Impact, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-size-base: .875rem;--font-size-sm: .8125rem;--font-size-xs: .75rem;--font-size-2xs: .6875rem;--accent: #C4724A;--accent-light: #D4885A;--accent-muted: rgba(196, 114, 74, .35);--accent-subtle: rgba(196, 114, 74, .08);--teal: #4A9E9E;--teal-light: #5CBABA;--teal-dim: rgba(74, 158, 158, .15);--bg-primary: #0D1517;--bg-secondary: #131E20;--bg-surface: #1A2A2C;--bg-surface-hover: #223638;--bg-surface-elevated: #2A3E40;--border: #1E3032;--border-light: #2A4244;--text-primary: #E8E4DF;--text-secondary: #B0AAA3;--text-muted: #6E6A65;--success: #22C55E;--warning: #F59E0B;--error: #EF4444;--info: #3B82F6;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--sidebar-w: 240px;--header-h: 0px}[data-theme=light]{--accent: #A65E3A;--accent-light: #C4724A;--accent-muted: rgba(166, 94, 58, .3);--accent-subtle: rgba(166, 94, 58, .06);--teal: #2A6B6B;--teal-light: #3A8A8A;--teal-dim: rgba(42, 107, 107, .1);--bg-primary: #F2F0EC;--bg-secondary: #EAE7E2;--bg-surface: #FFFFFF;--bg-surface-hover: #F5F3EF;--bg-surface-elevated: #FFFFFF;--border: #D8D4CD;--border-light: #E2DFD9;--text-primary: #0D1A1A;--text-secondary: #2A3E3E;--text-muted: #5A6A6A}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--font-size-base);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}a{color:var(--teal);text-decoration:none}a:hover{color:var(--teal-light)}code,pre{font-family:var(--font-mono);font-size:var(--font-size-sm)}
