:root{--color-primary: hsl(210, 100%, 50%);--color-primary-light: hsl(210, 100%, 60%);--color-primary-dark: hsl(210, 100%, 40%);--color-primary-rgb: 0, 122, 255;--color-success: hsl(145, 63%, 42%);--color-success-light: hsl(145, 63%, 52%);--color-success-dark: hsl(145, 63%, 32%);--color-success-rgb: 54, 163, 85;--color-warning: hsl(45, 100%, 51%);--color-warning-light: hsl(45, 100%, 61%);--color-warning-dark: hsl(45, 100%, 41%);--color-warning-rgb: 255, 193, 7;--color-danger: hsl(354, 70%, 54%);--color-danger-light: hsl(354, 70%, 64%);--color-danger-dark: hsl(354, 70%, 44%);--color-danger-rgb: 220, 53, 69;--color-neutral-50: hsl(0, 0%, 98%);--color-neutral-100: hsl(0, 0%, 94%);--color-neutral-200: hsl(0, 0%, 88%);--color-neutral-300: hsl(0, 0%, 80%);--color-neutral-400: hsl(0, 0%, 70%);--color-neutral-500: hsl(0, 0%, 60%);--color-neutral-600: hsl(0, 0%, 45%);--color-neutral-700: hsl(0, 0%, 32%);--color-neutral-800: hsl(0, 0%, 20%);--color-neutral-900: hsl(0, 0%, 12%);--color-background: var(--color-neutral-50);--color-surface: white;--color-surface-hover: var(--color-neutral-100);--color-surface-active: var(--color-neutral-200);--color-text: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-muted: var(--color-neutral-500);--color-border: var(--color-neutral-200);--color-divider: var(--color-neutral-100);--color-focus-ring: hsla(210, 100%, 50%, .35);--shadow-sm: 0 1px 2px hsla(0, 0%, 0%, .05);--shadow-md: 0 2px 4px hsla(0, 0%, 0%, .08);--shadow-lg: 0 4px 8px hsla(0, 0%, 0%, .1);--shadow-focus: 0 0 0 3px var(--color-focus-ring);--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--spacing-xxs: .125rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-xxl: 3rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-negative: -1;--z-elevate: 1;--z-dropdown: 10;--z-sticky: 100;--z-drawer: 200;--z-modal: 300;--z-popover: 400;--z-toast: 500;--z-tooltip: 600}.dark-mode{--color-background: var(--color-neutral-900);--color-surface: var(--color-neutral-800);--color-surface-hover: var(--color-neutral-700);--color-surface-active: var(--color-neutral-600);--color-text: var(--color-neutral-50);--color-text-secondary: var(--color-neutral-300);--color-text-muted: var(--color-neutral-400);--color-border: var(--color-neutral-700);--color-divider: var(--color-neutral-800);--shadow-sm: 0 1px 2px hsla(0, 0%, 0%, .15);--shadow-md: 0 2px 4px hsla(0, 0%, 0%, .2);--shadow-lg: 0 4px 8px hsla(0, 0%, 0%, .25);--color-focus-ring: hsla(210, 100%, 60%, .4)}:root{--status-running: var(--color-success);--status-stopped: var(--color-neutral-500);--status-error: var(--color-danger);--status-unknown: var(--color-warning)}body{transition:color var(--transition-normal),background-color var(--transition-normal)}#theme-toggle{position:fixed;bottom:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-md);font-size:.75rem;box-shadow:var(--shadow-md);z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}#theme-toggle:hover{background-color:var(--color-surface-hover);transform:translateY(-1px)}#theme-toggle:active{transform:translateY(0);background-color:var(--color-surface-active)}#theme-toggle:before{content:"";display:inline-block;width:.875rem;height:.875rem;border-radius:50%;background-color:var(--color-text);transition:background-color var(--transition-fast)}.dark-mode #theme-toggle:before{background-color:var(--color-primary-light);box-shadow:0 0 4px 1px var(--color-primary-light)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--color-text);background-color:var(--color-background);max-width:1400px;margin:0 auto;padding:var(--spacing-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;margin-bottom:var(--spacing-md);letter-spacing:-.015em;color:var(--color-text)}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5,h6{font-size:1rem}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}strong,b{font-weight:600}small{font-size:.875rem}code,pre{font-family:var(--font-mono);font-size:.9em;background-color:var(--color-neutral-100);border-radius:var(--radius-sm)}.dark-mode code,.dark-mode pre{background-color:var(--color-neutral-700)}code{padding:.125em .25em}pre{padding:var(--spacing-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-word}:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.status-running{color:var(--status-running)}.status-stopped{color:var(--status-stopped)}.status-error{color:var(--status-error)}.status-unknown{color:var(--status-unknown)}.error-message{color:var(--color-danger);font-size:.875rem;padding:var(--spacing-sm);margin:var(--spacing-sm) 0;background-color:var(--color-neutral-100);border-left:3px solid var(--color-danger);border-radius:var(--radius-sm)}.dark-mode .error-message{background-color:var(--color-neutral-800)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-neutral-100);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--color-neutral-400);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}.dark-mode ::-webkit-scrollbar-track{background:var(--color-neutral-800)}.dark-mode ::-webkit-scrollbar-thumb{background:var(--color-neutral-600)}.dark-mode ::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}.container{width:100%;max-width:1300px;margin:0 auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}#auth-status{display:flex;flex-direction:column;align-items:flex-end}#logged-in-view{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}#user-info{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}#admin-badge,#verified-badge{padding:2px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:#fff}#admin-badge{background-color:var(--color-primary)}#verified-badge{background-color:var(--color-success)}.auth-form{max-width:400px;margin:0 auto var(--spacing-xl);padding:var(--spacing-xl);border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--spacing-md)}.form-actions{display:flex;justify-content:space-between;margin-top:var(--spacing-xl);gap:var(--spacing-md)}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--spacing-md) * -.5)}.col{flex:1 0 0%;padding:0 calc(var(--spacing-md) * .5);min-width:0}.col-auto,.col-fixed{flex:0 0 auto}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.d-flex{display:flex}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.m-0{margin:0}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.ml-0{margin-left:0}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.mr-0{margin-right:0}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.pt-0{padding-top:0}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-0{padding-bottom:0}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pl-0{padding-left:0}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pr-0{padding-right:0}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.three-column{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-md)}button{font-family:inherit;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}button:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--shadow-sm)}button:active:not(:disabled){transform:translateY(0);background-color:var(--color-surface-active)}button:focus-visible{box-shadow:var(--shadow-focus)}button:disabled{opacity:.6;cursor:not-allowed}button[type=submit],.button-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary-dark)}button[type=submit]:hover:not(:disabled),.button-primary:hover:not(:disabled){background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.button-success{background-color:var(--color-success);color:#fff;border-color:var(--color-success-dark)}.button-success:hover:not(:disabled){background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.button-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger-dark)}.button-danger:hover:not(:disabled){background-color:var(--color-danger-dark);border-color:var(--color-danger-dark)}.button-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem}.button-large{padding:var(--spacing-md) var(--spacing-lg);font-size:1rem}.button-icon{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.button-icon svg{width:16px;height:16px}input,select,textarea{font-family:inherit;font-size:.875rem;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.dark-mode input,.dark-mode select,.dark-mode textarea{background-color:var(--color-surface);border-color:var(--color-neutral-700)}label{display:block;font-size:.875rem;margin-bottom:var(--spacing-xs);color:var(--color-text-secondary)}textarea{min-height:100px;resize:vertical}::placeholder{color:var(--color-text-muted);opacity:.7}.progress-container{height:8px;background-color:var(--color-neutral-200);border-radius:var(--radius-full);overflow:hidden;position:relative;margin:var(--spacing-sm) 0}.dark-mode .progress-container{background-color:var(--color-neutral-700)}.progress-bar{height:100%;background-color:var(--color-primary);transition:width .3s ease}.progress-text{position:absolute;right:0;bottom:-20px;font-size:.75rem;color:var(--color-text-secondary)}.toggle-switch{position:relative;display:inline-block;width:40px;height:20px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-neutral-300);transition:.4s;border-radius:var(--radius-full)}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:var(--shadow-sm)}input:checked+.toggle-slider{background-color:var(--color-primary)}input:focus+.toggle-slider{box-shadow:var(--shadow-focus)}input:checked+.toggle-slider:before{transform:translate(20px)}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);color:var(--color-text-secondary)}.loading-spinner{width:24px;height:24px;border:2px solid var(--color-neutral-200);border-radius:50%;border-top-color:var(--color-primary);animation:spin .8s linear infinite;margin-bottom:var(--spacing-sm)}.dark-mode .loading-spinner{border-color:var(--color-neutral-700);border-top-color:var(--color-primary)}.badge{display:inline-block;padding:.25em .5em;font-size:.75rem;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--radius-sm);background-color:var(--color-neutral-200);color:var(--color-text)}.badge-primary{background-color:var(--color-primary);color:#fff}.badge-success{background-color:var(--color-success);color:#fff}.badge-warning{background-color:var(--color-warning);color:var(--color-neutral-900)}.badge-danger{background-color:var(--color-danger);color:#fff}#dashboard{position:relative;min-height:300px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.dashboard-controls{display:flex;gap:var(--spacing-md);align-items:center;flex-wrap:wrap}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.dashboard-loading{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0000001a;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:var(--z-modal);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dark-mode .dashboard-loading{background-color:#0000004d}.dashboard-error{margin-bottom:var(--spacing-lg)}.metric-panel{background-color:var(--color-surface);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.metric-panel:hover{box-shadow:var(--shadow-md)}.metric-panel h3{margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm)}.nested-panel{padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-bottom:var(--spacing-md)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md)}.metric-card{padding:var(--spacing-md);border-radius:var(--radius-md);background-color:var(--color-background);border:1px solid var(--color-border);transition:transform var(--transition-fast),border-color var(--transition-fast)}.metric-card:hover{transform:translateY(-2px);border-color:var(--color-primary-light)}.metric-title{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:1rem;font-weight:500;word-break:break-word}.wide-card{grid-column:1 / -1}.detail-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-sm)}.detail-row{display:flex;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.detail-label{width:100px;flex-shrink:0;color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.detail-value{word-break:break-word;font-size:.875rem}.chart-container{display:flex;flex-direction:column}.chart-wrapper{height:300px;position:relative;margin-top:var(--spacing-sm);background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-sm);border:1px solid var(--color-border)}.dev-indicator{position:fixed;bottom:var(--spacing-lg);left:var(--spacing-lg);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.75rem;color:var(--color-text-secondary);z-index:var(--z-tooltip);box-shadow:var(--shadow-sm)}.logs-panel{display:flex;flex-direction:column;background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm)}.logs-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);position:sticky;top:0;z-index:var(--z-sticky)}.logs-header h3{margin-bottom:0;font-weight:600;display:flex;align-items:center;gap:var(--spacing-sm)}.logs-header h3:before{content:"";display:block;width:12px;height:12px;border-radius:50%;background-color:var(--color-neutral-300)}.logs-streaming .logs-header h3:before{background-color:var(--color-success);box-shadow:0 0 0 4px var(--color-success-light);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 rgba(var(--color-success-rgb),.4)}70%{box-shadow:0 0 0 6px rgba(var(--color-success-rgb),0)}to{box-shadow:0 0 rgba(var(--color-success-rgb),0)}}.log-status{display:flex;align-items:center;font-size:.85rem;gap:var(--spacing-xs)}.log-status:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%}.status-running:before{background-color:var(--status-running);box-shadow:0 0 0 2px rgba(var(--color-success-rgb),.2)}.status-stopped:before{background-color:var(--status-stopped)}.status-error:before{background-color:var(--status-error)}.logs-controls{display:flex;gap:var(--spacing-sm);align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-background);flex-wrap:wrap}.logs-controls button{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8125rem;padding:calc(var(--spacing-xs) + 2px) var(--spacing-sm)}.auto-scroll-container{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.85rem;margin-left:auto;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.logs-filter{display:flex;align-items:center;gap:var(--spacing-xs);margin-left:var(--spacing-md)}.logs-filter-input{max-width:200px;padding:calc(var(--spacing-xs) + 2px) var(--spacing-sm);font-size:.8125rem;height:32px}.logs-level-filter{display:flex;align-items:center;gap:var(--spacing-xs)}.logs-level-filter select{max-width:120px;padding:calc(var(--spacing-xs) + 2px) var(--spacing-sm);font-size:.8125rem;height:32px}.logs-timestamps-toggle{display:flex;align-items:center;gap:var(--spacing-xs);margin-left:var(--spacing-md)}.logs-viewer{border:none;border-radius:0;height:600px;overflow-y:auto;background-color:var(--color-surface);font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;padding:0;margin:0;position:relative}.logs-content{padding:var(--spacing-md)}.logs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);padding:var(--spacing-xl);text-align:center}.logs-empty-icon{font-size:2rem;margin-bottom:var(--spacing-md);opacity:.5}.log-line{padding:var(--spacing-xxs) var(--spacing-sm);white-space:pre-wrap;word-break:break-word;border-bottom:1px solid var(--color-divider);position:relative}.log-line:hover{background-color:var(--color-background)}.logs-viewer:hover .log-line:hover:before{content:"⋮";position:absolute;left:0;padding:0 var(--spacing-xxs);color:var(--color-text-muted);opacity:.5}.log-time{color:var(--color-text-muted);font-size:.75em;margin-right:var(--spacing-sm);-webkit-user-select:none;user-select:none;display:inline-block;width:82px}.hide-timestamps .log-time{display:none}.log-system{color:var(--color-primary);font-weight:500}.log-error{color:var(--color-danger);font-weight:500}.log-stderr{color:var(--color-danger)}.log-success{color:var(--color-success);font-weight:500}.log-info{color:var(--color-warning);font-weight:500}.log-highlight-error{color:var(--color-danger);font-weight:500}.log-highlight-success{color:var(--color-success)}.log-highlight-ip{color:var(--color-primary);font-weight:500}.log-highlight-time{color:var(--color-text-muted)}.logs-error{margin:0 var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md)}.logs-actions{position:absolute;top:var(--spacing-md);right:var(--spacing-md);display:flex;gap:var(--spacing-xs);z-index:var(--z-dropdown)}.logs-action-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.logs-action-button:hover{background-color:var(--color-surface-hover);color:var(--color-text);transform:translateY(-1px)}.logs-action-tooltip{position:absolute;bottom:100%;right:0;margin-bottom:var(--spacing-xs);font-size:.75rem;background-color:var(--color-neutral-800);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);pointer-events:none;opacity:0;transform:translateY(4px);transition:all var(--transition-fast);white-space:nowrap}.logs-action-button:hover .logs-action-tooltip{opacity:1;transform:translateY(0)}.log-line.log-system:before,.log-line.log-error:before,.log-line.log-success:before,.log-line.log-info:before,.log-line.log-stderr:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.log-line.log-system:before{background-color:var(--color-primary)}.log-line.log-error:before,.log-line.log-stderr:before{background-color:var(--color-danger)}.log-line.log-success:before{background-color:var(--color-success)}.log-line.log-info:before{background-color:var(--color-warning)}@keyframes newLogFlash{0%{background-color:rgba(var(--color-primary-rgb),.15)}to{background-color:transparent}}.log-line-new{animation:newLogFlash 1s ease-out}.log-line-expandable{cursor:pointer;position:relative}.log-line-expandable:after{content:"⋯";position:absolute;right:var(--spacing-sm);color:var(--color-text-muted)}.log-line-expanded{max-height:none!important;white-space:pre-wrap}.log-line-expanded:after{content:"⋏"}.log-line-collapsed{max-height:1.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-search-highlight{background-color:rgba(var(--color-warning-rgb),.3);border-radius:var(--radius-sm)}.logs-viewer::-webkit-scrollbar{width:10px}.logs-viewer::-webkit-scrollbar-track{background:var(--color-surface)}.logs-viewer::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--radius-md);border:2px solid var(--color-surface)}.logs-viewer::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.dark-mode .logs-viewer::-webkit-scrollbar-track{background:var(--color-surface)}.dark-mode .logs-viewer::-webkit-scrollbar-thumb{background:var(--color-neutral-600);border:2px solid var(--color-surface)}.dark-mode .logs-viewer::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-500)}@media (max-width: 768px){header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}#auth-status{width:100%;align-items:flex-start}#logged-in-view{flex-direction:row;justify-content:space-between;align-items:center;width:100%}#user-info{margin-bottom:0}}@media (max-width: 992px){.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-controls{width:100%;margin-top:var(--spacing-sm)}.dashboard-grid{grid-template-columns:1fr}.chart-wrapper{height:250px}}@media (max-width: 768px){.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric-panel,.nested-panel{padding:var(--spacing-md)}.chart-wrapper{height:200px}}@media (max-width: 576px){.metrics-grid{grid-template-columns:1fr}.dashboard-controls{flex-direction:column;align-items:stretch}.dashboard-controls label{margin-top:var(--spacing-sm)}}@media (max-width: 576px){.detail-row{flex-direction:column;padding-bottom:var(--spacing-md)}.detail-label{width:100%;margin-bottom:var(--spacing-xxs)}}@media (max-width: 992px){.logs-viewer{height:500px}.logs-controls{flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-md)}.auto-scroll-container{margin-left:0;width:100%;justify-content:space-between}}@media (max-width: 768px){.logs-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md)}.log-status{width:100%;border-top:1px solid var(--color-border);padding-top:var(--spacing-sm);margin-top:var(--spacing-xs)}.logs-viewer{height:400px}.logs-filter,.logs-level-filter{flex:1;width:100%;margin-left:0}.logs-filter-input,.logs-level-filter select{flex:1}.logs-timestamps-toggle{margin-left:0}}@media (max-width: 576px){.logs-viewer{height:300px}.logs-controls{flex-direction:column;gap:var(--spacing-sm)}.logs-controls button{width:100%;justify-content:center}.logs-filter,.logs-level-filter,.logs-timestamps-toggle,.auto-scroll-container{width:100%}.log-time{width:auto;margin-right:var(--spacing-xs)}}@media (max-width: 576px){.form-actions{flex-direction:column;gap:var(--spacing-sm)}.form-actions button{width:100%}.auth-form{padding:var(--spacing-md)}}@media (max-width: 768px){#theme-toggle{bottom:var(--spacing-md);right:var(--spacing-md)}}@media (max-width: 576px){body{padding:var(--spacing-sm)}.container{padding:0}.metric-panel,.nested-panel{padding:var(--spacing-sm);border-radius:var(--radius-md)}}@media (max-width: 992px){.col-lg-12{flex:0 0 100%;max-width:100%}.col-lg-6{flex:0 0 50%;max-width:50%}}@media (max-width: 768px){.col-md-12{flex:0 0 100%;max-width:100%}.col-md-6{flex:0 0 50%;max-width:50%}}@media (max-width: 576px){.col-sm-12{flex:0 0 100%;max-width:100%}.col-sm-6{flex:0 0 50%;max-width:50%}}
