/* Stress Test UI styles (RSP-REQ-063).
   All theming via variables.css custom properties (AGENTS.md section 3). */

.stress-test-widget {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 12px;
    margin: var(--spacing-md) 0 var(--spacing-lg);
    overflow: hidden;
    box-shadow: 0 2px 8px var(--shadow);
}

.stress-test-widget-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: var(--spacing-md) var(--spacing-lg);
    cursor: pointer;
    user-select: none;
    border-left: 5px solid var(--secondary);
    background: linear-gradient(135deg, rgba(var(--secondary-rgb), 0.10), rgba(var(--secondary-rgb), 0.02));
    transition: background var(--transition-speed) var(--transition-easing);
}

.stress-test-widget-toggle:hover,
.stress-test-widget-toggle:focus-visible {
    background: linear-gradient(135deg, rgba(var(--secondary-rgb), 0.18), rgba(var(--secondary-rgb), 0.06));
    outline: none;
}

.stress-test-widget-heading {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: 1.05em;
    font-weight: 700;
    color: var(--secondary);
    margin: 0;
    letter-spacing: 0.01em;
}

.stress-test-widget-icon {
    flex: 0 0 auto;
    color: var(--secondary);
    opacity: 0.9;
}

.stress-test-widget-chevron {
    color: var(--secondary);
    transition: transform var(--transition-speed) var(--transition-easing);
    margin-left: var(--spacing-sm);
    opacity: 0.7;
}

.stress-test-widget--collapsed .stress-test-widget-chevron {
    transform: rotate(-90deg);
}

.stress-test-widget-body {
    padding: 0 var(--spacing-lg) var(--spacing-md);
    transition: max-height var(--transition-speed) var(--transition-easing),
        opacity var(--transition-speed) var(--transition-easing);
    max-height: 80vh;
    opacity: 1;
    overflow-y: auto;
}

.stress-test-widget--collapsed .stress-test-widget-body {
    max-height: 0;
    opacity: 0;
    padding: 0 var(--spacing-lg);
}

/* Selection panel */
.stress-test-panel__title {
    color: var(--text);
    margin: var(--spacing-sm) 0;
}

.stress-test-panel__hint {
    color: var(--text-muted);
    margin-bottom: var(--spacing-md);
    line-height: 1.5;
}

.stress-test-list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-md);
    display: grid;
    gap: var(--spacing-sm);
}

.stress-test-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg);
}

.stress-test-item__checkbox {
    flex-shrink: 0;
    accent-color: var(--primary);
}

.stress-test-item__label {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--spacing-xs) var(--spacing-sm);
    cursor: pointer;
    flex: 1 1 auto;
}

.stress-test-item__name {
    font-weight: 600;
    color: var(--text);
}

.stress-test-item__risk {
    font-size: 0.8em;
    color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.08);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: 999px;
}

.stress-test-item__description {
    flex-basis: 100%;
    color: var(--text-muted);
    margin: 0;
    font-size: 0.9em;
    line-height: 1.4;
}

.stress-test-item__copy {
    flex-basis: 100%;
    margin-top: var(--spacing-xs);
    align-self: flex-start;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--secondary);
    font-size: 0.8em;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    cursor: pointer;
}

.stress-test-item__copy:hover {
    border-color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.06);
}

.stress-test-item__more {
    flex-basis: 100%;
    margin-top: var(--spacing-xs);
}

.stress-test-item__more-toggle {
    cursor: pointer;
    font-size: 0.85em;
    color: var(--secondary);
    user-select: none;
    list-style: none;
}

.stress-test-item__more-toggle::-webkit-details-marker {
    display: none;
}

.stress-test-item__more-toggle::before {
    content: "\25B8\00a0"; /* ▸ right-pointing triangle */
}

.stress-test-item__more[open] .stress-test-item__more-toggle::before {
    content: "\25BE\00a0"; /* ▾ down-pointing triangle */
}

.stress-test-item__explanation {
    margin: var(--spacing-xs) 0 0;
    color: var(--text-muted);
    font-size: 0.9em;
    line-height: 1.5;
    background: rgba(var(--secondary-rgb), 0.04);
    border-left: 3px solid var(--secondary);
    padding: var(--spacing-sm);
    border-radius: 0 6px 6px 0;
}

/* Parameter editor */
.stress-test-editor {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    background: var(--card-bg);
    margin-top: var(--spacing-md);
}

.stress-test-editor__title {
    color: var(--text);
    margin: 0 0 var(--spacing-sm);
}

.stress-test-editor__rows {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-sm);
    display: grid;
    gap: var(--spacing-sm);
}

.stress-test-editor__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-sm);
}

.stress-test-editor__path {
    font-family: monospace;
    color: var(--text-muted);
    flex: 1 1 auto;
}

.stress-test-editor__mode,
.stress-test-editor__operand {
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--text);
    border-radius: 4px;
    padding: var(--spacing-xs) var(--spacing-sm);
}

