/* ===================================================================== PULSE — Executions page (WP-E) styles --------------------------------------------------------------------- Only additions the design system does not already provide. Everything is namespaced `.ex-*` or scoped under an `#ex-*` id, except the two log-entry colour modifiers that extend `.lt-log-entry` (base.css ships .success/.warning/.error only — grey and cyan are Pulse-local). ===================================================================== */ /* --------------------------------------------------------------------- 1. Modal sizing — width comes from the shared `.lt-modal-lg` rule in /assets/app.css; only the scroll behaviour of these two modals is page-specific. --------------------------------------------------------------------- */ #ex-detail-modal .lt-modal-body, #ex-compare-modal .lt-modal-body { max-height: 72vh; overflow-y: auto; } #ex-detail-modal .lt-modal-footer { display: flex; flex-wrap: wrap; gap: var(--space-sm); justify-content: flex-end; } /* --------------------------------------------------------------------- 2. Tab-bar count badges --------------------------------------------------------------------- */ #ex-count-manual:empty, #ex-count-automated:empty { display: none; } /* --------------------------------------------------------------------- 3. Rows --------------------------------------------------------------------- */ .ex-row { cursor: pointer; } .ex-row:focus-visible { outline: 2px solid var(--accent-cyan); outline-offset: -2px; } .ex-row.is-selected td { background: rgba(255, 179, 0, 0.12); } .ex-row.is-selected td:first-child { border-left: 3px solid var(--accent-amber); } .ex-col-check { width: 2rem; } .ex-check { display: inline-block; min-width: 1rem; color: var(--accent-amber); font-weight: 700; } .ex-elapsed { font-family: var(--font-mono); color: var(--accent-amber); } #ex-compare-toggle.is-active { border-color: var(--accent-amber); color: var(--accent-amber); } /* --------------------------------------------------------------------- 4. Log entries — extra colour semantics on top of base.css --------------------------------------------------------------------- */ .lt-log-entry.ex-log-dim { border-left-color: var(--border-color); opacity: 0.85; } .lt-log-entry.ex-log-dim .ex-log-title { color: var(--text-dim); } .lt-log-entry.ex-log-info { border-left-color: var(--accent-cyan); } .lt-log-entry.ex-log-info .ex-log-title { color: var(--accent-cyan); } .ex-log-title { font-family: var(--font-mono); font-size: 0.75rem; font-weight: 700; color: var(--text-primary); overflow-wrap: anywhere; } .lt-log-entry.success .ex-log-title { color: var(--accent-green); } .lt-log-entry.warning .ex-log-title { color: var(--accent-amber); } .lt-log-entry.error .ex-log-title { color: var(--accent-red); } .ex-log-details { margin-top: 0.3rem; } .ex-log-field { font-size: 0.72rem; color: var(--text-secondary); margin-bottom: 0.2rem; overflow-wrap: anywhere; } .ex-log-label { color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.66rem; } .ex-log-answer { color: var(--accent-amber); } .ex-log-by { color: var(--text-muted); font-size: 0.66rem; margin-left: 0.6rem; font-weight: 400; } .ex-log-output-err { color: var(--accent-red); border-left-color: var(--accent-red); text-shadow: none; } .ex-code { font-family: var(--font-mono); font-size: 0.7rem; color: var(--accent-cyan); overflow-wrap: anywhere; } /* Parsed-variable table (parse_complete) */ .ex-parse-table { display: grid; grid-template-columns: max-content 1fr; gap: 1px var(--space-md); font-family: var(--font-mono); font-size: 0.68rem; } .ex-parse-key { color: var(--text-dim); } .ex-parse-val { color: var(--text-secondary); overflow-wrap: anywhere; } .ex-route-label { font-size: 0.72rem; color: var(--text-secondary); } .ex-route-goto { font-size: 0.72rem; color: var(--accent-cyan); } /* --------------------------------------------------------------------- 5. Prompt (waiting for input) --------------------------------------------------------------------- */ .ex-prompt-box { margin: var(--space-md) 0; } .ex-prompt-msg { color: var(--text-primary); font-size: 0.74rem; margin: 0.4rem 0; } .ex-opt-row { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-sm); } .ex-opt.is-answered { opacity: 0.55; } /* --------------------------------------------------------------------- 6. Detail modal layout --------------------------------------------------------------------- */ .ex-section-title { font-family: var(--font-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent-orange); margin: var(--space-lg) 0 var(--space-sm); } .ex-id-cell { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; } /* --------------------------------------------------------------------- 7. Compare modal --------------------------------------------------------------------- */ .ex-cmp-grid { display: grid; gap: var(--space-md); } .ex-cmp-col { border: 1px solid var(--border-dim); background: var(--bg-terminal); min-width: 0; } .ex-cmp-head { padding: var(--space-sm); border-bottom: 1px solid var(--border-dim); background: var(--bg-secondary); color: var(--accent-amber); font-family: var(--font-mono); font-size: 0.74rem; } .ex-cmp-sub { color: var(--text-dim); font-size: 0.66rem; overflow-wrap: anywhere; } .ex-cmp-body { padding: var(--space-sm); } .ex-cmp-label { font-family: var(--font-mono); font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--accent-amber); margin-top: var(--space-sm); } .ex-cmp-label--err { color: var(--accent-red); } .ex-cmp-col .lt-log-output { max-height: 320px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; } @media (max-width: 767px) { .ex-cmp-grid { grid-template-columns: 1fr !important; } } /* --------------------------------------------------------------------- 8. Diff --------------------------------------------------------------------- */ .ex-diff-stats { font-family: var(--font-mono); font-size: 0.72rem; margin-bottom: var(--space-sm); } .ex-diff { font-family: var(--font-mono); font-size: 0.68rem; } .ex-diff-same { color: var(--text-muted); padding: 1px 0; white-space: pre-wrap; overflow-wrap: anywhere; } .ex-diff-line { background: rgba(255, 179, 0, 0.1); border-left: 3px solid var(--accent-amber); padding: 2px 4px; margin: 2px 0; white-space: pre-wrap; overflow-wrap: anywhere; } .ex-diff-a { color: var(--accent-green); } .ex-diff-b { color: var(--accent-amber); } /* --------------------------------------------------------------------- 9. Light theme --------------------------------------------------------------------- */ html[data-theme="light"] .ex-cmp-col { background: var(--bg-tertiary); } html[data-theme="light"] .ex-cmp-head { background: var(--bg-secondary); } html[data-theme="light"] .ex-log-title { color: var(--text-primary); } html[data-theme="light"] .ex-diff-same { color: var(--text-muted); } html[data-theme="light"] .ex-row.is-selected td { background: rgba(255, 179, 0, 0.18); }