/* The shared hero, sections, buttons and FAQ own the site composition.
   These rules are limited to the mission editor and its data states. */
.dayz-tool {
  position: relative;
  background: var(--vx-void);
  color: var(--vx-text);
  font-family: var(--vx-font-body);
}
.dayz-tool [hidden] { display: none !important; }
.dayz-tool code { overflow-wrap: anywhere; font-family: var(--vx-font-mono); font-weight: 500; }
.dayz-tool .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.dayz-tool :is(#editor-title, #workspace, #preview-section, #sample-walkthrough) {
  scroll-margin-top: calc(var(--header) + 24px);
}
.dayz-tool .meta-label {
  margin: 0;
  color: var(--vx-bright);
  font: 600 var(--vx-type-label)/1.4 var(--vx-font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.dayz-tool .editor-example {
  --vx-chamfer-edge: var(--vx-line-strong);
  padding: 32px;
  background: linear-gradient(150deg, var(--vx-raised), var(--vx-surface));
}
.dayz-tool .editor-example figcaption { display: grid; gap: 12px; }
.dayz-tool .editor-example figcaption strong {
  font: 700 var(--vx-type-card-title)/1.15 var(--vx-font-display);
  letter-spacing: -.03em;
}
.dayz-tool .example-file {
  margin-top: 28px;
  padding-block: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 16px;
  border-block: 1px solid var(--vx-line-strong);
  color: var(--vx-muted);
  font: 500 var(--vx-type-label)/1.5 var(--vx-font-mono);
}
.dayz-tool .example-file span:last-child { color: var(--vx-bright); }
.dayz-tool .example-values {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  padding-top: 24px;
}
.dayz-tool .example-values > div { display: grid; gap: 8px; }
.dayz-tool .example-values > div:last-child { text-align: right; }
.dayz-tool .example-values span { color: var(--vx-muted); font-size: var(--vx-type-label); }
.dayz-tool .example-values strong {
  color: var(--vx-text);
  font: 700 var(--vx-type-metric)/1 var(--vx-font-display);
  font-variant-numeric: tabular-nums;
}
.dayz-tool .example-values > div:last-child strong,
.dayz-tool .example-values svg { color: var(--vx-bright); }
.dayz-tool .editor-example > p { margin: 20px 0 0; color: var(--vx-muted); font-size: var(--vx-type-label); }

.dayz-tool :is(.editor-section, .workspace, .preview-section, .seo-guide) { border-top: 1px solid var(--vx-line); }
.dayz-tool .workspace { background: var(--vx-void-soft); }
.dayz-tool .section:not(.faq-band) .section-heading { margin-bottom: 40px; }
.dayz-tool .message {
  margin-bottom: 24px;
  padding: 16px 20px;
  border: 1px solid var(--vx-line-strong);
  border-radius: var(--vx-radius-inner);
  background: var(--vx-surface);
  color: var(--vx-muted);
  overflow-wrap: anywhere;
}
.dayz-tool .message-busy { border-color: var(--vx-brand); color: var(--vx-text); }
.dayz-tool .message-error { border-color: #b64b61; background: #240d18; color: #fecdd3; }

.dayz-tool .load-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr);
  gap: 32px;
  align-items: stretch;
}
.dayz-tool .zip-picker {
  --vx-chamfer-edge: var(--vx-bright);
  position: relative;
  min-width: 0;
  min-height: 180px;
  padding: 32px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  background: var(--vx-surface);
  cursor: pointer;
}
.dayz-tool .zip-picker:is(:hover, :focus-within) { background: var(--vx-raised); }
.dayz-tool .zip-picker:focus-within { outline: 2px solid var(--vx-bright); outline-offset: 5px; }
.dayz-tool .picker-icon { width: 40px; display: grid; place-items: center; color: var(--vx-brand); }
.dayz-tool .picker-icon svg { width: 100%; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.dayz-tool .picker-copy { min-width: 0; display: grid; gap: 8px; }
.dayz-tool .picker-copy strong { font: 700 var(--vx-type-card-title-sm)/1.2 var(--vx-font-display); letter-spacing: -.02em; }
.dayz-tool .picker-copy span { color: var(--vx-muted); font-size: var(--vx-type-body-sm); overflow-wrap: anywhere; }
.dayz-tool .picker-action {
  padding: 15px 18px;
  background: var(--vx-brand);
  color: var(--vx-on-brand);
  clip-path: var(--vx-clip-sm);
  font: 600 var(--vx-type-label)/1.3 var(--vx-font-mono);
  letter-spacing: .04em;
  text-transform: uppercase;
  text-align: center;
}
.dayz-tool .load-requirements { min-width: 0; padding-block: 12px; }
.dayz-tool .load-requirements code { display: block; margin-top: 8px; color: var(--vx-text); font-size: var(--vx-type-body-sm); }
.dayz-tool .load-requirements > p:last-child { margin: 16px 0 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool .sample-mission { margin-top: 24px; }
.dayz-tool .sample-mission p { max-width: 72ch; margin: 4px 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }

.dayz-tool .mission-summary {
  --vx-chamfer-edge: var(--vx-line-strong);
  margin-top: 28px;
  padding: 28px;
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: 24px;
  background: var(--vx-surface);
}
.dayz-tool .mission-identity { min-width: 0; }
.dayz-tool .mission-identity h3 { margin: 8px 0; overflow-wrap: anywhere; font: 700 var(--vx-type-h3)/1.25 var(--vx-font-display); }
.dayz-tool .mission-identity > p:last-child { margin: 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool .summary-stats { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dayz-tool .summary-stats div { min-width: 0; }
.dayz-tool .summary-stats dt { color: var(--vx-muted); font-size: var(--vx-type-label); }
.dayz-tool .summary-stats dd { margin: 8px 0 0; font: 700 var(--vx-type-card-title)/1 var(--vx-font-display); font-variant-numeric: tabular-nums; }
.dayz-tool .health-summary { grid-column: 1 / -1; }
.dayz-tool .health-badge {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid var(--vx-line-strong);
  border-radius: var(--vx-radius-inner);
  background: var(--vx-void);
  font: 600 var(--vx-type-label)/1.4 var(--vx-font-mono);
  text-transform: uppercase;
}
.dayz-tool .health-badge.safe { border-color: #267541; color: #86efac; }
.dayz-tool .health-badge.warn { border-color: #857025; color: #fde047; }
.dayz-tool .health-badge.error { border-color: #b64b61; color: #fda4af; }

.dayz-tool .stage-lock {
  --vx-chamfer-edge: var(--vx-line-strong);
  margin-bottom: 24px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--vx-surface);
}
.dayz-tool .stage-lock > div { min-width: 0; }
.dayz-tool .stage-lock strong { display: block; margin-top: 8px; font: 700 var(--vx-type-evidence-title)/1.3 var(--vx-font-display); }
.dayz-tool .stage-lock div > p:last-child { margin: 8px 0 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool .stage-lock .cta-tertiary { flex-shrink: 0; }
.dayz-tool [data-workspace-controls][inert] { opacity: .45; user-select: none; }
.dayz-tool :is(.workspace-grid, .preview-grid) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.dayz-tool .workspace-grid { align-items: start; }
.dayz-tool .panel {
  --vx-chamfer-edge: var(--vx-line-strong);
  position: relative;
  min-width: 0;
  padding: 32px;
  background: var(--vx-surface);
}
.dayz-tool .panel h3 { margin: 8px 0 24px; font: 700 var(--vx-type-card-title)/1.15 var(--vx-font-display); letter-spacing: -.03em; }
.dayz-tool .select-field { display: grid; gap: 10px; }
.dayz-tool .select-field > span { color: var(--vx-muted); font-size: var(--vx-type-body-sm); font-weight: 600; }
.dayz-tool select { min-height: 52px; border-color: #527391; background: var(--vx-void-soft); cursor: pointer; }
.dayz-tool .blueprint-detail { margin-top: 24px; padding: 20px 0; border-block: 1px solid var(--vx-line); }
.dayz-tool .blueprint-detail strong { display: block; margin-bottom: 8px; color: var(--vx-bright); }
.dayz-tool .blueprint-detail p { margin: 0; color: var(--vx-muted); }
.dayz-tool .blueprint-detail small { display: block; margin-top: 12px; color: var(--vx-muted); font: 500 var(--vx-type-label)/1.5 var(--vx-font-mono); }
.dayz-tool .panel-note { margin: 24px 0 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool :is(.panel-title-row, .health-heading, .slider-heading) { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.dayz-tool :is(.panel-title-row, .health-heading) { flex-wrap: wrap; }
.dayz-tool .text-button {
  flex-shrink: 0;
  min-height: 44px;
  padding: 4px 0;
  border: 0;
  border-bottom: 1px solid var(--vx-line-strong);
  background: transparent;
  color: var(--vx-bright);
  font: 600 var(--vx-type-label)/1.3 var(--vx-font-mono);
  cursor: pointer;
}
.dayz-tool .text-button:hover { color: var(--vx-text); border-color: var(--vx-bright); }
.dayz-tool .sliders { display: grid; gap: 24px; }
.dayz-tool .slider-field { padding-top: 20px; border-top: 1px solid var(--vx-line); }
.dayz-tool .slider-heading label { font-weight: 600; }
.dayz-tool .slider-heading output { flex-shrink: 0; min-width: 56px; color: var(--vx-bright); text-align: right; font: 600 var(--vx-type-body)/1.3 var(--vx-font-mono); font-variant-numeric: tabular-nums; }
.dayz-tool input[type='range'] { width: 100%; height: 44px; min-height: 44px; margin: 8px 0 0; padding: 0; accent-color: var(--vx-brand); cursor: pointer; }
.dayz-tool .slider-field p { margin: 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); overflow-wrap: anywhere; }
.dayz-tool .action-bar {
  --vx-chamfer-edge: var(--vx-line-strong);
  margin-top: 24px;
  padding: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  background: var(--vx-surface);
}
.dayz-tool .action-bar p { margin: 8px 0 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool .action-bar .meta-label { margin: 0; color: var(--vx-bright); font-size: var(--vx-type-label); }
.dayz-tool .action-buttons { display: flex; align-items: stretch; gap: 12px; }
.dayz-tool .action-buttons .button { min-width: 0; min-height: 52px; padding: 14px 20px; line-height: 1.4; letter-spacing: .04em; white-space: normal; text-align: center; }

.dayz-tool .warning-list { margin-bottom: 24px; display: grid; gap: 8px; }
.dayz-tool .warning-item { padding: 16px; border-left: 3px solid #eab308; background: #211c0c; color: #fef08a; overflow-wrap: anywhere; }
.dayz-tool .preview-metrics { margin-bottom: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--vx-line-strong); }
.dayz-tool .metric { min-width: 0; padding: 24px 20px; }
.dayz-tool .metric + .metric { border-left: 1px solid var(--vx-line); }
.dayz-tool .metric span { display: block; color: var(--vx-muted); font-size: var(--vx-type-label); }
.dayz-tool .metric strong { display: block; margin-top: 8px; overflow-wrap: anywhere; font: 700 var(--vx-type-h3)/1.2 var(--vx-font-display); font-variant-numeric: tabular-nums; }
.dayz-tool .table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.dayz-tool #tested-missions { scroll-margin-top: calc(var(--header) + 24px); }
.dayz-tool table { width: 100%; border-collapse: collapse; font-size: var(--vx-type-body-sm); }
.dayz-tool :is(th, td) { padding: 14px 8px; border-bottom: 1px solid var(--vx-line); text-align: left; vertical-align: top; }
.dayz-tool th { color: var(--vx-muted); font: 600 var(--vx-type-label)/1.4 var(--vx-font-mono); }
.dayz-tool td { color: var(--vx-muted); font-variant-numeric: tabular-nums; }
.dayz-tool :is(th, td):nth-child(n + 2) { white-space: nowrap; }
.dayz-tool td:first-child { min-width: 150px; color: var(--vx-text); overflow-wrap: anywhere; }
.dayz-tool .health-panel { margin-top: 24px; }
.dayz-tool .health-heading h3 { margin-bottom: 8px; }
.dayz-tool .finding-list { margin: 24px 0 0; padding: 0; display: grid; gap: 12px; list-style: none; }
.dayz-tool .finding { padding: 16px; display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 12px; border: 1px solid var(--vx-line); border-radius: var(--vx-radius-inner); background: var(--vx-void); }
.dayz-tool .finding-level { font: 600 var(--vx-type-label)/1.5 var(--vx-font-mono); text-transform: uppercase; }
.dayz-tool .finding.error .finding-level { color: #fda4af; }
.dayz-tool .finding.warn .finding-level { color: #fde047; }
.dayz-tool .finding.info .finding-level { color: var(--vx-bright); }
.dayz-tool .finding p { margin: 0; color: var(--vx-muted); overflow-wrap: anywhere; }
.dayz-tool .finding strong { color: var(--vx-text); }
.dayz-tool .empty-check { margin: 24px 0 0; padding: 16px; border-left: 3px solid var(--vx-safe); background: #0a2015; color: #bbf7d0; }

.dayz-tool .sample-walkthrough { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; align-items: start; }
.dayz-tool .walkthrough-steps { margin: 0; padding-left: 24px; list-style: decimal; color: var(--vx-muted); }
.dayz-tool .walkthrough-steps li { padding: 0 0 24px 8px; }
.dayz-tool .walkthrough-steps li::marker { color: var(--vx-bright); font-weight: 600; }
.dayz-tool .walkthrough-steps strong { color: var(--vx-text); }
.dayz-tool .sample-result { --vx-chamfer-edge: var(--vx-line-strong); min-width: 0; margin: 0; padding: 28px; background: var(--vx-surface); }
.dayz-tool .sample-result figcaption { display: grid; gap: 12px; margin-bottom: 20px; }
.dayz-tool .sample-result figcaption strong,
.dayz-tool .mission-handoff h3 { font: 700 var(--vx-type-card-title)/1.2 var(--vx-font-display); color: var(--vx-text); letter-spacing: -.025em; }
.dayz-tool .sample-result tbody th { font: inherit; color: var(--vx-text); }
.dayz-tool .sample-result td:last-child { color: var(--vx-bright); font-weight: 600; }
.dayz-tool .sample-result p { margin: 20px 0 0; color: var(--vx-muted); font-size: var(--vx-type-body-sm); }
.dayz-tool .mission-handoff { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--vx-line-strong); display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 40px; color: var(--vx-muted); }
.dayz-tool .mission-handoff h3 { margin: 12px 0 20px; }
.dayz-tool .mission-handoff p { margin: 0 0 20px; }
.dayz-tool :is(.sample-walkthrough, .mission-handoff) a { color: var(--vx-bright); text-decoration: underline; text-underline-offset: .2em; }
.dayz-tool :is(.sample-walkthrough, .mission-handoff) a:hover { color: var(--vx-text); }
body.is-busy .dayz-tool :is(.zip-picker, .button, .text-button, input, select) { cursor: wait; }

@media (max-width: 1100px) {
  .dayz-tool .load-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .dayz-tool .load-requirements { padding-block: 0; }
  .dayz-tool .load-requirements code { display: inline-block; margin-right: 20px; }
  .dayz-tool .action-bar { grid-template-columns: minmax(0, 1fr); }
  .dayz-tool .action-buttons .button { flex: 1; }
  .dayz-tool .mission-summary { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .dayz-tool :is(.workspace-grid, .preview-grid, .sample-walkthrough, .mission-handoff) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
  .dayz-tool .section:not(.faq-band) .section-heading { margin-bottom: 32px; }
  /* Keep the working tool close to its introduction on small screens. The
     complete sample demonstration remains available in the walkthrough. */
  .dayz-tool .tool-hero .editor-example { display: none; }
  .dayz-tool .zip-picker { grid-template-columns: auto minmax(0, 1fr); padding: 24px; gap: 20px; }
  .dayz-tool .picker-action { grid-column: 1 / -1; }
  .dayz-tool :is(.panel, .mission-summary, .stage-lock, .action-bar, .sample-result) { padding: 24px 20px; }
  .dayz-tool .stage-lock { flex-direction: column; align-items: flex-start; gap: 16px; }
  .dayz-tool .summary-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .dayz-tool .panel-title-row { gap: 0 20px; margin-bottom: 20px; }
  .dayz-tool .panel-title-row h3 { margin-bottom: 12px; }
  .dayz-tool .action-buttons { flex-direction: column; }
  .dayz-tool .action-buttons .button { width: 100%; }
  .dayz-tool .preview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dayz-tool .metric { padding: 20px 12px; }
  .dayz-tool .metric:nth-child(odd) { border-left: 0; }
  .dayz-tool .metric:nth-child(n + 3) { border-top: 1px solid var(--vx-line); }
  .dayz-tool .finding { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  /* Controls stay inert until the mission is parsed; avoid pages of unusable
     controls between loading and the sample walkthrough on a phone. */
  .dayz-tool .workspace.is-locked [data-workspace-controls] { display: none; }
}