.stress-test-editor__actions {
    display: flex;
    gap: var(--spacing-sm);
}

.stress-test-editor__reset {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
    border-radius: 6px;
    padding: var(--spacing-xs) var(--spacing-sm);
    cursor: pointer;
    transition: color var(--transition-speed) var(--transition-easing),
        border-color var(--transition-speed) var(--transition-easing);
}

.stress-test-editor__reset:hover {
    color: var(--warning);
    border-color: var(--warning);
}

/* Create custom test form */
.stress-test-create {
    border: 1px dashed var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    margin-top: var(--spacing-md);
    background: var(--bg);
}

.stress-test-create__title {
    color: var(--text);
    margin: 0 0 var(--spacing-sm);
}

.stress-test-create__copyfrom {
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px dashed var(--border);
}

.stress-test-create__copyfrom-label {
    display: block;
    color: var(--text-muted);
    font-size: 0.9em;
    margin-bottom: var(--spacing-xs);
}

.stress-test-create__copyfrom-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.stress-test-create__copyfrom-select {
    flex: 1 1 auto;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    color: var(--text);
    font-size: 0.9em;
}

.stress-test-create__copyfrom-btn {
    flex: 0 0 auto;
    background: var(--card-bg);
    border: 1px solid var(--border);
    color: var(--secondary);
    padding: 0.4rem 0.8rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9em;
}

.stress-test-create__copyfrom-btn:hover {
    border-color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.06);
}

.stress-test-create__field {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-sm);
    color: var(--text-muted);
    font-size: 0.9em;
}

.stress-test-create__name,
.stress-test-create__category,
.stress-test-create__risk,
.stress-test-create__description,
.stress-test-create__path,
.stress-test-create__operand {
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--text);
    border-radius: 4px;
    padding: var(--spacing-xs) var(--spacing-sm);
}

.stress-test-create__description {
    resize: vertical;
    font-family: inherit;
    min-height: 3.5em;
}

.stress-test-create__parameters {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

.stress-test-create__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

.stress-test-create__mode,
.stress-test-create__add-row,
.stress-test-create__submit {
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--text);
    border-radius: 4px;
    padding: var(--spacing-xs) var(--spacing-sm);
}

.stress-test-create__submit {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--on-primary);
    cursor: pointer;
    font-weight: 600;
    transition: background var(--transition-speed) var(--transition-easing);
}

.stress-test-create__submit:hover {
    background: var(--primary-dark);
}

.stress-test-create__add-row {
    background: transparent;
    border-style: dashed;
    color: var(--secondary);
    cursor: pointer;
    transition: border-color var(--transition-speed) var(--transition-easing);
}

.stress-test-create__add-row:hover {
    border-color: var(--secondary);
}

/* Run trigger */
.stress-test-run {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: var(--spacing-md);
    margin-top: var(--spacing-md);
    background: var(--card-bg);
}

.stress-test-run__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-sm) var(--spacing-md);
    margin-bottom: var(--spacing-sm);
}

.stress-test-run__mode {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--text-muted);
    font-size: 0.9em;
}

.stress-test-run__mode-select {
    background: var(--input-bg);
    border: 1px solid var(--input-border);
    color: var(--text);
    border-radius: 4px;
    padding: var(--spacing-xs) var(--spacing-sm);
}

.stress-test-run__button {
    background: var(--success);
    border: 1px solid var(--success);
    color: var(--on-primary);
    border-radius: 6px;
    padding: var(--spacing-xs) var(--spacing-lg);
    cursor: pointer;
    font-weight: 600;
    transition: opacity var(--transition-speed) var(--transition-easing);
}

.stress-test-run__button:hover {
    opacity: 0.9;
}

.stress-test-run__results {
    min-height: var(--spacing-md);
    color: var(--text-muted);
}

[data-theme="dark"] .stress-test-item,
[data-theme="dark"] .stress-test-create {
    background: var(--bg);
}

[data-theme="dark"] .stress-test-item__risk {
    background: rgba(var(--secondary-rgb), 0.18);
}

