:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-sidebar: #13151d;--text: #e1e4e8;--text-muted: #8b949e;--accent: #58a6ff;--success: #3fb950;--warning: #d29922;--error: #f85149;--border: #30363d;--radius: 8px;--sidebar-width: 220px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.connection-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.connection-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;width:100%;max-width:420px}.connection-card h1{font-size:1.5rem;margin-bottom:.25rem}.connection-card h2{font-size:1rem;color:var(--text-muted);font-weight:400;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;margin-bottom:.375rem;color:var(--text-muted)}.form-group input{width:100%;padding:.625rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9375rem}.form-group input:focus{outline:none;border-color:var(--accent)}button{width:100%;padding:.625rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9375rem;cursor:pointer;font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}.result{margin-top:1rem;padding:.75rem;border-radius:6px;font-size:.875rem}.result.success{background:#3fb95026;color:var(--success);border:1px solid rgba(63,185,80,.3)}.result.error{background:#f8514926;color:var(--error);border:1px solid rgba(248,81,73,.3)}.app-layout{display:flex;min-height:100vh}.hamburger{display:none;position:fixed;top:.75rem;left:.75rem;z-index:100;width:36px;height:36px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px;flex-direction:column;justify-content:center;gap:4px;cursor:pointer}.hamburger-line{display:block;width:100%;height:2px;background:var(--text);border-radius:1px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:49}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem 0;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto}.sidebar-header{padding:0 1rem 1rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.sidebar-header h2{font-size:1rem;font-weight:600}.sidebar nav ul{list-style:none}.sidebar nav li{padding:0}.nav-item{display:block;padding:.5rem 1rem;color:var(--text-muted);text-decoration:none;font-size:.875rem;transition:background .15s}.nav-item:hover{background:#58a6ff14;color:var(--text)}.nav-item.active{color:var(--accent);background:#58a6ff1f}.nav-item.disabled{color:var(--border);cursor:not-allowed}.sidebar-footer{margin-top:auto;padding:1rem;border-top:1px solid var(--border)}.timezone-indicator{font-size:.7rem;color:var(--text-muted);margin-bottom:.5rem;padding:.25rem 0}.connection-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot.connected{background:var(--success)}.server-url{font-size:.75rem;color:var(--text-muted);word-break:break-all}.disconnect-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);font-size:.75rem;padding:.375rem .75rem}.main-content{flex:1;padding:2rem;overflow-y:auto;min-width:0}.dashboard h1{margin-bottom:.5rem}.connection-status{color:var(--success);font-size:.875rem;margin-bottom:1.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card h3{font-size:.9375rem;margin-bottom:.5rem}.placeholder{color:var(--text-muted);font-size:.8125rem}.api-status{color:var(--text-muted);font-size:.75rem}.data-page{max-width:1200px}.data-page h1{margin-bottom:1.25rem;font-size:1.5rem}.data-page-loading{padding:1rem 0}.data-page-spinner{display:flex;justify-content:center;padding:3rem 0}.loading-spinner-container{display:flex;align-items:center;justify-content:center;padding:1rem}.loading-spinner{animation:spin .8s linear infinite;color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem}.page-loading h1{font-size:1.5rem;color:var(--text-muted)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.error-boundary-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;max-width:480px;text-align:center}.error-boundary-content h2{margin-bottom:.5rem;color:var(--error)}.error-boundary-content p{color:var(--text-muted);margin-bottom:1rem;font-size:.9375rem}.error-details{text-align:left;margin-bottom:1rem;font-size:.8125rem}.error-details summary{cursor:pointer;color:var(--text-muted);margin-bottom:.5rem}.error-details pre{background:var(--bg);padding:.75rem;border-radius:4px;overflow-x:auto;font-size:.75rem;color:var(--error);white-space:pre-wrap;word-break:break-all}.retry-btn{width:auto;padding:.5rem 1.25rem}.api-error-display{background:#f8514914;border:1px solid rgba(248,81,73,.25);border-radius:var(--radius);padding:1.5rem;text-align:center;margin:1rem 0}.api-error-icon{font-size:2rem;margin-bottom:.5rem}.api-error-display h3{color:var(--error);margin-bottom:.375rem;font-size:1rem}.api-error-display p{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.api-error-display .retry-btn{width:auto;padding:.5rem 1.5rem}.truncated-notice{display:flex;align-items:center;gap:.5rem;background:#d299221a;border:1px solid rgba(210,153,34,.3);border-radius:6px;padding:.625rem 1rem;margin-bottom:1rem;font-size:.8125rem;color:var(--warning)}.empty-state{text-align:center;padding:3rem 1.5rem;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);margin:1rem 0}.empty-state-icon{font-size:2.5rem;margin-bottom:.75rem}.empty-state h3{font-size:1.125rem;margin-bottom:.375rem}.empty-state p{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.empty-state-action{margin-top:.5rem}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,rgba(88,166,255,.06) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{width:100%}.skeleton-table-header{display:flex;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.skeleton-table-row{display:flex;gap:.5rem;padding:.5rem 0}.skeleton-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.stat-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.stat-value{display:block;font-size:1.25rem;font-weight:600}.stat-value--small{font-size:.8125rem;font-weight:400}.table-meta{font-size:.8125rem;color:var(--text-muted);margin-bottom:.5rem}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table th{text-align:left;padding:.625rem .75rem;background:var(--bg-sidebar);color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(48,54,61,.5);white-space:nowrap}.data-table tbody tr:hover{background:#58a6ff0a}.data-table tbody tr:last-child td{border-bottom:none}.data-table code{background:var(--bg);padding:.125rem .375rem;border-radius:3px;font-size:.75rem;color:var(--accent)}.details-cell{max-width:300px;overflow:hidden}.detail-tag{display:inline-block;background:#58a6ff14;color:var(--text-muted);padding:.125rem .375rem;border-radius:3px;font-size:.7rem;margin-right:.25rem;margin-bottom:.125rem}.page-controls{margin-bottom:1rem}.filter-input{width:100%;max-width:320px;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.875rem}.filter-input:focus{outline:none;border-color:var(--accent)}.filter-input::placeholder{color:var(--text-muted)}.status-badge{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.6875rem;font-weight:500;text-transform:uppercase}.status-success,.status-ok{background:#3fb95026;color:var(--success)}.status-error,.status-failed{background:#f8514926;color:var(--error)}.status-warning{background:#d2992226;color:var(--warning)}.status-unknown{background:#8b949e26;color:var(--text-muted)}.alerts-list{display:flex;flex-direction:column;gap:.5rem}.alert-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;border-left:3px solid var(--border)}.alert-card.severity-critical,.alert-card.severity-error{border-left-color:var(--error)}.alert-card.severity-warning{border-left-color:var(--warning)}.alert-card.severity-info{border-left-color:var(--accent)}.alert-card.acknowledged{opacity:.6}.alert-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.severity-badge{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.severity-badge.severity-critical,.severity-badge.severity-error{background:#f8514933;color:var(--error)}.severity-badge.severity-warning{background:#d2992233;color:var(--warning)}.severity-badge.severity-info{background:#58a6ff33;color:var(--accent)}.alert-time{font-size:.75rem;color:var(--text-muted)}.alert-message{font-size:.875rem;margin-bottom:.5rem}.alert-footer{display:flex;align-items:center;justify-content:space-between}.alert-id{font-size:.6875rem;color:var(--text-muted)}.ack-badge{font-size:.6875rem;color:var(--success);background:#3fb9501a;padding:.125rem .375rem;border-radius:4px}.export-info{color:var(--text-muted);font-size:.8125rem;margin-bottom:.25rem}.export-note{color:var(--text-muted);font-size:.75rem;margin-bottom:1.5rem;font-style:italic}.export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.export-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center}.export-card h3{font-size:1rem;margin-bottom:.375rem}.export-card p{color:var(--text-muted);font-size:.8125rem;margin-bottom:1rem}.export-card button{width:auto;padding:.5rem 1.5rem}.not-found{text-align:center;padding:4rem 2rem}.not-found h1{font-size:4rem;color:var(--text-muted);margin-bottom:.5rem}.not-found p{color:var(--text-muted);margin-bottom:1.5rem}.back-link{color:var(--accent);text-decoration:none;font-size:.9375rem}.back-link:hover{text-decoration:underline}.test-time{font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}@media (max-width: 1024px){.main-content{padding:1.5rem}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.export-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width: 768px){.hamburger{display:flex}.sidebar-overlay{display:block}.sidebar{position:fixed;left:0;top:0;z-index:50;transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0)}.main-content{padding:3.5rem 1rem 1.5rem}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.export-grid{grid-template-columns:1fr}.data-table{font-size:.75rem}.data-table th,.data-table td{padding:.5rem}.connection-card{max-width:100%;padding:1.5rem}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.alert-header{flex-direction:column;align-items:flex-start;gap:.25rem}.page-controls .filter-input{max-width:100%}}.tctx-controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.tctx-window-selector{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tctx-window-btn{background:var(--bg-card);color:var(--text-muted);border:none;padding:.375rem .75rem;font-size:.8125rem;cursor:pointer;border-right:1px solid var(--border)}.tctx-window-btn:last-child{border-right:none}.tctx-window-btn.active{background:var(--accent);color:#fff}.tctx-export-btn,.tctx-widen-btn{background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.375rem .875rem;font-size:.8125rem;cursor:pointer}.tctx-export-btn:hover,.tctx-widen-btn:hover{border-color:var(--accent)}.tctx-viz{display:flex;flex-direction:column;gap:.5rem}.tctx-axis-charts{display:flex;flex-direction:column;gap:.25rem}.tctx-axis-chart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem .5rem}.tctx-axis-chart-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.tctx-axis-chart-canvas{width:100%}.tctx-timeline{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.tctx-timeline-svg{width:100%;height:130px;display:block}.tctx-call-bar,.tctx-event-dot{cursor:pointer;outline:none}.tctx-call-bar:focus-visible,.tctx-event-dot:focus-visible{stroke:var(--accent);stroke-width:2}.tctx-centre-label{margin-top:.5rem;font-size:.75rem;color:var(--error);display:flex;align-items:center;gap:.375rem}.tctx-centre-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b53333}.tctx-details-panel{position:fixed;top:0;right:0;width:320px;max-width:90vw;height:100vh;background:var(--bg-card);border-left:1px solid var(--border);box-shadow:-4px 0 16px #00000059;z-index:50;display:flex;flex-direction:column;animation:tctx-slide-in .18s ease-out}@keyframes tctx-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.tctx-details-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--border)}.tctx-details-header h3{font-size:.9375rem}.tctx-details-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem}.tctx-details-close:hover{color:var(--text)}.tctx-details-body{padding:.875rem 1rem;overflow-y:auto}.tctx-detail-row{display:flex;justify-content:space-between;gap:.75rem;padding:.375rem 0;border-bottom:1px solid var(--border);font-size:.8125rem}.tctx-detail-label{color:var(--text-muted)}.tctx-detail-value{text-align:right;word-break:break-word}.tctx-detail-error{color:var(--error)}.tctx-detail-raw{margin-top:.75rem}.tctx-detail-raw-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.8125rem;padding:0}.tctx-detail-pre{margin-top:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.5rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.trace-context-link{color:var(--accent);text-decoration:none;font-size:.8125rem;border:1px solid var(--border);border-radius:4px;padding:.125rem .5rem}.trace-context-link:hover{border-color:var(--accent)}.status-timeout{background:#b5333326;color:var(--error)}.slanes-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.slanes-svg{width:100%;height:auto;display:block}.slanes-seg{shape-rendering:crispEdges}.slanes-seg-label{pointer-events:none;font-weight:500}.slanes-seg-overlay{outline:none}.slanes-seg-clickable{cursor:pointer}.slanes-seg-clickable:focus-visible{stroke:var(--accent);stroke-width:2}.slanes-lane-label{font-weight:500}.slanes-lane-label-empty{font-style:italic}.slanes-divider{shape-rendering:crispEdges}.slanes-centre-line{pointer-events:none}.slanes-strip{margin:.5rem 0 .75rem;padding-top:.5rem;border-top:1px solid var(--border)}.slanes-strip-summary{cursor:pointer;font-size:.8125rem;color:var(--text-muted, #8b949e);-webkit-user-select:none;user-select:none}.slanes-strip-body{margin-top:.5rem;padding-left:.25rem}.trace-row-highlight{outline:2px solid var(--accent);outline-offset:-2px}.ssh-status{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.25rem 0;font-size:.75rem}.ssh-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ssh-dot--grey{background:var(--text-muted)}.ssh-dot--yellow{background:var(--warning);animation:ssh-pulse 1s ease-in-out infinite}.ssh-dot--green{background:var(--success)}.ssh-dot--red{background:var(--error)}@keyframes ssh-pulse{0%,to{opacity:1}50%{opacity:.3}}.ssh-spinner{width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--warning);border-radius:50%;animation:ssh-spin .6s linear infinite}@keyframes ssh-spin{to{transform:rotate(360deg)}}.ssh-label{color:var(--text-muted);font-size:.75rem}.ssh-label--error{color:var(--error)}.ssh-uptime{color:var(--text-muted);font-size:.6875rem;opacity:.8}.ssh-retry-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.75rem;text-decoration:underline;padding:0}.ssh-retry-link:hover{color:var(--success)}.api-error-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.ssh-reconnect-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.move-page{display:flex;flex-direction:column;gap:.75rem}.move-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem}.move-id-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875rem;color:var(--text)}.move-duration{font-size:.8125rem;color:var(--text-muted)}.move-source-link{font-size:.8125rem;color:var(--accent);text-decoration:none}.move-source-link:hover{text-decoration:underline}.move-export-btn{margin-left:auto;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.375rem .875rem;font-size:.8125rem;cursor:pointer}.move-export-btn:hover{border-color:var(--accent)}.status-completed{background:#3fb95026;color:var(--success)}.status-in_progress{background:#d2992226;color:var(--warning)}.move-charts-heading{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.move-charts-heading h2{font-size:1rem;margin:0}.move-stripped-notice{margin:0;font-size:.75rem;font-style:italic;color:var(--text-muted)}.move-chart-list{display:flex;flex-direction:column;gap:.5rem}.move-axis-chart,.move-error-chart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem .5rem}.move-axis-chart-label,.move-error-chart-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.move-axis-chart-canvas,.move-error-chart-canvas{width:100%}.move-summary-table{width:100%;border-collapse:collapse;font-size:.8125rem}.move-summary-table th,.move-summary-table td{text-align:left;padding:.375rem .625rem;border-bottom:1px solid var(--border)}.move-summary-table th{color:var(--text-muted);font-weight:500;text-transform:uppercase;font-size:.6875rem;letter-spacing:.04em}.move-row-deviation td{color:var(--error);background:#b533331f}.move-row-overshoot td{color:#c96442}.move-row-deviation.move-row-overshoot td{color:var(--error)}.move-summary-empty td{color:var(--text-muted);font-style:italic}.move-window-note{font-size:.75rem;color:var(--text-muted);margin:0}.move-link{color:var(--accent);text-decoration:none;margin-right:.5rem}.move-link:hover{text-decoration:underline}
