/* =====================================================================
   Terminal  (.app-terminal) - always dark, whatever the system theme
   ===================================================================== */
.win[data-app="terminal"] {
  color-scheme: dark;
  --text: #e6edf3; --text-2: rgba(230, 237, 243, .7); --text-3: rgba(230, 237, 243, .45);
  --surface: #0d1117; --surface-2: #161b22; --surface-3: #21262d;
  --hover: rgba(255, 255, 255, .07); --press: rgba(255, 255, 255, .12);
  --line: rgba(255, 255, 255, .08); --line-2: rgba(255, 255, 255, .14);
  --tile: rgba(255, 255, 255, .09); --tile-hover: rgba(255, 255, 255, .14);
  --bar: rgba(22, 27, 34, .94);
  --sun: #ffb27a;
  color: var(--text); background: var(--surface);
}
.win[data-app="terminal"] .win-bar { border-bottom-color: rgba(255, 255, 255, .06); }

.app-terminal {
  background: radial-gradient(120% 60% at 50% -10%, rgba(var(--accent-rgb), .08), transparent 60%), #0d1117;
  font-family: var(--mono); font-size: 13px; line-height: 1.55; color: #e6edf3; cursor: text;
}
.app-terminal ::selection { background: rgba(var(--accent-rgb), .45); color: #fff; }
.term-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 12px 16px 16px; user-select: text; -webkit-user-select: text; }
#os .term-scroll { user-select: text; -webkit-user-select: text; }
.term-output { display: flex; flex-direction: column; }
.term-out { white-space: pre-wrap; word-break: break-word; min-height: 1.55em; }
.term-out.t-pre { white-space: pre; overflow-x: auto; }
.term-out.t-echo { margin-top: 2px; }
.term-line { display: flex; align-items: baseline; gap: 8px; margin-top: 2px; }
.term-prompt { flex: 0 0 auto; white-space: pre; }
.term-input {
  flex: 1; min-width: 40px; height: 1.55em; padding: 0; border: 0; outline: none; background: none;
  font: inherit; color: inherit; caret-color: var(--accent);
}

/* colours */
.t-user { color: #56d364; font-weight: 600; }
.t-path { color: #6cb6ff; font-weight: 600; }
.t-dim { color: #7d8590; }
.t-err { color: #ff7b72; }
.t-ok { color: #56d364; }
.t-b { font-weight: 700; }
.t-acc { color: var(--accent); }
.t-sun { color: var(--sun, #ffb27a); }
.t-key { color: #e6edf3; font-weight: 600; }
.t-num { color: #d2a8ff; }
.t-dir { color: #6cb6ff; font-weight: 600; }
.t-exe { color: #f0b429; font-weight: 600; }
.t-img { color: #d2a8ff; }
.t-aud { color: #ff7eb6; }
.t-doc { color: #ffa657; }
.t-rt-system { color: var(--accent); }
.t-rt-web { color: #a5a0ff; }
.t-rt-android { color: #56d364; }
.t-rt-windows { color: #6cb6ff; }
.t-rt-linux { color: #f0b429; }

/* help table */
.term-out.t-table { white-space: pre; display: grid; }
.t-pad { display: inline-block; min-width: 26ch; }

/* ls grid */
.term-out.t-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); column-gap: 18px; white-space: nowrap; }
.term-out.t-grid > span { overflow: hidden; text-overflow: ellipsis; }

/* neofetch */
.term-out.t-neofetch { display: flex; gap: 28px; align-items: flex-start; flex-wrap: wrap; padding: 6px 0 8px; white-space: pre; }
.t-logo { line-height: 1.12; font-size: 14px; padding-top: 4px; text-shadow: 0 0 18px rgba(var(--accent-rgb), .35); }
.t-info { line-height: 1.55; }
.t-swatch { display: inline-block; width: 22px; height: 14px; margin-right: 3px; border-radius: 3px; vertical-align: -2px; }