@media (max-width: 1024px) {
    .stress-test-editor__row,
    .stress-test-create__row {
        flex-direction: column;
        align-items: stretch;
    }

    .stress-test-editor__mode,
    .stress-test-editor__operand,
    .stress-test-create__mode,
    .stress-test-create__operand {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .stress-test-run__controls {
        flex-direction: column;
        align-items: stretch;
    }

    .stress-test-run__button {
        width: 100%;
    }

    .stress-test-item__label {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =========================================================================
   RSP-REQ-067: Assumptions-tab stress segment
   The catalog rendered as an Assumptions-rhythm checkbox group. Distinct
   classes (.stress-test-segment__*) so it never collides with the Results
   panel (.stress-test-item__*). Uses CSS custom properties from variables.css
   (no hardcoded hex - AGENTS.md section 3).
   ========================================================================= */
.stress-test-segment {
  width: 100%;
}

.stress-test-segment .checkbox-group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.stress-test-segment__option {
  display: grid;
  grid-template-columns: auto 1fr 1fr auto;
  align-items: start;
  gap: 0.25rem 0.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
}

.stress-test-segment__option:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.2);
}

.stress-test-segment__checkbox {
    grid-column: 1;
    grid-row: 1;
    accent-color: var(--primary);
}

.stress-test-segment__name {
    grid-column: 2;
    grid-row: 1;
    font-weight: 500;
}

.stress-test-segment__risk {
    grid-column: 3;
    grid-row: 1;
    font-size: 0.85em;
    color: var(--text-muted);
}

.stress-test-segment__description {
    grid-column: 1 / -1;
    grid-row: 2;
    color: var(--text-muted);
    margin: 0;
    font-size: 0.9em;
    line-height: 1.4;
}

.stress-test-segment__copy {
    align-self: flex-start;
    margin-left: 0.75rem;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--secondary);
    font-size: 0.8em;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    cursor: pointer;
}

.stress-test-segment__copy:hover {
    border-color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.06);
}

.stress-test-segment__more {
    margin-left: 0.75rem;
    margin-top: var(--spacing-xs);
}

.stress-test-segment__more-toggle {
    cursor: pointer;
    font-size: 0.85em;
    color: var(--secondary);
    user-select: none;
    list-style: none;
}

.stress-test-segment__more-toggle::-webkit-details-marker {
    display: none;
}

.stress-test-segment__more-toggle::before {
    content: "\25B8\00a0"; /* ▸ right-pointing triangle */
}

.stress-test-segment__more[open] .stress-test-segment__more-toggle::before {
    content: "\25BE\00a0"; /* ▾ down-pointing triangle */
}

.stress-test-segment__explanation {
    margin: var(--spacing-xs) 0 0;
    color: var(--text-muted);
    font-size: 0.9em;
    line-height: 1.5;
    background: rgba(var(--secondary-rgb), 0.04);
    border-left: 3px solid var(--secondary);
    padding: var(--spacing-sm);
    border-radius: 0 6px 6px 0;
}
/* RSP-REQ-067 follow-up: custom badge + edit button + collapsible create area */

.stress-test-segment__badge {
    grid-column: 4;
    grid-row: 1;
    font-size: 0.75em;
    font-weight: 600;
    color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.1);
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.stress-test-segment__edit {
    align-self: flex-start;
    margin-left: 0.75rem;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--secondary);
    font-size: 0.8em;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    cursor: pointer;
}

.stress-test-segment__edit:hover {
    border-color: var(--secondary);
    background: rgba(var(--secondary-rgb), 0.06);
}

.stress-test-segment__create {
    margin-top: 0.75rem;
    border-top: 1px solid var(--border);
    padding-top: 0.5rem;
}

.stress-test-segment__create-toggle {
    cursor: pointer;
    font-size: 0.9em;
    color: var(--secondary);
    font-weight: 500;
    user-select: none;
    list-style: none;
}

.stress-test-segment__create-toggle::-webkit-details-marker {
    display: none;
}

.stress-test-segment__create-toggle::before {
    content: "+\00a0";
    font-weight: 700;
}

.stress-test-segment__create[open] .stress-test-segment__create-toggle::before {
    content: "\2013\00a0"; /* – en dash */
}
/* Stress Summary Banner (inline in results, prominent placement) */
.stress-summary-banner {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-left: 4px solid var(--secondary);
    border-radius: 8px;
    padding: 16px 20px;
    margin: 16px 0;
}

.stress-summary-banner__title {
    font-size: 1.1em;
    font-weight: 600;
    color: var(--secondary);
    margin-bottom: 8px;
}

.stress-summary-banner__headline {
    font-size: 0.95em;
    margin-bottom: 4px;
}

.stress-summary-banner__detail {
    font-size: 0.85em;
    color: var(--text-muted);
    margin-bottom: 2px;
}

.stress-summary-banner__combined {
    font-weight: 600;
    color: var(--text);
}

/* Stress Metrics Help Section */
.stress-metrics-help {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-bottom: 16px;
    overflow: hidden;
}

.stress-metrics-help__toggle {
    padding: 10px 16px;
    cursor: pointer;
    font-weight: 600;
    color: var(--secondary);
    font-size: 0.9em;
}

.stress-metrics-help__list {
    padding: 0 16px 12px;
    margin: 0;
}

.stress-metrics-help__list dt {
    font-weight: 600;
    font-size: 0.85em;
    color: var(--text);
    margin-top: 8px;
}

.stress-metrics-help__list dd {
    margin: 2px 0 0 0;
    font-size: 0.8em;
    color: var(--text-muted);
    line-height: 1.4;
}
