/* css/layout.css */
.app-shell {
  min-height: 100vh;
  padding: 28px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.summary-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 14px;
}

.node-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 14px;
}

.detail-shell {
  max-width: 1280px;
  margin: 0 auto;
}

.detail-layout {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 18px;
  align-items: stretch;
  margin-bottom: 32px;
}

.health-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}

.care-assist-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  gap: 18px;
  align-items: start;
}

.ai-stage-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.daily-range-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 1080px) {
  .summary-row { grid-template-columns: repeat(3, 1fr); }
  .health-card-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-launchpad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .care-assist-grid { grid-template-columns: 1fr; }
  .plainness-card { min-height: auto; }
  .detail-layout { grid-template-columns: 1fr; }
  .ai-stage-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .app-shell { padding: 18px; }
  .topbar, .panel-header, .detail-topbar, .emergency-banner .banner-head {
    flex-direction: column;
    align-items: stretch;
  }
  .date-card { text-align: left; }
  .summary-row { grid-template-columns: repeat(2, 1fr); }
  .controls { justify-content: stretch; }
  .search-box, .filter-select { width: 100%; min-width: auto; }
  .sensor-panel { grid-template-columns: 1fr; }
  .sensor-live-grid { grid-template-columns: 1fr; }
  .sensor-actions { justify-content: stretch; }
  .sensor-actions button { width: 100%; }
  .node-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .health-card-grid { grid-template-columns: 1fr; }
  .detail-launchpad { grid-template-columns: 1fr; }
  .detail-launch-button { min-height: 66px; }
  .detail-workspace-modal { width: 100%; height: 100%; max-height: none; border-radius: 0; }
  .detail-workspace-modal .modal-head { padding: 16px 18px 14px; }
  .detail-workspace-tabs { padding: 10px 18px; }
  .detail-workspace-body { padding: 16px 18px 24px; }
  .vital-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .daily-range-grid { grid-template-columns: 1fr; }
  .vital-control-row, .daily-range-toolbar { align-items: stretch; }
  .detail-actions { justify-content: stretch; }
  .detail-actions button { width: 100%; }
  .care-draft-row { grid-template-columns: 96px 1fr; }
  .care-toolbar button { flex: 1 1 150px; }
}

@media (min-width: 1081px) and (max-height: 820px) {
  .app-shell { padding: 20px 28px; }
  .topbar { margin-bottom: 14px; }
  .alert-center-title { margin-top: 12px; }
  .summary-card { min-height: 96px; padding: 14px 18px; }
  .summary-card .caption { margin-top: 7px; }
  .main-panel { padding: 18px; }
  .panel-header { margin-bottom: 14px; }
  .senior-node { min-height: 116px; padding: 14px; }
  .node-grid { gap: 10px; }
  .detail-topbar { margin-bottom: 12px; }
  .detail-sensor-disclosure,
  .emergency-banner,
  .detail-launchpad { margin-bottom: 12px; }
  .emergency-banner { padding: 16px 18px; }
  .detail-launch-button { min-height: 66px; }
  .section-card { padding: 18px; }
  .health-card { min-height: 116px; padding: 14px; }
}