.omni-scheduling {
  --schedule-radius: 3px;
  --schedule-gap: 7px;
  --schedule-label: 11.5px;
  --schedule-control: 30px;
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: 38px minmax(0, 1fr);
  gap: var(--schedule-gap);
  padding: 8px 14px 10px;
  overflow: hidden;
  color: var(--schedule-text);
  background: var(--schedule-workspace);
  font-family: Pretendard, "Pretendard Variable", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  container: scheduling-page / inline-size;
}

.omni-scheduling,
.omni-scheduling * {
  box-sizing: border-box;
}

.omni-home-base:has(> .omni-scheduling),
.omni-iframe-page-shell:has(> .omni-scheduling) {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
  padding: 0;
}

.omni-iframe-page-shell:has(> .omni-scheduling) {
  height: 100vh;
}

.schedule-page-header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(310px, 1fr) auto minmax(270px, 1fr);
  align-items: center;
  gap: 12px;
}

.schedule-page-identity {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-page-identity > .omni-page-heading-icon {
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
}

.schedule-page-identity > div {
  min-width: 0;
}

.schedule-page-title-line {
  display: flex;
  align-items: center;
  gap: 7px;
}

.schedule-page-title-line h1 {
  margin: 0;
  overflow: hidden;
  color: var(--schedule-heading);
  font-size: 18px;
  font-weight: 680;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-page-identity p {
  margin: 1px 0 0;
  overflow: hidden;
  color: var(--schedule-muted);
  font-size: 10px;
  line-height: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-page-identity p b {
  color: var(--schedule-text-soft);
  font-weight: 650;
}

.schedule-state-badge,
.parameter-source {
  min-height: 20px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 7px;
  border: 1px solid var(--schedule-border);
  border-radius: 999px;
  color: var(--schedule-muted);
  background: var(--schedule-panel);
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

.schedule-state-badge.is-ready,
.schedule-state-badge.is-confirmed {
  border-color: var(--schedule-success-border);
  color: var(--schedule-success);
  background: var(--schedule-success-soft);
}

.schedule-view-switch {
  height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 2px;
  border: 1px solid var(--schedule-border);
  border-radius: var(--schedule-radius);
  background: var(--schedule-sunken);
}

.schedule-view-switch button,
.evaluation-tabs button,
.parameter-tabs button {
  border: 0;
  color: var(--schedule-muted);
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.schedule-view-switch button {
  height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 11px;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 650;
}

.schedule-view-switch button.is-active {
  color: var(--schedule-accent);
  background: var(--schedule-panel);
  box-shadow: 0 1px 3px var(--schedule-shadow);
}

.schedule-header-actions,
.scenario-actions,
.workbench-command-actions,
.parameter-actions,
.evaluation-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

.schedule-button {
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 9px;
  border: 1px solid var(--schedule-border-strong);
  border-radius: var(--schedule-radius);
  color: var(--schedule-text-soft);
  background: var(--schedule-panel);
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.schedule-button:hover:not(:disabled) {
  border-color: var(--schedule-accent);
  color: var(--schedule-accent);
  background: var(--schedule-accent-soft);
}

.schedule-button.is-primary {
  border-color: var(--schedule-accent);
  color: #fff;
  background: var(--schedule-accent);
}

.schedule-button.is-primary:hover:not(:disabled) {
  color: #fff;
  background: var(--schedule-accent-strong);
}

.schedule-button:disabled,
.gantt-tools button:disabled,
.evaluation-actions button:disabled {
  opacity: .44;
  cursor: not-allowed;
}

.schedule-button.is-confirmed:disabled {
  opacity: 1;
  cursor: default;
}

.schedule-view {
  min-width: 0;
  min-height: 0;
}

.schedule-view[hidden] {
  display: none !important;
}

.schedule-view[data-schedule-view="workbench"] {
  display: grid;
  grid-template-rows: 62px 31px minmax(0, 1fr);
  gap: var(--schedule-gap);
}

.workbench-command-strip {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(126px, .75fr) minmax(210px, 1.35fr) minmax(150px, .9fr) minmax(125px, .8fr) minmax(120px, .75fr) minmax(155px, .9fr) auto;
  align-items: end;
  gap: 7px;
  padding: 6px 8px 7px;
  border: 1px solid var(--schedule-border);
  border-radius: var(--schedule-radius);
  background: var(--schedule-panel);
  box-shadow: 0 1px 2px var(--schedule-shadow-soft);
}

.schedule-field,
.parameter-field,
.capacity-form label {
  min-width: 0;
  display: grid;
  grid-template-rows: 14px var(--schedule-control);
  gap: 3px;
}

.schedule-field > span:first-child,
.parameter-field > span:first-child,
.capacity-form label > span:first-child {
  overflow: hidden;
  color: var(--schedule-label-text);
  font-size: var(--schedule-label);
  font-weight: 600;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-field input,
.schedule-field select,
.parameter-field input,
.parameter-field select,
.capacity-form input {
  width: 100%;
  height: var(--schedule-control);
  min-width: 0;
  border: 1px solid var(--schedule-border-strong);
  border-radius: var(--schedule-radius);
  outline: none;
  color: var(--schedule-text);
  background: var(--schedule-input);
  padding: 0 8px;
  font: inherit;
  font-size: 12px;
}

.schedule-field input[readonly],
.parameter-field input[readonly],
.capacity-form input[readonly] {
  color: var(--schedule-text-soft);
  background: var(--schedule-readonly);
}

.schedule-field input:focus,
.schedule-field select:focus,
.parameter-field input:focus,
.parameter-field select:focus,
.capacity-form input:focus {
  border-color: var(--schedule-accent);
  box-shadow: 0 0 0 2px var(--schedule-focus);
}

.schedule-input-with-icon {
  position: relative;
  display: block;
}

.schedule-input-with-icon input {
  padding-right: 26px;
}

.schedule-input-with-icon i {
  position: absolute;
  top: 50%;
  right: 7px;
  color: var(--schedule-muted);
  transform: translateY(-50%);
}

.workbench-command-actions {
  height: 30px;
  align-self: end;
}

.workbench-readiness {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(210px, auto) minmax(430px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 0 9px;
  border: 1px solid var(--schedule-success-border);
  border-radius: var(--schedule-radius);
  color: var(--schedule-text-soft);
  background: var(--schedule-success-soft);
}

.readiness-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  white-space: nowrap;
}

.readiness-title i,
.parameter-validation i {
  color: var(--schedule-success);
  font-size: 16px;
}

.readiness-title span {
  color: var(--schedule-success);
}

.workbench-readiness dl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0;
}

.workbench-readiness dl > div {
  min-width: 104px;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  border-left: 1px solid var(--schedule-success-border);
  font-size: 10px;
}

.workbench-readiness dt {
  color: var(--schedule-muted);
}

.workbench-readiness dd {
  margin: 0;
  color: var(--schedule-heading);
  font-size: 12px;
}

.readiness-stamp {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--schedule-muted);
  font-size: 10px;
  white-space: nowrap;
}

.workbench-layout {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(690px, 72fr) minmax(382px, 27fr);
  gap: 8px;
}

.workbench-grid-shell,
.parameter-workspace,
.control-panel {
  min-width: 0;
  min-height: 0;
  border: 1px solid var(--schedule-border);
  border-radius: var(--schedule-radius);
  background: var(--schedule-panel);
  box-shadow: 0 1px 2px var(--schedule-shadow-soft);
}

.workbench-grid-shell {
  height: 100%;
  display: grid;
  grid-template-rows: 32px minmax(0, 1fr) 28px;
  overflow: hidden;
}

.workbench-grid-shell .omni-grid-titlebar,
.workbench-grid-shell .omni-grid-footer {
  border-radius: 0;
}

.workbench-grid-scroll {
  min-height: 0;
}

.parameter-workspace {
  display: grid;
  grid-template-rows: 53px 31px minmax(0, 1fr) 92px 38px;
  overflow: hidden;
}

.parameter-heading {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  border-bottom: 1px solid var(--schedule-border);
  background: var(--schedule-panel-strong);
}

.parameter-heading > div {
  min-width: 0;
  display: grid;
}

.parameter-heading span:first-child,
.scenario-identity > div > span {
  color: var(--schedule-muted);
  font-size: 9.5px;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.parameter-heading strong {
  margin-top: 1px;
  overflow: hidden;
  color: var(--schedule-heading);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parameter-heading small {
  margin-top: 1px;
  overflow: hidden;
  color: var(--schedule-muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parameter-tabs {
  min-width: 0;
  display: flex;
  align-items: end;
  gap: 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--schedule-border);
  background: var(--schedule-sunken);
  scrollbar-width: none;
}

.parameter-tabs::-webkit-scrollbar {
  display: none;
}

.parameter-tabs button {
  height: 30px;
  flex: 0 0 auto;
  padding: 0 8px;
  border-right: 1px solid var(--schedule-border);
  border-bottom: 2px solid transparent;
  font-size: 10px;
  font-weight: 620;
  white-space: nowrap;
}

.parameter-tabs button.is-active {
  border-bottom-color: var(--schedule-accent);
  color: var(--schedule-accent);
  background: var(--schedule-panel);
}

.parameter-body {
  min-height: 0;
  overflow: auto;
  padding: 8px 9px;
}

.parameter-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 8px;
}

.parameter-section-title {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--schedule-border);
  color: var(--schedule-heading);
  font-size: 11px;
  font-weight: 680;
}

.parameter-section-title span {
  color: var(--schedule-muted);
  font-size: 9px;
  font-weight: 550;
}

.parameter-field.is-span-2,
.capacity-form .is-span-2 {
  grid-column: 1 / -1;
}

.parameter-field.has-override input,
.parameter-field.has-override select {
  border-color: var(--schedule-warning-border);
  background: var(--schedule-warning-soft);
}

.parameter-field > small {
  min-height: 12px;
  margin-top: -1px;
  color: var(--schedule-muted);
  font-size: 9px;
  line-height: 12px;
}

.parameter-route-list,
.parameter-machine-list,
.parameter-material-list {
  grid-column: 1 / -1;
  display: grid;
  gap: 4px;
}

.parameter-route-row,
.parameter-machine-row,
.parameter-material-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 37px;
  padding: 4px 6px;
  border: 1px solid var(--schedule-border);
  border-radius: 2px;
  background: var(--schedule-sunken);
}

.parameter-route-row > span:first-child,
.parameter-machine-row > span:first-child,
.parameter-material-row > span:first-child {
  width: 23px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--schedule-accent);
  background: var(--schedule-accent-soft);
  font-size: 9px;
  font-weight: 750;
}

.parameter-route-row div,
.parameter-machine-row div,
.parameter-material-row div {
  min-width: 0;
  display: grid;
}

.parameter-route-row strong,
.parameter-machine-row strong,
.parameter-material-row strong {
  overflow: hidden;
  color: var(--schedule-heading);
  font-size: 10.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parameter-route-row small,
.parameter-machine-row small,
.parameter-material-row small {
  overflow: hidden;
  color: var(--schedule-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parameter-route-row > b,
.parameter-machine-row > b,
.parameter-material-row > b {
  color: var(--schedule-text-soft);
  font-size: 9.5px;
  white-space: nowrap;
}

.parameter-validation {
  padding: 7px 9px;
  border-top: 1px solid var(--schedule-border);
  background: var(--schedule-success-soft);
}

.parameter-validation > div {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.parameter-validation > div span {
  min-width: 0;
  display: grid;
}

.parameter-validation strong {
  color: var(--schedule-success);
  font-size: 11px;
}

.parameter-validation small {
  color: var(--schedule-muted);
  font-size: 9px;
}

.parameter-validation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 7px 0 0 22px;
  padding: 0;
  list-style: none;
}

.parameter-validation li {
  padding: 2px 5px;
  border: 1px solid var(--schedule-success-border);
  border-radius: 999px;
  color: var(--schedule-text-soft);
  background: var(--schedule-panel);
  font-size: 9px;
}

.parameter-actions {
  padding: 5px 7px;
  border-top: 1px solid var(--schedule-border);
  background: var(--schedule-panel-strong);
}

/* CCR buffer management: compact execution board and analysis-first inspector. */
.omni-scheduling.is-buffer-view {
  width: 100%;
  max-width: 1948px;
  justify-self: center;
  --schedule-gap: 10px;
  --buffer-board-height: clamp(350px, 39vh, 430px);
}
.schedule-view[data-schedule-view="buffer"] {
  min-height: 0;
  display: grid;
  grid-template-rows: 44px 38px minmax(calc(var(--buffer-board-height) + 340px), 1fr) 30px;
  gap: var(--schedule-gap);
  overflow: auto;
}

.buffer-context-strip,
.buffer-priority-ribbon,
.buffer-meeting-footer {
  min-width: 0;
  border: 1px solid var(--schedule-border);
  border-radius: var(--schedule-radius);
  background: var(--schedule-panel);
  box-shadow: 0 1px 2px var(--schedule-shadow-soft);
}

.buffer-context-strip dl {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(210px, 1.35fr) minmax(210px, 1.35fr) repeat(3, minmax(105px, .7fr));
  margin: 0;
}

.buffer-context-strip dl > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 4px 8px;
  border-right: 1px solid var(--schedule-border);
}

.buffer-context-strip dl > div:last-child { border-right: 0; }
.buffer-context-strip dt {
  overflow: hidden;
  color: var(--schedule-muted);
  font-size: 10.5px;
  line-height: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.buffer-context-strip dd {
  margin: 0;
  overflow: hidden;
  color: var(--schedule-heading);
  font-size: 12px;
  font-weight: 650;
  line-height: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.buffer-priority-ribbon {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center;
  overflow: hidden;
  background: var(--schedule-panel-strong);
}

.buffer-priority-ribbon > div {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  padding: 0 12px;
  border-right: 1px solid var(--schedule-border);
  color: var(--schedule-muted);
  font-size: 11px;
  white-space: nowrap;
}

.buffer-priority-ribbon > div:last-child { border-right: 0; }
.buffer-priority-ribbon strong {
  color: var(--schedule-heading);
  font-size: 17px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.buffer-priority-ribbon .is-black strong { color: var(--buffer-black-ink); }
.buffer-priority-ribbon .is-red strong { color: var(--buffer-red); }
.buffer-priority-ribbon .is-yellow strong { color: var(--buffer-yellow); }

.buffer-management-layout {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(430px, 31cqw, 540px);
  grid-template-rows: var(--buffer-board-height) minmax(330px, 1fr);
  align-items: stretch;
  gap: 10px;
}

.buffer-board-panel,
.buffer-inspector,
.buffer-detail-panel {
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  overflow: hidden;
}
.buffer-board-panel { grid-column: 1; grid-row: 1; display: grid; grid-template-rows: auto 27px 43px minmax(0, 1fr) auto; }
.buffer-detail-panel { grid-column: 1; grid-row: 2; overflow: auto; scrollbar-color: var(--schedule-scroll-thumb) transparent; }
.buffer-inspector { grid-column: 2; grid-row: 1 / 3; }

.buffer-board-toolbar,
.buffer-inspector-head,
.buffer-order-dock > header {
  min-width: 0;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px;
  border-bottom: 1px solid var(--schedule-border);
  background: var(--schedule-panel-strong);
}

.buffer-board-toolbar > div {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.buffer-board-toolbar strong,
.buffer-inspector-head strong,
.buffer-order-dock > header strong {
  color: var(--schedule-heading);
  font-size: 11px;
  font-weight: 680;
}

.buffer-board-toolbar small,
.buffer-inspector-head span,
.buffer-order-dock > header span {
  overflow: hidden;
  color: var(--schedule-muted);
  font-size: 9.5px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.buffer-inspector-head span { color: var(--buffer-red); }
.schedule-button.is-compact { height: 24px; padding-inline: 7px; font-size: 10px; }

.buffer-direction {
  min-height: 25px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto calc((100% - 24px) / 4);
  align-items: center;
  gap: 8px;
  margin-inline: 10px;
  color: var(--schedule-muted);
  background: var(--schedule-panel);
  font-size: 9.5px;
}

.buffer-direction-black {
  align-self: stretch;
  display: grid;
  place-items: center;
  color: var(--buffer-black-ink);
  background: var(--buffer-black-soft);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .04em;
}

.buffer-direction-zero { color: var(--schedule-heading); font-weight: 650; white-space: nowrap; }
.buffer-direction-line { height: 1px; background: var(--schedule-border-strong); }
.buffer-direction-line::after { content: "▸"; float: right; margin-top: -7px; color: var(--schedule-muted); }

.buffer-zone-axis,
.buffer-puck-field {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 8px;
  margin-inline: 10px;
}

.buffer-zone-axis {
  min-height: 39px;
}

.buffer-zone-axis > div {
  min-width: 0;
  display: grid;
  align-content: center;
  padding: 4px 6px;
  border: 1px solid var(--schedule-border-strong);
  border-radius: 3px 3px 0 0;
  text-align: center;
}
.buffer-zone-axis strong { font-size: 10.5px; font-weight: 750; letter-spacing: .04em; }
.buffer-zone-axis span { margin-top: 1px; font-size: 9px; white-space: nowrap; }
.buffer-zone-axis .is-black { color: #fff; background: var(--buffer-black); }
.buffer-zone-axis .is-black span { color: rgba(255, 255, 255, .7); }
.buffer-zone-axis .is-red { color: var(--buffer-red); background: var(--buffer-red-soft); }
.buffer-zone-axis .is-yellow { color: var(--buffer-yellow); background: var(--buffer-yellow-soft); }
.buffer-zone-axis .is-green { color: var(--buffer-green); background: var(--buffer-green-soft); }

.buffer-puck-field { height: 100%; min-height: 200px; }
.buffer-zone-field {
  position: relative;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-auto-rows: calc((100% - 14px) / 8);
  grid-auto-flow: row;
  align-content: end;
  gap: 2px;
  padding: 4px;
  overflow: hidden;
  border: 1px solid var(--schedule-border-strong);
  border-top: 0;
  border-radius: 0 0 3px 3px;
  background: #fff;
}
.buffer-zone-canvas { position: absolute; inset: 4px; }
.buffer-zone-canvas .buffer-puck {
  position: absolute;
  inset-inline: 0;
  bottom: calc(var(--puck-bottom) + 1px);
  height: calc(var(--puck-height) - 2px);
}
.buffer-unplanned { position: absolute; inset-inline: 0; display: grid; place-items: center; color: #7a8590; font-size: 9px; background: #fff; }

.buffer-puck,
.buffer-order-button {
  --buffer-order-bg: var(--buffer-order-1);
  --buffer-order-ink: var(--buffer-order-1-ink);
  font: inherit;
}
[data-buffer-order-index="1"] { --buffer-order-bg: var(--buffer-order-1); --buffer-order-ink: var(--buffer-order-1-ink); }
[data-buffer-order-index="2"] { --buffer-order-bg: var(--buffer-order-2); --buffer-order-ink: var(--buffer-order-2-ink); }
[data-buffer-order-index="3"] { --buffer-order-bg: var(--buffer-order-3); --buffer-order-ink: var(--buffer-order-3-ink); }
[data-buffer-order-index="4"] { --buffer-order-bg: var(--buffer-order-4); --buffer-order-ink: var(--buffer-order-4-ink); }
[data-buffer-order-index="5"] { --buffer-order-bg: var(--buffer-order-5); --buffer-order-ink: var(--buffer-order-5-ink); }
[data-buffer-order-index="6"] { --buffer-order-bg: var(--buffer-order-6); --buffer-order-ink: var(--buffer-order-6-ink); }

.buffer-puck {
  grid-row: span var(--buffer-units, 1);
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 0 5px;
  padding: 2px 5px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--buffer-order-ink) 28%, var(--buffer-order-bg));
  border-radius: 1px;
  color: var(--buffer-order-ink);
  background: var(--buffer-order-bg);
  font-size: 10px;
  line-height: 11px;
  text-align: left;
  cursor: pointer;
  transition: opacity .14s ease, box-shadow .14s ease, transform .14s ease;
}
.buffer-puck-id { overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.buffer-puck-load { grid-column: 2; grid-row: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }
.buffer-puck-meta { grid-column: 1 / -1; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-puck[style*="--buffer-units: 1"] .buffer-puck-meta,
.buffer-puck[style*="--buffer-units:1"] .buffer-puck-meta,
.buffer-puck.is-short .buffer-puck-meta { display: none; }
.buffer-puck.is-transit { background: color-mix(in srgb, var(--buffer-order-bg) 34%, var(--schedule-panel)); }
.buffer-puck.is-hole {
  position: relative;
  display: block;
  padding: 0;
  border: 1px dashed color-mix(in srgb, var(--buffer-order-ink) 75%, var(--schedule-border-strong));
  color: #172331;
  background: #fff;
}
.buffer-hole-edge {
  position: absolute;
  top: 2px;
  left: 3px;
  max-width: calc(100% - 6px);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 3px;
  overflow: hidden;
  border-left: 2px solid var(--buffer-order-bg);
  color: #172331;
  font-size: 8.5px;
  line-height: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.buffer-zone-canvas .buffer-puck.is-hole { position: absolute; }
.buffer-hole-edge strong { color: var(--buffer-red); font-size: 8px; letter-spacing: .06em; }
.buffer-hole-edge b { margin-left: auto; font-size: 9px; font-weight: 600; }
.buffer-hole-time { position: absolute; left: 7px; top: 19px; color: #637082; font-size: 9px; }
.buffer-puck.is-short .buffer-hole-time { display: none; }
.buffer-zone-field.is-yellow .buffer-hole-edge strong { color: var(--buffer-yellow); }
.buffer-zone-field.is-green .buffer-hole-edge strong { color: var(--buffer-green); }
.buffer-puck.is-black-event { border: 1px solid var(--buffer-black); color: #fff; background: var(--buffer-black); }
.buffer-puck.is-black-event .buffer-puck-id,
.buffer-puck.is-black-event .buffer-puck-meta { color: #fff; }
.buffer-puck.is-black-event .buffer-puck-meta { opacity: .76; }
.buffer-puck.is-related { z-index: 1; box-shadow: 0 0 0 2px var(--buffer-selection); }
.buffer-puck.is-selected { z-index: 1; box-shadow: 0 0 0 3px var(--buffer-selection); transform: translateY(-1px); }
.buffer-puck.is-black-event.is-related { box-shadow: inset 0 0 0 2px var(--buffer-selection); }
.buffer-puck.is-black-event.is-selected { box-shadow: inset 0 0 0 3px var(--buffer-selection); }

.buffer-board-legend {
  min-height: 33px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px;
  border-top: 1px solid var(--schedule-border);
  color: var(--schedule-muted);
  background: var(--schedule-panel-strong);
  font-size: 9px;
}
.buffer-board-legend > div { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.buffer-board-legend span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.buffer-board-legend i { width: 15px; height: 8px; border: 1px solid var(--schedule-border-strong); border-radius: 1px; background: var(--buffer-order-1); }
.buffer-board-legend i.is-black { border-color: var(--buffer-black); background: var(--buffer-black); }
.buffer-board-legend i.is-transit { border-style: dotted; background: #fff; }
.buffer-board-legend i.is-hole { border-style: dashed; background: var(--buffer-hole); }
.buffer-board-legend > strong { color: var(--schedule-text-soft); font-size: 8.5px; font-weight: 600; white-space: nowrap; }

.buffer-inspector { height: 100%; display: grid; grid-template-rows: 38px minmax(0, 1fr) auto; }
.buffer-inspector-scroll { min-height: 0; overflow: auto; scrollbar-color: var(--schedule-scroll-thumb) transparent; }
.buffer-overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 9px 10px 7px; border-bottom: 1px solid var(--schedule-border); }
.buffer-overview-head > div { min-width: 0; }
.buffer-overview-head > div > span { display: block; margin-bottom: 1px; color: var(--buffer-red); font-size: 8.5px; font-weight: 750; letter-spacing: .08em; }
.buffer-overview-head h2 { margin: 0; color: var(--schedule-heading); font-size: 14px; font-weight: 680; }
.buffer-overview-head p { margin: 2px 0 0; overflow: hidden; color: var(--schedule-muted); font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-overview-head > b { flex: 0 0 auto; display: grid; justify-items: end; color: var(--schedule-muted); font-size: 8px; font-weight: 650; letter-spacing: .08em; }
.buffer-overview-head > b strong { color: var(--buffer-black-ink); font-size: 19px; font-weight: 700; line-height: 18px; }

.buffer-distribution-chart { margin: 0; padding: 7px 10px 6px; border-bottom: 1px solid var(--schedule-border); }
.buffer-distribution-chart figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.buffer-distribution-chart figcaption strong { color: var(--schedule-heading); font-size: 10px; font-weight: 650; }
.buffer-distribution-chart figcaption > span { color: var(--schedule-muted); font-size: 8.5px; white-space: nowrap; }
.buffer-histogram { min-height: 90px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 8px; padding: 7px 8px 0; border-bottom: 1px solid var(--schedule-border-strong); }
.buffer-histogram-column { min-width: 0; height: 82px; display: grid; grid-template-rows: 11px 48px 11px 10px; align-items: end; text-align: center; }
.buffer-histogram-value { color: var(--schedule-text-soft); font-size: 9px; font-weight: 700; font-variant-numeric: tabular-nums; }
.buffer-histogram-plot { min-height: 0; height: 100%; display: flex; flex-direction: column-reverse; align-items: stretch; margin-inline: 14%; }
.buffer-histogram-bar { height: var(--buffer-received, 0%); min-height: 2px; background: var(--buffer-green); }
.buffer-histogram-transit { height: var(--buffer-transit, 0%); min-height: 3px; border: 1px dotted var(--buffer-green); background: #fff; }
.buffer-histogram-cap { height: var(--buffer-hole, 0%); min-height: 3px; border: 1px dashed var(--buffer-red); background: var(--buffer-hole); }
.buffer-histogram-column.is-black .buffer-histogram-bar { background: var(--buffer-black); }
.buffer-histogram-column.is-red .buffer-histogram-bar { background: var(--buffer-red); }
.buffer-histogram-column.is-yellow .buffer-histogram-bar { background: var(--buffer-yellow); }
.buffer-histogram-column.is-yellow .buffer-histogram-cap { border-color: var(--buffer-yellow); }
.buffer-histogram-column > strong { overflow: hidden; color: var(--schedule-text-soft); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-histogram-column > small { color: var(--schedule-muted); font-size: 7.5px; }
.buffer-histogram-legend { display: flex; justify-content: space-between; gap: 8px; margin-top: 3px; color: var(--schedule-muted); font-size: 8px; }
.buffer-histogram-legend strong { color: var(--schedule-text-soft); font-weight: 600; }

.buffer-alert-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 7px 10px 3px; }
.buffer-alert-heading strong { color: var(--schedule-heading); font-size: 10px; font-weight: 680; }
.buffer-alert-heading span { color: var(--schedule-muted); font-size: 8px; }
.buffer-alert-list { padding: 0 10px; }
.buffer-alert-row { --buffer-alert: var(--buffer-red); width: 100%; display: block; padding: 6px 0 5px; border: 0; border-top: 1px solid var(--schedule-border); color: var(--schedule-text); background: transparent; font: inherit; text-align: left; cursor: pointer; }
.buffer-alert-row[data-risk="black"], .buffer-alert-row.is-black { --buffer-alert: var(--buffer-black-ink); }
.buffer-alert-row[data-risk="yellow"], .buffer-alert-row.is-yellow { --buffer-alert: var(--buffer-yellow); }
.buffer-alert-row:hover,
.buffer-alert-row:focus-visible { background: var(--schedule-accent-soft); }
.buffer-alert-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 6px; margin-bottom: 4px; }
.buffer-alert-risk { padding-left: 5px; border-left: 3px solid var(--buffer-alert); color: var(--buffer-alert); font-size: 8px; font-weight: 750; letter-spacing: .06em; }
.buffer-alert-line strong { overflow: hidden; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.buffer-alert-penetration { color: var(--buffer-alert); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.buffer-alert-track,
.buffer-position-track { position: relative; overflow: hidden; background: linear-gradient(90deg, var(--buffer-green-soft) 0 33.333%, var(--buffer-yellow-soft) 33.333% 66.666%, var(--buffer-red-soft) 66.666% 100%); }
.buffer-alert-track { display: block; height: 22px; border-block: 1px solid var(--schedule-border); }
.buffer-alert-hole,
.buffer-position-hole { position: absolute; inset-block: 1px; left: var(--buffer-hole-left, var(--buffer-position, 0%)); width: var(--buffer-hole-width, 0%); min-width: 8px; border: 1px dashed var(--buffer-alert); background: var(--buffer-hole); }
.buffer-black-event-line { min-height: 23px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 6px; color: #fff; background: var(--buffer-black); font-size: 9px; }
.buffer-black-event-line strong { color: #fff; }
.buffer-alert-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 3px; color: var(--schedule-muted); font-size: 8px; font-variant-numeric: tabular-nums; }
.buffer-alert-meta strong { color: var(--buffer-alert); }
.buffer-alert-axis,
.buffer-position-axis,
.buffer-time-axis { display: grid; color: var(--schedule-muted); font-size: 8px; font-variant-numeric: tabular-nums; }
.buffer-alert-axis { grid-template-columns: repeat(4, 1fr); padding: 2px 10px 5px; }
.buffer-alert-axis span:nth-child(2), .buffer-alert-axis span:nth-child(3),
.buffer-position-axis span:nth-child(2), .buffer-position-axis span:nth-child(3) { text-align: center; }
.buffer-alert-axis span:last-child, .buffer-position-axis span:last-child { text-align: right; }
.buffer-priority-callout { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; margin: 0 10px 8px; padding-top: 6px; border-top: 1px solid var(--schedule-border); }
.buffer-priority-callout > span { color: var(--buffer-red); font-size: 16px; font-weight: 700; line-height: 1; }
.buffer-priority-callout strong { display: block; color: var(--schedule-heading); font-size: 9.5px; }
.buffer-priority-callout small { display: block; margin-top: 1px; color: var(--schedule-muted); font-size: 8px; }

.buffer-order-dock { border-top: 1px solid var(--schedule-border); }
.buffer-order-dock > header { min-height: 27px; padding-block: 3px; }
.buffer-order-dock > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.buffer-order-button { min-width: 0; min-height: 30px; display: grid; grid-template-columns: 5px minmax(0, 1fr) auto; align-items: center; gap: 6px; padding: 3px 7px; border: 0; border-right: 1px solid var(--schedule-border); border-bottom: 1px solid var(--schedule-border); color: var(--schedule-text); background: var(--schedule-panel); text-align: left; cursor: pointer; }
.buffer-order-button:nth-child(2n) { border-right: 0; }
.buffer-order-button:nth-last-child(-n + 2) { border-bottom: 0; }
.buffer-order-button[aria-pressed="true"] { background: var(--schedule-accent-soft); box-shadow: inset 3px 0 0 var(--schedule-accent); }
.buffer-order-swatch { width: 5px; height: 20px; border-radius: 1px; background: var(--buffer-order-bg); }
.buffer-order-text { min-width: 0; }
.buffer-order-text strong { display: block; overflow: hidden; color: var(--schedule-heading); font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.buffer-order-text span { display: none; }
.buffer-order-count { color: var(--schedule-muted); font-size: 8px; white-space: nowrap; }
.buffer-order-button.is-alert-black .buffer-order-count { color: var(--buffer-black-ink); font-weight: 700; }
.buffer-order-button.is-alert-red .buffer-order-count { color: var(--buffer-red); font-weight: 700; }
.buffer-order-button.is-alert-yellow .buffer-order-count { color: var(--buffer-yellow); font-weight: 700; }

.buffer-detail[hidden], .buffer-overview[hidden] { display: none; }
.buffer-hole-decision { --buffer-risk: var(--buffer-red); --buffer-risk-soft: var(--buffer-red-soft); min-width: 0; }
.buffer-hole-decision[data-risk="yellow"] { --buffer-risk: var(--buffer-yellow); --buffer-risk-soft: var(--buffer-yellow-soft); }
.buffer-hole-decision[data-risk="black"] { --buffer-risk: var(--buffer-black-ink); --buffer-risk-soft: var(--buffer-black-soft); }
.buffer-detail-head,
.buffer-hole-decision-head { padding: 7px 10px 6px; border-bottom: 1px solid var(--schedule-border); }
.buffer-detail-head h2 { margin: 0; color: var(--schedule-heading); font-size: 12px; font-weight: 680; }
.buffer-detail-head p { margin: 2px 0 0; color: var(--schedule-muted); font-size: 9px; }
.buffer-hole-kicker { overflow: hidden; color: var(--buffer-risk); font-size: 9px; font-weight: 750; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; }
.buffer-hole-state-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 3px; }
.buffer-risk-badge { flex: 0 0 auto; padding: 2px 6px; border: 1px solid color-mix(in srgb, var(--buffer-risk) 52%, var(--schedule-border)); border-radius: 999px; color: var(--buffer-risk); background: var(--buffer-risk-soft); font-size: 9px; font-weight: 750; }
.buffer-penetration { display: inline-flex; align-items: baseline; gap: 5px; color: var(--schedule-muted); font-size: 9px; text-align: right; }
.buffer-penetration strong { color: var(--buffer-risk); font-size: 21px; font-weight: 680; line-height: 1; font-variant-numeric: tabular-nums; }
.buffer-penetration-formula { color: var(--schedule-muted); font-size: 8px; }
.buffer-position,
.buffer-recovery-chart { margin: 0; padding: 6px 10px; border-bottom: 1px solid var(--schedule-border); }
.buffer-position figcaption,
.buffer-recovery-chart figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 4px; color: var(--schedule-muted); font-size: 8px; }
.buffer-position figcaption strong,
.buffer-recovery-chart figcaption strong { color: var(--schedule-heading); font-size: 9.5px; }
.buffer-position-track { height: 31px; border: 1px solid var(--schedule-border-strong); }
.buffer-position-zones { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); place-items: center; color: var(--schedule-muted); font-size: 8px; pointer-events: none; }
.buffer-position-hole { inset-block: 3px; border-color: var(--buffer-risk); }
.buffer-position-axis { grid-template-columns: repeat(4, 1fr); margin-top: 2px; }
.buffer-wpy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 6px 10px; border-bottom: 1px solid var(--schedule-border); }
.buffer-wpy-card { min-width: 0; }
.buffer-wpy-card span { display: block; color: var(--schedule-muted); font-size: 8.5px; line-height: 1.25; }
.buffer-wpy-card strong { display: block; margin-top: 1px; color: var(--schedule-heading); font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.buffer-decision-copy { position: relative; margin: 0; padding: 6px 10px 6px 14px; border-bottom: 1px solid var(--schedule-border); color: var(--schedule-text); font-size: 9px; line-height: 1.35; }
.buffer-decision-copy::before { content: ""; position: absolute; left: 7px; inset-block: 6px; width: 3px; background: var(--buffer-risk); }
.buffer-recovery-chart figcaption > span { display: flex; gap: 8px; white-space: nowrap; }
.buffer-recovery-chart .is-current { color: var(--buffer-risk); }
.buffer-recovery-chart .is-recovered { color: var(--buffer-green); }
.buffer-recovery-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) 86px; align-items: center; gap: 6px; min-height: 19px; }
.buffer-recovery-label { color: var(--schedule-muted); font-size: 8px; }
.buffer-recovery-track { height: 6px; overflow: hidden; border-radius: 3px; background: var(--schedule-track); }
.buffer-recovery-bar { display: block; width: var(--buffer-bar-width, 0%); height: 100%; border-radius: inherit; background: var(--schedule-accent); }
.buffer-recovery-bar.is-current { background: var(--buffer-risk); }
.buffer-recovery-bar.is-recovered { background: var(--buffer-green); }
.buffer-recovery-value { display: flex; justify-content: space-between; gap: 4px; color: var(--schedule-muted); font-size: 8px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.buffer-recovery-value strong { color: var(--schedule-heading); font-size: 9px; }
.buffer-recovery-axis { display: grid; grid-template-columns: repeat(6, 1fr); margin: 2px 86px 0 24px; color: var(--schedule-muted); font-size: 8px; }
.buffer-recovery-axis span { text-align: center; }
.buffer-recovery-axis span:first-child { text-align: left; }
.buffer-recovery-axis span:last-child { text-align: right; }
.buffer-recovery-chart > small { display: block; color: var(--schedule-muted); font-size: 8px; text-align: right; }
.buffer-hole-facts,
.buffer-action-meta,
.buffer-before-after,
.buffer-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--schedule-border); }
.buffer-hole-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 5px 10px; gap: 9px; }
.buffer-fact,
.buffer-meta-cell,
.buffer-outcome,
.buffer-detail-cell { min-width: 0; padding: 4px 8px; border-right: 1px solid var(--schedule-border); }
.buffer-hole-facts > div { min-width: 0; padding: 0; }
.buffer-fact span, .buffer-meta-cell span, .buffer-outcome span, .buffer-detail-cell span { display: block; color: var(--schedule-muted); font-size: 8px; }
.buffer-fact strong, .buffer-meta-cell strong, .buffer-outcome strong, .buffer-detail-cell strong { display: block; margin-top: 1px; overflow: hidden; color: var(--schedule-heading); font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.buffer-hole-facts span { display: block; color: var(--schedule-muted); font-size: 8px; }
.buffer-hole-facts strong { display: block; margin-top: 1px; overflow: hidden; color: var(--schedule-heading); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-recovery-plan { padding: 6px 10px 0; }
.buffer-recovery-plan > header { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 4px; color: var(--schedule-muted); font-size: 8px; }
.buffer-recovery-plan > header strong { color: var(--buffer-green); }
.buffer-recovery-title { display: inline-flex; align-items: center; gap: 5px; }
.buffer-action-edit-button { width: 20px; height: 20px; display: inline-grid; place-items: center; padding: 0; border: 1px solid var(--schedule-border-strong); border-radius: 3px; color: var(--schedule-accent); background: var(--schedule-panel); cursor: pointer; }
.buffer-action-edit-button:hover, .buffer-action-edit-button:focus-visible { border-color: var(--schedule-accent); background: color-mix(in srgb, var(--schedule-accent) 8%, var(--schedule-panel)); outline: 0; }
.buffer-action-editor[hidden] { display: none; }
.buffer-action-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 7px; padding: 9px; border: 1px solid var(--schedule-border-strong); border-radius: 3px; background: var(--schedule-panel-soft); }
.buffer-action-editor label { min-width: 0; color: var(--schedule-muted); font-size: 9px; }
.buffer-action-editor label.is-wide { grid-column: 1 / -1; }
.buffer-action-editor label > span { display: block; margin-bottom: 3px; }
.buffer-action-editor input, .buffer-action-editor textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--schedule-border-strong); border-radius: 2px; padding: 5px 6px; color: var(--schedule-heading); background: var(--schedule-panel); font: inherit; resize: vertical; }
.buffer-action-editor-buttons { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 5px; }
.buffer-action-editor-buttons button { min-width: 54px; height: 25px; border: 1px solid var(--schedule-border-strong); border-radius: 3px; color: var(--schedule-text); background: var(--schedule-panel); cursor: pointer; }
.buffer-action-editor-buttons button.is-primary { border-color: var(--schedule-accent); color: #fff; background: var(--schedule-accent); }
.buffer-recovery-plan > p { margin: 0 0 5px; padding: 3px 0 3px 7px; border-left: 3px solid var(--buffer-green); color: var(--schedule-text); font-size: 9px; line-height: 1.35; }
.buffer-recovery-plan dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 4px 0; border-top: 1px solid var(--schedule-border); }
.buffer-recovery-plan dl > div { min-width: 0; }
.buffer-recovery-plan dt { color: var(--schedule-muted); font-size: 8px; }
.buffer-recovery-plan dd { margin: 1px 0 0; overflow: hidden; color: var(--schedule-heading); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-recovery-plan > small { display: block; padding: 3px 0 6px; color: var(--schedule-muted); font-size: 8px; }
.buffer-order-progress { border-top: 1px solid var(--schedule-border); background: var(--schedule-panel); }
.buffer-order-progress > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px; border-bottom: 1px solid var(--schedule-border); background: var(--schedule-panel-soft); }
.buffer-order-progress > header > div { min-width: 0; }
.buffer-order-progress > header > div:last-child { text-align: right; }
.buffer-order-progress > header span { display: block; color: var(--schedule-muted); font-size: 8px; }
.buffer-order-progress > header strong { display: block; margin-top: 1px; overflow: hidden; color: var(--schedule-heading); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-progress-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.buffer-progress-operation { min-width: 0; border-right: 1px solid var(--schedule-border); }
.buffer-progress-operation:last-child { border-right: 0; }
.buffer-progress-operation > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 8px; border-bottom: 1px solid var(--schedule-border); color: var(--schedule-muted); font-size: 8px; }
.buffer-progress-operation > header strong { overflow: hidden; color: var(--schedule-heading); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.buffer-progress-puck { min-height: 25px; display: grid; grid-template-columns: minmax(118px, .8fr) minmax(120px, 1fr) minmax(80px, .55fr); align-items: center; gap: 7px; padding: 3px 8px; border-bottom: 1px solid var(--schedule-border); font-size: 8px; }
.buffer-progress-puck:last-child { border-bottom: 0; }
.buffer-progress-identity { min-width: 0; display: flex; align-items: center; gap: 4px; }
.buffer-progress-identity > strong, .buffer-progress-location, .buffer-progress-state > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.buffer-progress-identity > strong { color: var(--schedule-heading); font-size: 9px; }
.buffer-progress-identity em { flex: 0 0 auto; padding: 1px 4px; border: 1px solid var(--schedule-border-strong); border-radius: 8px; font-size: 7px; font-style: normal; line-height: 12px; }
.buffer-progress-identity em.is-target { border-color: var(--buffer-risk); color: var(--buffer-risk); background: color-mix(in srgb, var(--buffer-risk) 8%, var(--schedule-panel)); }
.buffer-progress-identity em.is-lead { border-color: var(--schedule-accent); color: var(--schedule-accent); background: color-mix(in srgb, var(--schedule-accent) 8%, var(--schedule-panel)); }
.buffer-progress-location { color: var(--schedule-text); }
.buffer-progress-state { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 5px; text-align: right; }
.buffer-progress-state > strong { color: var(--schedule-heading); font-weight: 600; }
.buffer-progress-state > small { flex: 0 0 auto; color: var(--schedule-muted); font-size: 8px; }

.buffer-meeting-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 9px; color: var(--schedule-muted); font-size: 9px; }
.buffer-meeting-footer strong { color: var(--schedule-heading); font-weight: 650; }
.buffer-meeting-footer b { color: var(--buffer-red); font-size: 9px; white-space: nowrap; }
.buffer-puck:focus-visible,
.buffer-alert-row:focus-visible,
.buffer-order-button:focus-visible { outline: 2px solid var(--schedule-accent); outline-offset: -2px; }

.buffer-board-toolbar > div { align-items: flex-start; flex-direction: column; gap: 3px; }
.buffer-board-toolbar strong, .buffer-inspector-head strong { font-size: 12px; }
.buffer-board-toolbar small, .buffer-inspector-head span { font-size: 10px; }
.buffer-puck { font-size: 11px; line-height: 13px; padding: 5px 7px; }
.buffer-puck-meta, .buffer-hole-edge { font-size: 10px; }
.buffer-hole-edge strong { font-size: 9px; }
.buffer-direction { font-size: 10px; }
.buffer-puck.is-black-event .buffer-puck-load { font-size: 11px; font-weight: 700; }
.buffer-board-legend { flex-wrap: wrap; gap: 4px; padding: 7px 8px; font-size: 10px; }
.buffer-board-legend > strong { white-space: normal; font-size: 10px; }
.buffer-overview { min-height: 100%; display: grid; grid-template-rows: auto minmax(195px, 1fr) auto auto auto auto; }
.buffer-overview-head { padding: 12px; }
.buffer-overview-head h2 { font-size: 17px; }
.buffer-overview-head p { white-space: normal; font-size: 11px; line-height: 1.45; }
.buffer-overview-head > b strong { font-size: 24px; line-height: 25px; }
.buffer-distribution-chart { min-height: 0; display: grid; grid-template-rows: auto minmax(128px, 1fr) auto; padding: 12px; }
.buffer-distribution-chart figcaption strong { font-size: 12px; }
.buffer-distribution-chart figcaption > span { font-size: 10px; }
.buffer-histogram { height: 100%; min-height: 128px; gap: 14px; padding: 9px 6px 3px; }
.buffer-histogram-column { height: 100%; grid-template-rows: 16px minmax(82px, 1fr) 18px; }
.buffer-histogram-value { font-size: 11px; }
.buffer-histogram-column > strong { font-size: 10px; }
.buffer-histogram-legend { flex-direction: column; font-size: 9.5px; line-height: 1.4; gap: 2px; margin-top: 7px; }
.buffer-alert-heading { padding: 12px 12px 6px; flex-wrap: wrap; }
.buffer-alert-heading strong { font-size: 12px; }
.buffer-alert-heading span { font-size: 9px; }
.buffer-alert-list { padding-inline: 12px; }
.buffer-alert-row { padding: 10px 0; }
.buffer-alert-line { margin-bottom: 7px; gap: 7px; }
.buffer-alert-line strong { font-size: 11.5px; }
.buffer-alert-risk { font-size: 9px; }
.buffer-alert-penetration { font-size: 18px; }
.buffer-alert-meta { font-size: 10px; line-height: 1.4; flex-wrap: wrap; margin-top: 5px; }
.buffer-black-event-line { font-size: 10px; line-height: 1.5; flex-wrap: wrap; }
.buffer-alert-axis { font-size: 9px; padding-inline: 12px; }
.buffer-priority-callout { margin-top: auto; padding: 10px 0; }
.buffer-priority-callout strong { font-size: 11px; }
.buffer-priority-callout small { font-size: 10px; }
.buffer-order-button { min-height: 43px; padding: 6px 9px; }
.buffer-order-text strong { font-size: 10px; }
.buffer-order-count { font-size: 9px; }
.buffer-order-text span { display: block; overflow: hidden; margin-top: 2px; font-size: 9px; color: var(--schedule-muted); text-overflow: ellipsis; white-space: nowrap; }

.buffer-detail { height: 100%; }
.buffer-detail .buffer-hole-decision {
  min-height: 100%; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-areas: "head head" "progress progress" "position wpy" "chart decision" "chart plan" "facts plan";
  grid-template-rows: auto auto 74px auto minmax(76px, 1fr) auto;
}
.buffer-detail .buffer-hole-decision-head { grid-area: head; padding: 9px 12px; }
.buffer-detail .buffer-hole-kicker { font-size: 11px; }
.buffer-detail .buffer-hole-state-row { margin-top: 6px; }
.buffer-detail .buffer-risk-badge { font-size: 10px; }
.buffer-detail .buffer-penetration { font-size: 11px; }
.buffer-detail .buffer-penetration strong { font-size: 25px; }
.buffer-detail .buffer-penetration-formula { font-size: 9px; }
.buffer-detail .buffer-position { grid-area: position; padding: 8px 12px; }
.buffer-detail .buffer-wpy-grid { grid-area: wpy; padding: 8px 12px; border-left: 1px solid var(--schedule-border); gap: 8px; }
.buffer-detail .buffer-wpy-card span { font-size: 10px; }
.buffer-detail .buffer-wpy-card strong { font-size: 18px; margin-top: 5px; }
.buffer-detail .buffer-decision-copy { grid-area: decision; padding: 8px 12px 8px 16px; font-size: 11px; line-height: 1.5; }
.buffer-detail .buffer-recovery-chart { grid-area: chart; display: grid; grid-template-rows: auto repeat(3, minmax(27px, 1fr)) auto auto; gap: 3px; padding: 9px 12px; }
.buffer-detail .buffer-recovery-chart figcaption, .buffer-detail .buffer-position figcaption { font-size: 10px; flex-wrap: wrap; }
.buffer-detail .buffer-recovery-chart figcaption strong, .buffer-detail .buffer-position figcaption strong { font-size: 11px; }
.buffer-detail .buffer-recovery-row { min-height: 27px; grid-template-columns: 20px minmax(0, 1fr) 90px; }
.buffer-detail .buffer-recovery-track { height: 11px; }
.buffer-detail .buffer-recovery-label, .buffer-detail .buffer-recovery-value { font-size: 10px; }
.buffer-detail .buffer-recovery-value strong { font-size: 11px; }
.buffer-detail .buffer-hole-facts { grid-area: facts; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; padding: 8px 12px; border-bottom: 0; }
.buffer-detail .buffer-hole-facts span, .buffer-detail .buffer-meta-cell span, .buffer-detail .buffer-detail-cell span { font-size: 10px; }
.buffer-detail .buffer-hole-facts strong, .buffer-detail .buffer-meta-cell strong, .buffer-detail .buffer-detail-cell strong { white-space: normal; font-size: 11px; line-height: 1.45; }
.buffer-detail .buffer-recovery-plan { grid-area: plan; display: flex; flex-direction: column; padding: 12px; border-left: 1px solid var(--schedule-border); }
.buffer-detail .buffer-recovery-plan > header { font-size: 10px; flex-wrap: wrap; }
.buffer-detail .buffer-recovery-plan > p { font-size: 13px; line-height: 1.6; margin-top: 8px; }
.buffer-detail .buffer-recovery-plan > dl { margin-top: auto; padding-top: 9px; }
.buffer-detail .buffer-recovery-plan dt { font-size: 10px; }
.buffer-detail .buffer-recovery-plan dd { font-size: 11px; margin-top: 4px; }
.buffer-detail .buffer-recovery-plan > small { font-size: 9px; line-height: 1.45; }
.buffer-detail .buffer-order-progress { grid-area: progress; }
.buffer-detail .buffer-order-progress > header { padding: 8px 12px; }
.buffer-detail .buffer-order-progress > header span { font-size: 9px; }
.buffer-detail .buffer-order-progress > header strong { font-size: 10px; }
.buffer-detail .buffer-progress-operation > header { padding: 5px 10px; font-size: 9px; }
.buffer-detail .buffer-progress-operation > header strong { font-size: 10px; }
.buffer-detail .buffer-progress-puck { min-height: 29px; padding-inline: 10px; font-size: 9px; }
.buffer-detail .buffer-progress-identity > strong { font-size: 10px; }
.buffer-detail .buffer-progress-identity em { font-size: 8px; }
.buffer-detail .buffer-progress-state > small { font-size: 9px; }
.buffer-detail .buffer-hole-decision.is-black { grid-template-areas: "head head" "progress progress" "decision plan" "facts plan"; grid-template-rows: auto auto auto 1fr; }
.buffer-detail .buffer-detail-head { padding: 12px; }
.buffer-detail .buffer-detail-head h2 { font-size: 15px; }
.buffer-detail .buffer-detail-head p { font-size: 11px; line-height: 1.5; }
.buffer-detail .buffer-detail-cell { padding: 9px 12px; }

@media (max-height: 1000px) {
  .buffer-overview { grid-template-rows: auto minmax(140px, 1fr) auto auto auto; }
  .buffer-overview-head, .buffer-distribution-chart { padding: 7px 10px; }
  .buffer-distribution-chart { grid-template-rows: auto minmax(78px, 1fr) auto; }
  .buffer-histogram { min-height: 78px; padding-top: 4px; }
  .buffer-histogram-column { grid-template-rows: 14px minmax(40px, 1fr) 16px; }
  .buffer-alert-row { padding-block: 6px; }
  .buffer-priority-callout { display: none; }
  .buffer-detail .buffer-hole-decision { grid-template-rows: auto auto 68px auto minmax(66px, 1fr) auto; }
  .buffer-detail .buffer-hole-decision-head { padding-block: 6px; }
  .buffer-detail .buffer-hole-facts { padding-block: 5px; gap: 4px 12px; }
  .buffer-detail .buffer-recovery-chart { padding-block: 6px; grid-template-rows: auto repeat(3, minmax(25px, 1fr)) auto auto; gap: 2px; }
  .buffer-detail .buffer-recovery-row { min-height: 25px; }
  .buffer-detail .buffer-order-progress > header { padding-block: 5px; }
  .buffer-detail .buffer-progress-puck { min-height: 25px; }
}

@container scheduling-page (max-width: 1180px) {
  .schedule-view[data-schedule-view="buffer"] { grid-template-rows: max-content max-content max-content minmax(30px, max-content); align-content: start; overflow: auto; }
  .buffer-management-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: max-content max-content max-content; align-content: start; }
  .buffer-board-panel { grid-column: 1; grid-row: 1; min-height: 370px; grid-template-rows: auto 27px 43px 250px auto; }
  .buffer-detail-panel { grid-column: 1; grid-row: 3; min-height: 365px; }
  .buffer-inspector { grid-column: 1; grid-row: 2; width: 100%; height: auto; max-height: none; grid-template-columns: minmax(0, 1fr) 270px; grid-template-rows: 38px auto; }
  .buffer-inspector-head { grid-column: 1 / -1; }
  .buffer-inspector-scroll { grid-column: 1; grid-row: 2; overflow: visible; }
  .buffer-overview { min-height: 0; }
  .buffer-order-dock { grid-column: 2; grid-row: 2; border-top: 0; border-left: 1px solid var(--schedule-border); }
  .buffer-order-dock > div { grid-template-columns: 1fr; }
  .buffer-order-button { border-right: 0; }
  .buffer-order-button:nth-last-child(-n + 2) { border-bottom: 1px solid var(--schedule-border); }
  .buffer-order-button:last-child { border-bottom: 0; }
}

@container scheduling-page (max-width: 920px) {
  .buffer-context-strip dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .buffer-context-strip dl > div:nth-child(3) { border-right: 0; }
  .buffer-context-strip dl > div:nth-child(-n + 3) { border-bottom: 1px solid var(--schedule-border); }
  .buffer-priority-ribbon { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .buffer-priority-ribbon > div { min-height: 34px; }
  .buffer-inspector { grid-template-columns: minmax(0, 1fr); grid-template-rows: 34px auto auto; }
  .buffer-inspector-head, .buffer-inspector-scroll, .buffer-order-dock { grid-column: 1; }
  .buffer-inspector-head { grid-row: 1; }
  .buffer-inspector-scroll { grid-row: 2; }
  .buffer-order-dock { grid-row: 3; border-left: 0; border-top: 1px solid var(--schedule-border); }
  .buffer-order-dock > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .buffer-order-button { border-right: 1px solid var(--schedule-border); }
  .buffer-order-button:nth-child(2n) { border-right: 0; }
  .buffer-order-button:nth-last-child(-n + 2) { border-bottom: 0; }
  .buffer-detail .buffer-hole-decision { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "progress" "position" "wpy" "decision" "chart" "facts" "plan"; grid-template-rows: repeat(8, auto); }
  .buffer-detail .buffer-hole-decision.is-black { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "progress" "decision" "facts" "plan"; grid-template-rows: repeat(5, auto); }
  .buffer-detail .buffer-wpy-grid, .buffer-detail .buffer-recovery-plan { border-left: 0; }
  .buffer-detail .buffer-penetration { flex-wrap: wrap; justify-content: flex-end; }
}

@container scheduling-page (max-width: 700px) {
  .buffer-context-strip dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .buffer-context-strip dl > div { border-bottom: 1px solid var(--schedule-border); }
  .buffer-context-strip dl > div:nth-child(2n) { border-right: 0; }
  .buffer-context-strip dl > div:nth-last-child(-n + 2) { border-bottom: 0; }
  .buffer-direction { font-size: 8px; }
  .buffer-zone-axis span, .buffer-puck-load { display: none; }
  .buffer-board-legend { align-items: flex-start; flex-direction: column; }
  .buffer-hole-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
