/* Logs use a compact operator-console layout: one control rail and one uninterrupted feed. */
.logs-view {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  padding: 0 20px 14px;
}

.logs-controls {
  display: grid;
  gap: 0;
  min-width: 0;
  padding-bottom: 10px;
}

.log-console-bar,
.log-filterbar {
  display: flex;
  align-items: center;
  min-width: 0;
}

.log-console-bar {
  min-height: 42px;
  gap: 13px;
  border-bottom: 1px solid var(--line);
}

#stream-state { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; letter-spacing: .035em; }
#stream-state.online { color: var(--mint); }
#stream-state i { flex: 0 0 6px; width: 6px; height: 6px; }
.line-count { color: var(--muted); font-size: 10px; white-space: nowrap; }
.line-count b { color: var(--text); font: 600 11px "Cascadia Mono", Consolas, monospace; }
.log-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.log-actions button { min-height: 29px; padding: 5px 8px; color: var(--muted); font-size: 9px; }
.log-actions button span { color: inherit; }
.log-actions .stream-control { min-width: 0; justify-content: center; }

.log-filterbar { gap: 12px; min-height: 48px; padding-top: 8px; }
.log-filterbar > .search-wrap { flex: 0 1 310px; min-width: 150px; }
.log-filterbar input[type="search"] { width: 100%; min-width: 0; min-height: 34px; padding-top: 8px; padding-bottom: 8px; }
.level-filters { display: flex; align-items: center; gap: 3px; }
.filter-chip { min-height: 28px; padding: 5px 10px; border-color: transparent; background: transparent; color: var(--muted); font-size: 9px; }
.filter-chip:hover:not(:disabled) { box-shadow: none; }
.filter-chip.active { color: #06110e; background: var(--mint); box-shadow: none; }
.filter-chip.warning:not(.active) { color: var(--amber); }
.filter-chip.error:not(.active) { color: var(--red); }

.log-advanced { position: relative; margin-left: auto; }
.log-advanced summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 9px;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  cursor: pointer;
  font-size: 9px;
  white-space: nowrap;
}
.log-advanced summary::-webkit-details-marker { display: none; }
.log-advanced summary i { color: var(--mint); font-style: normal; transition: transform var(--motion-base) var(--motion-ease); }
.log-advanced[open] summary i { transform: rotate(180deg); }
.log-advanced.is-closing summary i { transform: none; }
.log-advanced-grid {
  position: absolute;
  z-index: 5;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(145px, 1fr));
  align-items: end;
  gap: 9px;
  width: min(440px, calc(100vw - 40px));
  padding: 13px;
  border: 1px solid rgba(97, 242, 202, .22);
  border-radius: 12px;
  background: #101916;
  box-shadow: 0 20px 55px rgba(0, 0, 0, .5);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity var(--motion-exit) ease, transform var(--motion-exit) var(--motion-ease);
}
.log-advanced.is-expanded .log-advanced-grid { opacity: 1; transform: none; }
.log-advanced-grid label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 9px; }
.log-advanced-grid select,
.log-advanced-grid input {
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #080d0b;
  color: var(--text);
  font-size: 10px;
}
.log-advanced-grid #preset-name { max-width: none; }
.log-advanced-grid #preset-delete { min-width: 34px; justify-content: center; color: var(--red); }

.log-frame {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(5, 9, 8, .7);
  box-shadow: none;
}
.log-head {
  position: relative;
  z-index: 1;
  background: #0d1411;
  border-bottom: 1px solid var(--line);
}
.log {
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 5px 0;
  overscroll-behavior: contain;
  scrollbar-color: rgba(97, 242, 202, .2) transparent;
}
.log-head,
.line { min-width: 0; }
.line .message { min-width: 0; overflow-wrap: anywhere; }
.line.continuation {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.line { border-left-width: 2px; }
.line:nth-child(even) { background-color: rgba(255, 255, 255, .012); }
.line:hover { background-color: rgba(97, 242, 202, .045); }
.line.live {
  z-index: 1;
  --arrival-rgb: 97, 242, 202;
  --arrival-accent: var(--mint);
  isolation: isolate;
  overflow: hidden;
  border-left-color: var(--arrival-accent);
  box-shadow: inset 2px 0 0 var(--arrival-accent);
  animation: log-row-enter 220ms var(--motion-enter-ease) both;
}
.line.live::before,
.line.live::after { content: ""; position: absolute; inset-block: 0; pointer-events: none; }
.line.live::before, .line.live::after { display: none; }
.line { transition: background-color 120ms ease, border-color 150ms ease, transform 150ms var(--motion-ease), box-shadow 150ms ease; }
.line[data-level="WARNING"].live { --arrival-rgb: 242, 191, 98; --arrival-accent: var(--amber); }
.line[data-level="ERROR"].live,
.line[data-level="CRITICAL"].live { --arrival-rgb: 255, 107, 117; --arrival-accent: var(--red); }
.log:empty::after { animation: none; }
.line-count b.value-change { animation-duration: 180ms; }
@keyframes log-row-enter { from { opacity: .45; transform: translateY(3px); } to { opacity: 1; transform: none; } }
footer .footer-separator { padding: 0 7px; color: var(--mint); }

@media (max-width: 900px) {
  .logs-view { padding-inline: 14px; }
  .log-filterbar { gap: 7px; flex-wrap: wrap; }
  .log-filterbar > .search-wrap { flex: 1 1 220px; }
  .log-advanced { margin-left: 0; }
}

@media (max-width: 600px) {
  .logs-view { height: 65vh; padding: 0 10px 10px; }
  .logs-controls { padding-bottom: 8px; }
  .log-console-bar { gap: 8px; }
  .log-actions { gap: 3px; }
  .log-actions button { min-height: 28px; padding-inline: 6px; }
  .log-actions button span { display: none; }
  .log-filterbar { align-items: center; }
  .log-filterbar > .search-wrap { flex: 1 1 100%; }
  .level-filters { flex: 1; gap: 0; }
  .filter-chip { flex: 1; padding-inline: 5px; }
  .log-advanced { margin-left: auto; }
  .log-advanced-grid { position: static; width: min(100%, 440px); margin-top: 7px; }
  .log-head { display: none; }
  .line { grid-template-columns: 58px 58px 1fr; padding-inline: 12px; gap: 8px; font-size: 10px; }
  .line .module { display: none; }
  .line.continuation { padding-left: 12px; }
  footer { padding: 9px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .line.live,
  .log-advanced-grid,
  #stream-state.online i { animation: none; transition: none; }
}
