:root { --primary-500: #6366f1; --primary-600: #4f46e5; --secondary-500: #8b5cf6; --secondary-600: #7c3aed; --bg-dark: #111827; --bg-darker: #0d1320; --bg-panel: #1e293b; --border-dark: #334155; --text-primary: #f8fafc; --text-secondary: #94a3b8; } /* Layout and Containers */ html, body { height: 100%; margin: 0; background: var(--bg-dark); color: var(--text-primary); font-family: 'Inter', system-ui, -apple-system, sans-serif; } #app { display: flex; flex-direction: column; min-height: 100vh; } .main-container { display: flex; flex: 1; overflow: hidden; } .content-area { flex: 1; display: flex; flex-direction: column; overflow: auto; padding: 1.5rem; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #1f2937; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: #4b5563; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #6b7280; } /* Syntax highlighting */ .token.keyword { color: #818cf8; } .token.function { color: #fbbf24; } .token.comment { color: #4ade80; } .token.string { color: #f472b6; } .token.number { color: #60a5fa; } /* Navigation Bars */ custom-navbar { display: block; position: sticky; top: 0; z-index: 50; } custom-sidebar { display: block; position: sticky; top: 0; height: 100vh; width: 240px; flex-shrink: 0; overflow-y: auto; } /* Panels */ .panel { background: var(--bg-panel); border-radius: 0.75rem; border: 1px solid var(--border-dark); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); padding: 1.5rem; margin-bottom: 1.5rem; } .panel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-dark); } /* Metrics Cards */ .metric-card { background: var(--bg-darker); border-radius: 0.5rem; padding: 1rem; height: 100%; } .metric-card-header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; color: var(--text-secondary); font-size: 0.875rem; } /* Control Buttons */ .control-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 500; transition: all 0.2s; } .control-button-primary { background: var(--primary-500); color: white; } .control-button-primary:hover { background: var(--primary-600); } .control-button-secondary { background: var(--bg-darker); color: var(--text-primary); border: 1px solid var(--border-dark); } .control-button-secondary:hover { background: var(--bg-panel); } /* Animation for active threads */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .thread-active { animation: pulse 1.5s infinite; } /* Breakpoints */ @media (max-width: 1024px) { .main-container { flex-direction: column; } custom-sidebar { width: 100%; height: auto; position: static; } .content-area { padding: 1rem; } } @media (max-width: 768px) { .metric-grid { grid-template-columns: 1fr !important; } .panel-header { flex-direction: column; align-items: flex-start; gap: 0.5rem; } } /* Debug controls */ .debug-controls { display: flex; gap: 0.5rem; background: var(--bg-darker); padding: 0.75rem; border-radius: 0.5rem; margin-bottom: 1rem; border: 1px solid var(--border-dark); } .step-indicator { display: flex; align-items: center; gap: 0.5rem; color: var(--text-secondary); font-size: 0.875rem; } .step-value { font-family: monospace; color: var(--text-primary); font-weight: 600; } /* PTX syntax highlighting */ .ptx-version { color: #4ade80; } .ptx-target { color: #4ade80; } .ptx-directive { color: #818cf8; } .ptx-register { color: #fbbf24; } .ptx-label { color: #f472b6; } .ptx-instruction { color: #60a5fa; }