/* ── sw-debug.css ──────────────────────────── Debug modal styles — extracted from modals.css (v0.37.18). Preact component tree: engine, console, network, state, REPL, badge. ──────────────────────────────────────────── */ /* ── Debug Modal layout ──────────────────── */ .debug-modal { max-width: 900px; height: 100%; overflow: hidden; } .debug-tab { padding: 8px 12px; background: none; border: none; color: var(--text-3); cursor: pointer; font-size: 12px; border-bottom: 2px solid transparent; white-space: nowrap; flex-shrink: 0; font-family: var(--font); transition: color var(--transition); } .debug-tab:hover { color: var(--text-2); } .debug-tab.active { color: var(--accent); border-bottom-color: var(--accent); } .debug-tab--hidden { display: none; } .debug-modal-body { flex: 1; overflow: hidden; padding: 0 !important; display: flex; flex-direction: column; min-height: 0; } .debug-tab-content { flex: 1; display: flex; flex-direction: column; min-height: 0; } /* ── Shared ──────────────────────────────── */ .debug-toolbar { display: flex; align-items: center; gap: 1rem; padding: 6px 12px; border-bottom: 1px solid var(--border); font-size: 11px; flex-shrink: 0; } .debug-check { display: flex; align-items: center; gap: 4px; color: var(--text-3); cursor: pointer; } .debug-badge { font-size: 10px; background: var(--bg-raised); border: 1px solid var(--border); border-radius: 10px; padding: 1px 6px; color: var(--text-3); margin-left: auto; } .debug-content { flex: 1; overflow-y: auto; padding: 6px; font-family: var(--mono); font-size: 11px; line-height: 1.5; min-height: 0; } .debug-empty { color: var(--text-3); text-align: center; padding: 2rem; } .debug-time { color: var(--text-3); opacity: 0.6; font-size: 10px; } .debug-pre { white-space: pre-wrap; word-break: break-all; max-height: 200px; overflow: auto; padding: 6px; background: rgba(0,0,0,0.2); border-radius: 4px; margin: 4px 0; } /* ── Console Tab ─────────────────────────── */ .debug-console-tab { display: flex; flex-direction: column; flex: 1; min-height: 0; } .debug-entry { padding: 1px 6px; border-bottom: 1px solid rgba(128,128,128,0.06); white-space: pre-wrap; word-break: break-all; } .debug-msg { color: var(--text); } /* ── Network Tab ─────────────────────────── */ .debug-network-tab { display: flex; flex-direction: column; flex: 1; min-height: 0; } .debug-net-entry { border-bottom: 1px solid var(--border); } .debug-net-summary { padding: 6px; cursor: pointer; font-size: 11px; display: flex; align-items: baseline; gap: 4px; } .debug-net-arrow { font-size: 10px; color: var(--text-3); width: 10px; text-align: center; flex-shrink: 0; } .debug-net-method { font-weight: bold; color: var(--accent); } .debug-net-url { color: var(--text); word-break: break-all; flex: 1; } .debug-net-detail { padding: 6px 12px 6px 20px; font-size: 11px; } /* ── State Tab ───────────────────────────── */ .debug-state-tab { display: flex; flex-direction: column; flex: 1; min-height: 0; } .debug-state-pre { max-height: none; margin: 0; } /* ── REPL Tab ────────────────────────────── */ .debug-repl-tab { display: flex; flex-direction: column; flex: 1; min-height: 0; } .debug-repl-output { flex: 1; overflow-y: auto; padding: 8px; font-family: var(--mono); font-size: 12px; min-height: 0; } .debug-repl-input { border-top: 1px solid var(--border); padding: 8px; flex-shrink: 0; } .debug-repl-input input { width: 100%; font-family: var(--mono); font-size: 12px; background: var(--bg); border: 1px solid var(--border); color: var(--text); padding: 6px 8px; border-radius: var(--radius); outline: none; } .debug-repl-input input:focus { border-color: var(--accent); } .repl-entry { padding: 2px 0; } .repl-entry pre { margin: 0; white-space: pre-wrap; word-break: break-all; } .repl-entry-input pre { color: var(--accent); } .repl-entry-result pre { color: var(--text); } .repl-entry-info { color: var(--text-3); font-size: 11px; } .repl-entry-error pre { color: var(--danger); } .repl-entry-stack pre { color: var(--text-3); font-size: 10px; padding-left: 1rem; } /* ── Footer ──────────────────────────────── */ .debug-modal-footer { display: flex; justify-content: space-between; align-items: center; } .debug-footer-left, .debug-footer-right { display: flex; gap: 8px; } /* ── Badge (sidebar bug icon) ────────────── */ .avatar-bug.has-errors { animation: debug-pulse 2s infinite; } @keyframes debug-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }