/**
 * Terminal Shell Layout — Phase 1
 * AI Worker: Layout Optimizer
 * Health: above_fold_truthy_ms (data visible by 800ms)
 * DoD: Desktop grid + Mobile stack + Sticky nav/dock
 */

/* Base layout: 3-panel grid */
.terminal-shell {
  display: grid;
  grid-template-columns: 240px 1fr 320px;
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "topbar topbar topbar"
    "nav content dock";
  min-height: 100vh;
  background: var(--bg);
}

/* Top bar (KPIs) */
.topbar {
  grid-area: topbar;
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--surface-0);
  border-bottom: 1px solid var(--border-subtle);
  padding: var(--s-3) var(--s-4);
}

/* Left nav */
.nav {
  grid-area: nav;
  position: sticky;
  top: 60px; /* below topbar */
  height: calc(100vh - 60px);
  overflow-y: auto;
  background: var(--surface-0);
  border-right: 1px solid var(--border-subtle);
  padding: var(--s-4);
}

/* Main content */
.content {
  grid-area: content;
  padding: var(--s-5);
  min-width: 0; /* prevent grid blowout */
}

/* Right dock (AI/alerts) */
.dock {
  grid-area: dock;
  position: sticky;
  top: 60px;
  height: calc(100vh - 60px);
  overflow-y: auto;
  background: var(--surface-0);
  border-left: 1px solid var(--border-subtle);
  padding: var(--s-4);
}

/* Responsive: Mobile stack */
@media (max-width: 1024px) {
  .terminal-shell {
    grid-template-columns: 1fr;
    grid-template-areas:
      "topbar"
      "content"
      "nav"
      "dock";
  }
  
  .nav, .dock {
    position: relative;
    height: auto;
  }
}

/* Responsive: Tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  .terminal-shell {
    grid-template-columns: 200px 1fr;
    grid-template-areas:
      "topbar topbar"
      "nav content";
  }
  
  .dock {
    display: none; /* Hide dock on tablet */
  }
}

/* Density modes */
.density-compact {
  --s-4: 12px;
  --s-5: 16px;
}

.density-normal {
  /* Default */
}

.density-spacious {
  --s-4: 20px;
  --s-5: 32px;
}
