/* ============================================================
   TERMINAL.CSS — shared CLI surface (Linux shell, Cisco IOS,
   Git CLI). One realistic terminal component, themeable per
   context via --term-accent.
   ============================================================ */

.terminal {
  --term-accent: var(--accent-linux);
  background: var(--bg-inset);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}

.terminal-titlebar {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  background: var(--bg-panel);
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.terminal-dot { width: 10px; height: 10px; border-radius: 50%; }
.terminal-dot.red { background: #ff5f57; }
.terminal-dot.yellow { background: #febc2e; }
.terminal-dot.green { background: #28c840; }

.terminal-titlebar-label {
  margin-left: var(--sp-2);
  color: var(--text-muted);
  font-size: var(--fs-xs);
}

.terminal-body {
  flex: 1;
  overflow-y: auto;
  padding: var(--sp-4);
  min-height: 0;
  line-height: 1.6;
  cursor: text;
}

.terminal-line {
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--text-primary);
}

.terminal-line.output { color: var(--text-secondary); }
.terminal-line.error { color: var(--signal-down); }
.terminal-line.success { color: var(--signal-up); }
.terminal-line.info { color: var(--signal-info); }
.terminal-line.system { color: var(--text-disabled); font-style: italic; }

.terminal-prompt-row {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
}

.terminal-prompt-label {
  color: var(--term-accent);
  font-weight: 600;
  flex-shrink: 0;
  user-select: none;
}

.terminal-input-line {
  flex: 1;
  display: flex;
  min-width: 0;
}

.terminal-input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--text-primary);
  font-family: var(--font-mono);
  font-size: inherit;
  caret-color: var(--term-accent);
  min-width: 0;
}
.terminal-input:focus { outline: none; }

.terminal-cursor {
  display: inline-block;
  width: 8px;
  height: 1.1em;
  background: var(--term-accent);
  vertical-align: text-bottom;
  animation: cursor-blink 1s step-end infinite;
}

.terminal-help-hint {
  border-top: 1px solid var(--border-subtle);
  padding: var(--sp-2) var(--sp-4);
  font-size: var(--fs-xs);
  color: var(--text-disabled);
  background: var(--bg-panel);
  flex-shrink: 0;
}

.terminal-table {
  border-collapse: collapse;
  margin: var(--sp-1) 0;
  font-size: var(--fs-xs);
}
.terminal-table td, .terminal-table th {
  padding: 2px var(--sp-3) 2px 0;
  text-align: left;
  color: var(--text-secondary);
}
.terminal-table th { color: var(--text-muted); font-weight: 600; }

/* Prompt mode accent variants */
.terminal.mode-privileged { --term-accent: var(--signal-warn); }
.terminal.mode-config { --term-accent: var(--signal-info); }
.terminal.mode-user { --term-accent: var(--text-muted); }
