@media (max-width: 980px) {
  .scene-detail-head-main { grid-template-columns: 1fr; }
  .scene-duty-card { grid-template-columns: minmax(140px, 180px) minmax(0, 1fr); grid-template-areas: "robot main" "actions actions"; }
  .scene-duty-card-robot { grid-area: robot; }
  .scene-duty-card-main { grid-area: main; }
  .scene-duty-card-side { grid-area: actions; min-width: 0; justify-items: stretch; }
  .scene-duty-card-actions { justify-content: flex-end; }
  .map-quality-row { grid-template-columns: 1fr; }
  .map-scene-runtime-facts { grid-template-columns: 1fr; }
  .map-quality-checks { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .robot-detail, .builder, .map-workspace, .op-layout { grid-template-columns: 1fr; }
  .scene-editor-grid { grid-template-columns: 1fr; }
  .scene-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-card { grid-template-columns: 124px minmax(0, 1fr); }
  .robot-card-visual img { height: 188px; }
  .side-card { position: static; }
  .robot-status-band { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .robot-status-band > div { border-bottom: 1px solid var(--line); }
  .robot-overview-grid { grid-template-columns: 1fr; }
  .robot-overview-side { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-current-duty-layout { grid-template-columns: minmax(160px, .8fr) minmax(0, 1.4fr) auto; }
  .robot-performance-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .op-side-menu { position: static; }
  .content-console { grid-template-columns: 1fr; }
  .content-audio-layout { grid-template-columns: 1fr; }
  .content-menu, .content-chapter-list { position: static; }
  .content-chapter-list { border-right: 0; border-bottom: 1px solid var(--line); }
  .content-menu { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .content-menu button { justify-content: center; }
  .content-project-card {
    grid-template-columns: 48px minmax(0, 1fr) 28px;
    grid-template-areas: "icon main arrow" "icon stats stats" "icon update update";
    align-items: start;
    gap: 10px 14px;
  }
  .content-project-card-stats { padding-top: 5px; }
  .content-project-card-update { min-width: 0; display: flex; align-items: center; justify-content: space-between; justify-items: initial; }
  .canvas { min-height: 480px; }
  .scene-metric-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .scene-metric:nth-child(4) { border-right: 0; }
  .scene-operations-grid, .scene-operations-lower { grid-template-columns: 1fr; }
}
@media (max-width: 1120px) {
  .map-workspace.scene-map-workspace {
    grid-template-columns: 1fr;
  }
  .scene-map-workspace .map-properties {
    width: 100%;
  }
}
@media (max-width: 680px) {
  .scene-duty-card { grid-template-columns: 1fr; grid-template-areas: "robot" "main" "actions"; }
  .scene-duty-card-main { grid-template-columns: 1fr; }
  .scene-duty-quality-indicators { margin-left: 0; }
  .scene-duty-card-side { justify-items: stretch; }
  .scene-duty-card-side select { width: 100%; }
  .scene-duty-card-actions { justify-content: stretch; }
  .scene-duty-card-primary-actions { flex: 1 1 auto; justify-content: stretch; }
  .scene-duty-card-primary-actions > button,
  .scene-duty-card-primary-actions > .scene-duty-standby-menu { flex: 1 1 auto; }
  .scene-duty-standby-menu { flex: 1 1 auto; }
  .scene-duty-quality-details { grid-template-columns: 1fr; }
  .scene-duty-quality-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scene-duty-standby-menu > summary { width: 100%; }
  .scene-duty-standby-popover,
  .scene-duty-more-popover {
    width: max-content;
    min-width: 0;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 96px);
    overflow-y: auto;
  }
  .standby-schedule-layout { grid-template-columns: 1fr; }
  .standby-schedule-row { align-items: flex-start; flex-direction: column; }
  .scene-runtime-log-window {
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    width: 100%;
    height: min(68vh, 560px);
    border-radius: 12px 12px 0 0;
  }
  .scene-runtime-log-window > header { cursor: default; }
  .scene-runtime-log-resize-handle { display: none; }
  .scene-runtime-log-row { grid-template-columns: 68px 50px minmax(0, 1fr); gap: 6px; }
  .map-navigation-history-dialog .map-validation-cards { grid-template-columns: 1fr; }
  .robot-current-run-table,
  .robot-current-run-table tbody,
  .robot-current-run-table tr { display: block; width: 100%; }
  .robot-current-run-table tr { display: grid; grid-template-columns: 76px minmax(0, 1fr); }
  .robot-current-run-table th,
  .robot-current-run-table td { width: auto; border-bottom: 0; }
  .robot-current-run-table tr:not(:last-child) { border-bottom: 1px solid var(--line); }
  .robot-current-run-table tr > :nth-child(n + 3) { border-top: 1px solid var(--line); }
  .robot-overview-head, .robot-title-block, .robot-title-line { align-items: flex-start; }
  .robot-overview-head { display: grid; }
  .robot-title-line { flex-wrap: wrap; }
  .robot-status-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-status-band > div { border-right: 0; }
  .robot-overview-side { grid-template-columns: 1fr; }
  .robot-current-duty-layout { grid-template-columns: 1fr; align-items: stretch; gap: 14px; }
  .robot-current-duty-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-current-duty-actions { justify-content: stretch; }
  .robot-current-duty-actions button { width: 100%; }
  .robot-period-bar { align-items: stretch; flex-direction: column; }
  .robot-period-bar .scene-period-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .robot-performance-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-detail-tablist { overflow-x: auto; }
  .robot-detail-tab { flex: 0 0 auto; }
  .robot-activity-row { grid-template-columns: 72px minmax(0, 1fr); grid-template-areas: "kind main" "status time"; gap: 8px 10px; padding: 12px 14px; }
  .robot-activity-kind { grid-area: kind; }
  .robot-activity-main { grid-area: main; }
  .robot-activity-status { grid-area: status; }
  .robot-activity-row time { grid-area: time; text-align: left; }
  .robot-scene-row { grid-template-columns: 1fr; gap: 14px; padding: 14px; }
  .robot-scene-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .robot-scene-actions { justify-content: stretch; }
  .robot-scene-actions button { flex: 1 1 0; }
  .topbar {
    height: auto;
    grid-template-columns: 1fr auto;
    align-items: start;
    padding: 12px 14px;
  }
  .topbar-brand { min-width: 0; }
  .top-nav {
    grid-column: 1 / -1;
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    width: 100%;
    padding-bottom: 2px;
  }
  .main { width: min(100% - 24px, 1320px); padding-top: 16px; }
  .scene-grid { grid-template-columns: 1fr; }
  .robot-grid { grid-template-columns: 1fr; }
  .robot-card { min-height: 210px; grid-template-columns: 112px minmax(0, 1fr); }
  .robot-card-visual img { height: 180px; }
  .robot-card-body { padding: 13px; }
  .inline-grid { grid-template-columns: 1fr; }
  .content-layout { grid-template-columns: 1fr; }
  .content-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-project-card {
    grid-template-columns: 42px minmax(0, 1fr) 24px;
    grid-template-areas: "icon main arrow" "stats stats stats" "update update update";
    gap: 11px 10px;
    padding: 14px;
  }
  .content-project-card-icon { width: 40px; height: 40px; }
  .content-project-card-stats { justify-content: flex-start; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.09); }
  .content-project-card-stats > div { min-width: 0; padding: 0 16px 0 0; border-left: 0; }
  .content-project-card-update { padding-top: 2px; }
  .content-chapter, .content-point { margin-left: 0; }
  .toolbox button[data-tool-tooltip]::after { display: none; }
  .scene-trigger-row, .scene-trigger-fields { grid-template-columns: 1fr; }
  .scene-period-bar { align-items: stretch; flex-direction: column; }
  .scene-period-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .scene-period-tabs button { min-width: 0; padding: 0 5px; }
  .scene-metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scene-metric { border-right: 0; border-bottom: 1px solid var(--line); }
  .scene-metric:nth-child(odd) { border-right: 1px solid var(--line); }
  .scene-metric:nth-last-child(-n + 2) { border-bottom: 0; }
  .scene-live-map, .scene-overview-map { min-height: 260px; }
  .scene-robot-row { align-items: flex-start; flex-direction: column; }
  .scene-robot-facts { width: 100%; justify-content: flex-start; text-align: left; }
  .scene-schedule-row { align-items: flex-start; flex-direction: column; gap: 3px; padding: 9px 0; }
  .scene-activity-row { grid-template-columns: 44px minmax(0, 1fr) 50px minmax(0, 1fr) 92px; gap: 6px; align-items: center; }
  .scene-activity-time { font-size: 12px; }
}
@media (max-width: 680px) {
  .map-workspace { min-height: 0; gap: 8px; }
  .map-sidebar, .map-properties,
  .map-stage > .map-toolbar,
  .map-stage > .map-layer-toolbar,
  .map-stage > .map-quality-row,
  .map-stage > .map-localization-panel { display: none; }
  .map-stage { gap: 8px; }
  .map-mobile-command-bar {
    display: grid;
    gap: 9px;
    padding: 11px;
    border: 1px solid rgba(34, 211, 238, 0.3);
    border-radius: 8px;
    background: rgba(8, 23, 31, 0.88);
  }
  .map-mobile-command-status { display: grid; gap: 4px; min-width: 0; }
  .map-mobile-command-status strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
  .map-mobile-command-status span { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
  .map-mobile-command-status i { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; background: #94a3b8; }
  .map-mobile-command-status i.online { background: var(--green); }
  .map-mobile-command-status i.offline { background: var(--bad); }
  .map-mobile-command-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
  .map-mobile-command-actions button,
  .map-mobile-sheet button,
  .map-mobile-sheet select { min-height: 44px; font-size: 14px; }
  .map-mobile-command-actions button { min-width: 64px; padding: 8px 11px; }
  .map-mobile-command-actions > :first-child:nth-last-child(2) { grid-column: span 2; }
  .map-mobile-sheet .map-robot-picker { min-width: 0; }
  .map-mobile-sheet .map-robot-picker-toggle { min-height: 44px; }
  .map-canvas { height: clamp(340px, 54dvh, 560px); min-height: 0; border-radius: 7px; }
  .map-canvas-top-controls { top: 8px; left: 8px; gap: 6px; max-width: calc(100% - 16px); }
  .map-canvas-top-controls .map-view-switch button { min-height: 40px; padding: 4px 7px; font-size: 11px; }
  .map-edit-tools { right: 8px; width: 50px; }
  .map-edit-tool-button { width: 40px; min-height: 40px; }
  .map-edit-tools-divider { width: 34px; }
  .map-viewport-controls { gap: 2px; padding: 3px; }
  .map-viewport-control { width: 40px; min-height: 40px; font-size: 24px; }
  .map-viewport-reset { min-height: 40px; padding: 4px 9px; font-size: 12px; }
  .map-viewport-hint { display: none; }
  .map-mobile-viewport-hint { right: 8px; bottom: 8px; display: block; }
  .map-overlay-stack { top: 8px; right: 8px; width: min(250px, calc(100% - 112px)); gap: 5px; }
  .map-scan-overlay { width: 100%; padding: 8px; }
  .map-floating-notice { font-size: 11px; }
  .map-placement-guide { align-items: flex-start; padding: 9px; }
  .map-mobile-sheet {
    position: fixed;
    z-index: 35;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    max-height: min(72dvh, 640px);
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.48);
    border-radius: 8px;
    background: #0d1821;
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.52);
  }
  .map-mobile-sheet-head { display: grid; grid-template-columns: 32px 1fr 32px; align-items: center; min-height: 48px; padding: 0 10px; border-bottom: 1px solid var(--line); }
  .map-mobile-sheet-head strong { text-align: center; font-size: 14px; }
  .map-mobile-sheet-head .map-icon-button { width: 32px; min-height: 32px; font-size: 22px; line-height: 1; }
  .map-mobile-sheet-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 7px 10px; border-bottom: 1px solid var(--line); }
  .map-mobile-sheet-tabs button { min-height: 38px; padding: 5px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); }
  .map-mobile-sheet-tabs button.active { color: #041217; background: #dffbff; font-weight: 700; }
  .map-mobile-sheet-body { display: grid; gap: 10px; max-height: calc(min(72dvh, 640px) - 104px); padding: 11px; overflow: auto; overscroll-behavior: contain; }
  .map-mobile-sheet-body label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }
  .map-mobile-sheet-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .map-mobile-sheet-actions button:only-child { grid-column: 1 / -1; }
  .map-mobile-operation-details { display: grid; gap: 8px; }
  .map-mobile-operation-details .map-quality-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .map-mobile-sheet .map-layer-items { display: grid; overflow: visible; }
  .map-mobile-sheet .map-layer-item { min-height: 40px; justify-content: space-between; font-size: 12px; }
  .map-mobile-sheet .map-layer-item button { width: 36px; min-height: 36px; }
  .map-mobile-sheet .map-object-toolbar button,
  .map-mobile-sheet .map-table-icon-button { min-height: 38px; }
  .map-mobile-sheet .map-table-icon-button { width: 38px; }
}
.performance-presets,.performance-add,.performance-ruler,.performance-cue-head,.performance-time-inputs,.performance-expression-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.performance-timeline{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(9,18,31,.62)}
.performance-waveform{height:48px;display:flex;align-items:center;gap:2px;padding:3px 5px;border-radius:8px;background:linear-gradient(180deg,rgba(31,211,255,.08),rgba(31,211,255,.02));overflow:hidden}
.performance-waveform i{display:block;flex:1;min-width:2px;max-width:7px;border-radius:3px;background:linear-gradient(180deg,#67e8f9,#0891b2);opacity:.8}
.performance-ruler{justify-content:space-between;font-size:11px;color:var(--muted)}
.performance-cue{display:grid;gap:8px;padding:10px;border-left:3px solid #22d3ee;border-radius:8px;background:rgba(15,23,42,.86)}
.performance-cue.action{border-left-color:#fb7185}
.performance-cue-head{justify-content:space-between}
.performance-time-inputs input[type="range"]{flex:1;min-width:130px}
.performance-time-inputs input[type="number"]{width:104px}
.performance-expression-fields>label{display:flex;align-items:center;gap:5px;margin:0}
.performance-expression-fields input{width:92px}
.face-style-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.face-style-option{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;min-height:66px;padding:7px;text-align:left;border:1px solid var(--line);border-radius:7px;background:#0b151d;color:var(--text)}
.face-style-option:hover{border-color:#5e8797;background:#10202a}
.face-style-option.selected{border-color:#22d3ee;box-shadow:0 0 0 1px rgba(34,211,238,.32) inset;background:#10242c}
.face-style-option>span:last-child{display:grid;gap:2px;min-width:0}
.face-style-option strong{font-size:12px;line-height:1.2}
.face-style-option small{font-size:10px;line-height:1.25;color:var(--muted);white-space:normal}
.face-style-preview{position:relative;display:block;width:64px;height:48px;overflow:hidden;border-radius:6px;background:#040a14}
.face-style-preview i{position:absolute;display:block}
.face-style-preview .eye{top:15px;width:16px;height:13px;border-radius:8px;background:#f2f7f8}
.face-style-preview .eye.left{left:10px}.face-style-preview .eye.right{right:10px}
.face-style-preview .brow{top:8px;width:17px;height:3px;border-radius:3px;background:#73e2ed}
.face-style-preview .brow.left{left:10px;transform:rotate(-5deg)}.face-style-preview .brow.right{right:10px;transform:rotate(5deg)}
.face-style-preview .mouth{left:22px;bottom:8px;width:20px;height:8px;border-bottom:4px solid #ff7e74;border-radius:0 0 16px 16px}
.face-style-preview.mochi{background:#07130f}
.face-style-preview.mochi .eye{background:#f7f3df;height:17px;border-radius:50%}.face-style-preview.mochi .eye.left{width:18px}.face-style-preview.mochi .eye.right{width:15px;top:16px}
.face-style-preview.mochi .brow{background:#7de2b8;height:4px}.face-style-preview.mochi .mouth{border-color:#ff817a;width:18px;left:23px}
.face-style-preview.pixel{background:#070910}
.face-style-preview.pixel .eye{width:15px;height:13px;border:4px solid #62e9e1;border-radius:0;background:transparent;box-sizing:border-box}
.face-style-preview.pixel .brow{height:4px;border-radius:0;background:#ffd34e}.face-style-preview.pixel .mouth{height:6px;border:4px solid #ff5d8f;border-top:0;border-radius:0;box-sizing:border-box}
@media(max-width:1180px){.face-style-picker{grid-template-columns:1fr}}
.global-face-style-field{display:grid;gap:8px}
.global-face-style-field>.muted{font-size:11px;line-height:1.4}
.global-inspector-kind{display:inline-flex;margin-top:3px;padding:2px 5px;border-radius:4px;background:rgba(34,211,238,.12);color:#8cecff;font-size:9px;font-weight:800}
@media(max-width:680px){.face-style-picker{grid-template-columns:1fr}.canvas-global-nodes{width:100%}}
.scene-flow-tabs {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  min-width: 0;
  min-height: 42px;
  margin: 0 0 10px;
  padding: 0 8px;
  border-bottom: 1px solid var(--line);
  overflow: visible;
}

.scene-flow-tab-list {
  display: flex;
  flex: 1 1 auto;
  align-items: flex-end;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
}

.scene-flow-tab,
.scene-flow-add,
.scene-flow-more > summary {
  flex: 0 0 auto;
  min-height: 36px;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: transparent;
  color: var(--muted);
}

.scene-flow-tab {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scene-flow-tab[hidden],
.scene-flow-more[hidden] { display: none; }

.scene-flow-tab.active {
  border-color: var(--line);
  background: var(--panel);
  color: var(--text);
  font-weight: 700;
  box-shadow: 0 2px 0 var(--panel);
}

.scene-flow-tab.fixed::before {
  content: "◆";
  margin-right: 5px;
  color: var(--cyan);
  font-size: 9px;
}

.scene-flow-add {
  width: 36px;
  font-size: 20px;
  line-height: 1;
}

.scene-flow-more {
  position: relative;
  flex: 0 0 auto;
}

.scene-flow-more > summary {
  display: inline-flex;
  width: 36px;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  list-style: none;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0;
}

.scene-flow-more > summary::-webkit-details-marker { display: none; }
.scene-flow-more[open] > summary { border-color: var(--line); background: var(--panel); color: var(--text); }

.scene-flow-overflow-menu {
  position: absolute;
  z-index: 1100;
  top: calc(100% + 5px);
  right: 0;
  display: grid;
  width: max-content;
  min-width: 180px;
  max-width: min(320px, calc(100vw - 32px));
  max-height: min(420px, 45vh);
  padding: 4px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #2c3942;
  border-radius: 6px;
  background: #10181f;
  box-shadow: 0 10px 28px rgba(0,0,0,.42);
}

.scene-flow-overflow-tab {
  width: 100%;
  max-width: 100%;
  min-height: 34px;
  justify-content: flex-start;
  padding: 0 10px;
  border: 0;
  border-radius: 4px;
  text-align: left;
}

.scene-flow-overflow-tab:hover { border: 0; background: #202c35; color: #f4fafc; }
.scene-flow-overflow-tab.active { background: rgba(34,211,238,.12); box-shadow: none; }

@media (max-width: 680px) {
  .step-list-toolbar { flex-wrap: wrap; }
  .step-batch-delete { margin-left: 0; }
  .step-boundary-row { grid-template-columns: 50px minmax(0, 1fr) auto; padding-inline: 5px; }
  .step-boundary-marker { width: 46px; height: 46px; }
  .step-row { grid-template-columns: 30px 20px 30px minmax(0, 1fr); gap: 7px; padding: 9px 8px; }
  .step-row > .pill { grid-column: 4; justify-self: start; }
}
