.app-shell { min-height: 100vh; overflow: hidden; }
.shell-body { display: grid; grid-template-columns: 58px minmax(0, 1fr); height: calc(100vh - var(--topbar-h) - var(--signal-h)); }
.nav-rail { align-items: center; background: #101216; display: flex; flex-direction: column; gap: 5px; padding: 10px 6px; }
.rail-btn { align-items: center; background: transparent; border-radius: 5px; color: #7f8792; display: flex; flex: 0 0 48px; flex-direction: column; font-size: 8px; gap: 3px; justify-content: center; width: 46px; }
.rail-btn svg { height: 17px; width: 17px; }
.rail-btn:hover { background: #1d2128; color: #d9dde4; }
.rail-btn.active { background: #272c34; color: #fff; }
.main-view { min-width: 0; overflow: hidden; }
.view { display: none; height: 100%; min-height: 0; }
.view.active { display: block; }

#view-operate { grid-template-rows: 91px minmax(0, 1fr); }
#view-operate.active { display: grid; }
.stage-ribbon { background: var(--surface); border-bottom: 1px solid var(--line); display: grid; gap: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); min-height: 0; padding: 10px 12px; }
.cockpit-grid { display: grid; grid-template-columns: 288px minmax(410px, 1fr) 350px; min-height: 0; }
.panel-band { background: var(--surface); min-height: 0; }
.situation-panel { border-right: 1px solid var(--line); display: grid; grid-template-rows: auto auto minmax(0, 1fr); }
.map-panel { background: #edf0ed; display: grid; grid-template-rows: auto auto minmax(0, 1fr); min-width: 0; }
.brain-panel { border-left: 1px solid var(--line); display: grid; grid-template-rows: auto auto auto minmax(84px, 1fr) auto; min-width: 0; }
.panel-heading, .map-toolbar, .brain-header { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; min-height: 59px; padding: 10px 12px; }
.filter-row, .region-row { align-items: center; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; gap: 5px; min-height: 38px; overflow-x: auto; padding: 5px 9px; scrollbar-width: none; }
.filter-row::-webkit-scrollbar, .region-row::-webkit-scrollbar { display: none; }
.map-filter-row { align-items: center; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; min-width: 0; overflow-x: auto; padding-right: 8px; scrollbar-width: none; }
.map-filter-row::-webkit-scrollbar { display: none; }
.map-filter-row .region-row { border-bottom: 0; flex: 1 0 auto; min-width: max-content; }
.situation-list { min-height: 0; overflow-y: auto; padding: 7px; }
.map-frame { min-height: 0; position: relative; }
#network-map { height: 100%; min-height: 360px; width: 100%; }
.map-controls { align-items: center; display: flex; gap: 6px; }
.map-status { left: 12px; position: absolute; top: 12px; z-index: 500; }
.map-legend { bottom: 10px; left: 10px; position: absolute; z-index: 500; }
.brain-header { justify-content: flex-start; position: relative; }
.brain-header > div { min-width: 0; }
.brain-header > img { flex: 0 0 auto; }
.brain-live { margin-left: auto; }
.brain-brief { border-bottom: 1px solid var(--line); padding: 12px; }
.brain-actions { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); padding: 7px; }
.chat-log { min-height: 0; overflow-y: auto; padding: 10px 12px; }
.brain-composer { margin: 0 10px 10px; }

#view-trends, #view-actions { overflow-y: auto; padding: 16px 18px 28px; }
.view-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 14px; }
.trend-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.action-layout { display: grid; gap: 14px; grid-template-columns: minmax(0, 1.7fr) minmax(270px, .7fr); }
.action-feed, .action-policy { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; min-height: 240px; }

@media (max-width: 1280px) {
  .cockpit-grid { grid-template-columns: 260px minmax(390px, 1fr) 315px; }
  .brain-actions { grid-template-columns: 1fr; }
  .brain-actions button { justify-content: flex-start; }
  .brand small { display: none; }
}

@media (max-width: 1080px) {
  .topbar { grid-template-columns: 210px 1fr auto; }
  .workspace-tab { padding: 0 9px; }
  .workspace-tab svg { display: none; }
  #view-operate { overflow-y: auto; }
  .cockpit-grid { grid-template-columns: 300px minmax(0, 1fr); grid-template-rows: minmax(540px, calc(100vh - 185px)) auto; }
  .brain-panel { border-left: 0; border-top: 1px solid var(--line); grid-column: 1 / -1; grid-template-columns: 190px 1fr; grid-template-rows: auto auto auto; min-height: 280px; }
  .brain-header { border-bottom: 0; grid-row: 1 / 4; }
  .brain-brief { grid-column: 2; }
  .brain-actions { grid-column: 2; grid-template-columns: repeat(3, 1fr); }
  .chat-log { grid-column: 2; max-height: 140px; }
  .brain-composer { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  :root { --topbar-h: 54px; --signal-h: 34px; }
  .topbar { grid-template-columns: 1fr auto; padding: 0 10px; }
  .workspace-tabs { background: var(--surface); border-top: 1px solid var(--line); bottom: 0; height: 54px; justify-content: stretch; left: 0; position: fixed; right: 0; z-index: 1500; }
  .workspace-tab { flex: 1; flex-direction: column; font-size: 9px; gap: 2px; justify-content: center; padding: 0; }
  .workspace-tab svg { display: block; height: 16px; }
  .top-actions .icon-btn, .user-pill small, .user-pill > svg { display: none; }
  .user-pill { min-width: 36px; }
  .user-pill > span:nth-child(2) { display: none; }
  .brand-divider, .brand strong { display: none; }
  .signal-strip { gap: 12px; overflow: hidden; padding: 0 10px; }
  .signal-strip > span:nth-child(2), .signal-strip time { display: none; }
  .signal-focus em { max-width: 180px; }
  .shell-body { grid-template-columns: 1fr; height: calc(100vh - var(--topbar-h) - var(--signal-h) - 54px); }
  .nav-rail { display: none; }
  #view-operate { grid-template-rows: 98px auto; }
  .stage-ribbon { grid-template-columns: repeat(5, minmax(180px, 1fr)); overflow-x: auto; }
  .cockpit-grid { display: block; }
  .situation-panel { border-right: 0; max-height: 360px; }
  .map-panel { height: 580px; }
  .map-filter-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; overflow: visible; padding-right: 0; }
  .map-filter-row .region-row { border-bottom: 1px solid var(--line); grid-column: 1 / -1; min-width: 0; width: 100%; }
  .brain-panel { display: grid; grid-template-columns: 1fr; min-height: 520px; }
  .brain-header, .brain-brief, .brain-actions, .chat-log, .brain-composer { grid-column: 1; grid-row: auto; }
  .brain-actions { grid-template-columns: repeat(3, 1fr); }
  .trend-grid, .action-layout { grid-template-columns: 1fr; }
  #view-trends, #view-actions { padding: 12px 10px 24px; }
}
