/* Desktop keeps a wide workspace with the steps above the content. */
@media (min-width: 1000px) {
  .app-frame { grid-template-rows: 76px minmax(0, 1fr) auto; }
  body[data-step="3"][data-view="booking"] .app-frame { position: static; inset: auto; }
  .app-topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 24px;
    padding-inline: 32px;
  }
  .app-brand { justify-self: start; gap: 16px; }
  .app-brand img { width: 176px; max-height: 52px; }
  .app-header-back { gap: 8px; padding-inline: 10px; border-radius: 10px; color: var(--teal); }
  .app-header-back::after { content: 'Tilbage'; font-size: 14px; font-weight: 550; }
  .app-topbar-title { color: var(--ink); font-size: 17px; text-align: center; }
  .app-topbar-actions { justify-self: end; }
  .app-topbar-actions .app-menu-button { width: auto; gap: 10px; padding-inline: 15px; border: 1px solid var(--line); color: var(--teal); }
  .app-menu-button::after { content: 'Menu'; font-size: 15px; font-weight: 550; }
  .app-workspace { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .app-navigation { display: block; height: auto; padding: 12px 32px; overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); background: #fff; }
  .app-navigation .progress-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; width: 100%; max-width: 1060px; margin: 0 auto; }
  .app-navigation .step-button { justify-content: center; gap: 10px; min-height: 46px; padding: 10px 14px; font-size: 14px; border-radius: 10px; }
  .app-navigation .step-number { width: 27px; height: 27px; flex-basis: 27px; }
  .app-navigation .nav-bottom { display: none; }
  .step-button.complete { color: var(--teal); }
  .step-button.complete .step-number { background: var(--teal-light); border-color: #d6dfeb; color: var(--teal); }
  .app-scroll { scroll-padding: 28px; }
  .booking-layout { width: 100%; max-width: 1320px; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; padding: 32px 32px 44px; }
  .booking-layout > .main-panel { max-width: none; margin: 0; }
  .booking-layout > .order-aside { width: 100%; max-width: none; }
  .page-heading,
  .detail-heading h1,
  .time-selection-screen .page-heading { font-size: 34px; line-height: 1.2; letter-spacing: -.75px; }
  .app-flow-heading { margin-bottom: 24px; }
  .page-intro { font-size: 16px; line-height: 1.55; }
  .btn { min-height: 48px; border-radius: 11px; font-size: 15px; }
  .text-link,
  .back-link,
  .terms-link { color: var(--teal); }
  .page-intro,
  .field-hint,
  .optional-label,
  .order-foot,
  .footer-help,
  .order-location,
  .order-appointment,
  .order-vat,
  .dock-guidance,
  .review-device span,
  .review-value,
  .review-row,
  .review-accessories-heading,
  .terms-detail { color: var(--muted); }
  .order-appointment strong,
  .review-value strong,
  .review-row > div > strong,
  .review-row > strong,
  .terms-detail strong { color: var(--ink); }
  .review-row.discount,
  .review-row.discount > strong { color: #486652; }
  .review-payment,
  .review-payment strong { color: #486652; }
  .order-status { display: none; }
  .order-device { gap: 14px; }
  .order-device img { width: 54px; height: 72px; }
  .order-top h2 { font-size: 20px; }
  .order-total > strong { font-size: 27px; }
  .order-card .desktop-cta > .btn { min-height: 50px; font-size: 15px; }
  .order-card .dock-guidance { padding: 5px 0; text-align: left; justify-content: flex-start; }

  .device-entry,
  .device-brand-screen,
  .model-picker-screen { width: 100%; max-width: 1160px; padding: 36px 32px 44px; margin: 0 auto; }
  .device-entry .entry-heading,
  .device-brand-heading { margin-bottom: 28px; }
  .device-brand-screen { max-width: 1040px; }
  .model-picker-screen .model-picker-heading { margin-bottom: 22px; }
  .model-picker-screen .model-search-controls { padding-top: 0; padding-bottom: 14px; }

  .time-booking-card { padding: 26px; border-radius: 18px; }
  .time-selection-screen .date-grid { gap: 9px; }
  .time-selection-screen .date-card { min-height: 88px; }
  .time-selection-screen .date-weekday { font-size: 14px; }
  .time-selection-screen .date-number { font-size: 26px; }
  .time-selection-screen .slots-section { margin-top: 26px; padding-top: 24px; }
  .time-selection-screen .time-slot { min-height: 56px; }

  .information-screen .app-flow-heading,
  .review-screen .app-flow-heading { margin-bottom: 24px; }
  .information-screen #customer-form > .form-grid { padding: 26px; gap: 22px 20px; }
  .information-screen .input,
  .information-screen .postcode-input,
  .information-screen .textarea { min-height: 52px; padding: 12px 14px; border-radius: 11px; background: #f8f9fc; font-size: 16px; }
  .information-screen .textarea { min-height: 110px; }
  .information-screen .input[aria-invalid="true"],
  .information-screen .postcode-input[aria-invalid="true"] { background: #fffaf9; }
  .information-screen .field-label { font-size: 15px; }
  .information-screen.contact-screen #customer-form > .form-grid > .span-2 { grid-column: auto; }
  .address-location .location-option { min-height: 48px; font-size: 15px; }
  .address-more { color: var(--muted); }
  .address-more summary { min-height: 52px; font-size: 15px; }

  .review-section { margin-top: 16px; padding: 24px; border-radius: 16px; }
  .review-heading { margin-bottom: 16px; }
  .review-heading h2 { font-size: 19px; }
  .review-device { gap: 14px; margin-bottom: 18px; }
  .review-device img { width: 48px; height: 62px; }
  .review-device strong { font-size: 18px; }
  .review-row,
  .review-value { font-size: 15px; line-height: 1.55; }
  .review-row > .text-link { flex-shrink: 0; }
  .review-screen .review-consent { padding: 16px 24px; }

  .app-dock { padding-left: 0; }
  body[data-view="models"] .app-dock { display: none; }
  .app-dock .mobile-bar.single-action { max-width: 760px; padding: 14px 32px; }
  .summary-screen,
  .menu-screen { width: 100%; max-width: 760px; padding: 36px 32px 44px; }
  .confirmation { width: 100%; max-width: 760px; padding: 32px 32px 40px; }
  .confirmation .page-heading { font-size: 34px; }
  .confirmation-card { padding: 26px; border-radius: 18px; }
  .confirmation-device img { width: 58px; height: 78px; }
  .confirmation-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; font-size: 15px; }
  .confirmation-details > div:last-child { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 20px; }
  .confirmation-actions > .btn { min-width: 180px; }
}

@media (min-width: 1000px) and (max-width: 1199px) {
  .booking-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; padding-inline: 24px; }
  .app-topbar,
  .app-navigation { padding-inline: 24px; }
  .time-booking-card { padding: 22px; }
  .information-screen #customer-form > .form-grid { padding: 22px; gap: 20px 16px; }
}
