* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { height: 100%; overflow: hidden; font-family: var(--font-family); font-size: var(--font-size-md); color: var(--text-primary); background: var(--bg-primary); }

#app {
  display: grid;
  grid-template-rows: 56px 1fr 32px;
  grid-template-columns: 320px 1fr 0;
  grid-template-areas:
    "header header header"
    "sidebar chat panel"
    "footer footer footer";
  height: 100vh;
}

#app.panel-open { grid-template-columns: 320px 1fr 360px; }

.app-header { grid-area: header; display: flex; align-items: center; gap: var(--space-md); padding: 0 var(--space-lg); background: var(--primary); color: white; box-shadow: var(--shadow-md); z-index: 10; }
.app-header .header-logo { font-size: var(--font-size-xl); font-weight: 700; }
.app-header .header-user-select { padding: 4px 8px; border-radius: var(--radius-sm); border: 1px solid rgba(255,255,255,0.3); background: rgba(255,255,255,0.1); color: white; font-size: var(--font-size-sm); cursor: pointer; }
.app-header .header-user-select option { color: var(--text-primary); background: white; }

.app-sidebar { grid-area: sidebar; display: flex; flex-direction: column; background: var(--bg-sidebar); border-right: 1px solid var(--border-color); overflow: hidden; }
.app-chat { grid-area: chat; display: flex; flex-direction: column; background: var(--bg-chat); overflow: hidden; }
.app-panel { grid-area: panel; background: var(--bg-secondary); border-left: 1px solid var(--border-color); overflow-y: auto; display: none; }
#app.panel-open .app-panel { display: block; }
.app-footer { grid-area: footer; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--space-md); background: var(--bg-secondary); border-top: 1px solid var(--border-color); font-size: var(--font-size-xs); color: var(--text-muted); }

@media (max-width: 1024px) {
  #app { grid-template-columns: 280px 1fr 0; }
  #app.panel-open { grid-template-columns: 0 1fr 320px; }
  #app.panel-open .app-sidebar { display: none; }
}

@media (max-width: 768px) {
  #app { grid-template-columns: 1fr; grid-template-areas: "header" "sidebar" "footer"; }
  .app-chat { display: none; }
  .app-panel { display: none; }
  #app.chat-open { grid-template-areas: "header" "chat" "footer"; }
  #app.chat-open .app-sidebar { display: none; }
  #app.chat-open .app-chat { display: flex; }
}

/* ── Resize Handles ── */
.resize-handle {
  position: absolute;
  top: 56px;
  bottom: 32px;
  width: 5px;
  cursor: col-resize;
  z-index: 15;
  transition: background var(--transition-fast);
}
.resize-handle:hover,
.resize-handle.active {
  background: var(--primary);
  opacity: 0.4;
}
.resize-handle-sidebar {
  left: 318px;
}
.resize-handle-panel {
  right: 358px;
}
#app { position: relative; }
