/* === PRINT STYLES === */
@media print {
  /* === UI ELEMENTS TO HIDE === */
  .section-controls, .file-input-container, .app-header, .print-button, .back-button, .toast-notification, .loading-overlay, .image-controls, .image-upload-modal, .recipe-image-placeholder, #sectionControls, .upload-modal, .debug-toggle-btn, .debug-control-panel, .btn--debug, .btn--floating, .modal-base, .no-print { display: none !important; }

  /* === BACKGROUND EFFECTS TO HIDE === */
  .grid-overlay, .rotating-gradient, body::before, body::after { display: none !important; }
  
  .volume-tracking-warnings { display: none !important; }
  
  /* === GLOBAL LAYOUT ADJUSTMENTS === */
  .recipe-image-display { cursor: default; }
  .recipe-image-display:hover { transform: none; }

  html {
    margin: 0;
    padding: 0;
    background-color: var(--white) !important;
    color: var(--black) !important;
    font-size: 12pt;
    line-height: 1.4;
  }

  body {
    background: var(--white) !important;
    padding: var(--spacing-sm);
  }

  /* Override viewport-based responsive layouts for print */
  * {
    max-width: none !important;
  }
  
  .recipe-container {
    max-width: none;
    margin: 0;
    padding: 0.5in;
    background-color: var(--white) !important;
    border-radius: 0;
    box-shadow: none;
  }
  
  /* Special print behavior: show sections marked as show-for-print even if hidden */
  .section-hidden.show-for-print { display: block !important; }
  
  .recipe-section {
    margin-bottom: 1rem;
    background: var(--white) !important;
    box-shadow: none;
    page-break-inside: avoid;
  }
  
  .ingredients-table th, .mash-table th {
    background-color: var(--accent-color) !important;
    color: var(--white) !important;
  }
  
  .section-title, .stats-title, .recipe-title {
    color: var(--accent-color) !important;
    page-break-after: avoid;
  }
  
  .recipe-title { font-size: 34pt !important; }
  
  .batch-number-field {
    border-bottom: 1px solid var(--black) !important;
    color: var(--black) !important;
    padding-bottom: 20px !important;
    margin-bottom: -3px !important;
  }
  
  .date-field {
    color: var(--black) !important;
    font-weight: 600 !important;
    font-size: 11pt !important;
    border-bottom: 1px solid var(--black) !important;
    padding-bottom: 2px !important;
    margin: 0 auto !important;
    display: block !important;
    text-align: center !important;
    letter-spacing: 0.1em !important;
    width: 85px !important;
    height: 1.32rem !important;
    box-sizing: border-box !important;
    background: transparent !important;
  }
  
  .actual-measurement-field {
    border-bottom: 1px solid var(--black) !important;
    width: 70px !important;
    height: 20px !important;
    margin: 0 !important;
    background: transparent !important;
    color: var(--black) !important;
  }
  
  /* Stats with ranges - print layout */
  .stats-with-ranges {
    margin-top: 0 !important;
    padding: 0 !important;
    page-break-inside: avoid;
  }
  
  .stat-ranges {
    display: block !important;
    width: 100% !important;
    page-break-inside: avoid;
  }
  
  .stat-range {
    display: block !important;
    page-break-inside: avoid;
    margin-bottom: 0.3rem !important;
    width: 100% !important;
  }
  
  .stat-range:last-child { margin-bottom: 0 !important; }
  
  .stat-range-row {
    display: grid !important;
    grid-template-columns: 2.4rem 1fr 4.4rem !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 20px !important;
    box-sizing: border-box !important;
    gap: 0.5rem !important;
  }
  
  .stat-range-label {
    font-weight: bold !important;
    color: var(--black) !important;
    text-align: right !important;
    font-size: 11pt !important;
    line-height: 20px !important;
    box-sizing: border-box !important;
    grid-column: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    padding-right: 0 !important;
    margin-right: 0 !important;
  }
  
  .stat-range-bar {
    background: var(--white) !important;
    border: 1px solid var(--black) !important;
    height: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    width: 100% !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
    position: relative !important;
    grid-column: 2 !important;
  }
  
  .range-track { background: var(--white) !important; }
  
  .range-indicator {
    background: var(--black) !important;
    border: none !important;
    box-shadow: none !important;
    width: 2px !important;
    height: 19px !important;
    top: 0px !important;
    border-radius: 0 !important;
    position: absolute !important;
    z-index: var(--z-content-above) !important;
    box-sizing: border-box !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    transform: translateX(-50%) !important;
  }
  
  .style-range-highlight {
    opacity: 0.4 !important;
    border-radius: 0 !important;
    height: 18.5px !important;
    min-height: 18.5px !important;
    max-height: 18.5px !important;
    position: absolute !important;
    top: 0px !important;
    box-sizing: border-box !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  
  .stat-range .range-min-value,
  .stat-range .range-max-value {
    font-size: 6.5pt !important;
    color: var(--gray-300) !important;
    font-weight: bold !important;
    line-height: 1 !important;
    opacity: 1 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    top: -1px !important;
    position: absolute !important;
    white-space: nowrap !important;
    z-index: var(--z-content-above) !important;
  }
  
  .stat-range .range-min-value, .stat-range .range-max-value.max-value-left-aligned { transform: translateX(-100%) translateX(-4px) !important; }
  .stat-range .range-min-value.min-value-right-aligned, .stat-range .range-max-value { transform: translateX(4px) !important; }
  
  .stat-range .range-recipe-value {
    font-size: 9pt !important;
    color: var(--black) !important;
    font-weight: bold !important;
    line-height: 1 !important;
    bottom: 0px !important;
    position: absolute !important;
    white-space: nowrap !important;
    z-index: var(--z-content-above) !important;
  }
  
  .stat-range .range-recipe-value.recipe-value-left { transform: translateX(-100%) translateX(-6px) !important; }
  .stat-range .range-recipe-value.recipe-value-right { transform: translateX(6px) !important; }
  
  /* Mash Tun Utilization Progress Bar print */
  .mash-tun-utilization {
    background: var(--white) !important;
    margin-top: 2px !important;
    page-break-inside: avoid !important;
  }
  
  .utilization-row { gap: 8px !important; }
  
  .utilization-label { 
    font-weight: bold !important; 
    color: var(--black) !important; 
  }
  
  .progress-bar-container {
    border: 1.5px solid var(--black) !important;
    border-radius: var(--border-radius) !important;
    height: 12px !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .progress-bar-background {
    background: var(--white) !important;
    border: none !important;
    border-radius: var(--border-radius) !important;
    box-shadow: none !important;
  }
  
  .progress-bar-fill {
    border-radius: var(--border-radius) 0 0 var(--border-radius) !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .mash-tun-utilization .progress-bar-fill.utilization-good { background: var(--success-color) !important; }
  .mash-tun-utilization .progress-bar-fill.utilization-warning { background: var(--warning-color) !important; }
  .mash-tun-utilization .progress-bar-fill.utilization-danger { background: var(--volume-subtraction) !important; }
  
  .progress-bar-marker { 
    background: var(--black) !important; 
    width: 2px !important; 
    print-color-adjust: exact !important; 
    -webkit-print-color-adjust: exact !important; 
  }
  
  .utilization-percentage { 
    font-weight: bold !important; 
    color: var(--black) !important; 
  }
  
  /* === FORCE DESKTOP COLUMN LAYOUTS FOR ALL PRINT === */
  /* Override any mobile responsive rules - preserve desktop column layout */
  .ingredients-container, 
  .mash-fermentation-container,
  .brew-day-measurements-columns, 
  .water-volume-tracking-container,
  .water-profiles-container {
    column-count: 2 !important;
    column-gap: 1rem !important;
    column-fill: balance !important;
    overflow: visible !important;
    width: 100% !important;
    display: block !important;
    /* Ensure no flex/grid interference */
    flex-direction: initial !important;
    grid-template-columns: none !important;
  }

  /* Force column breaks to work properly on mobile */
  .ingredients-container > *, 
  .mash-fermentation-container > *,
  .brew-day-measurements-columns > *, 
  .water-volume-tracking-container > *,
  .water-profiles-container > * {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* No-sparge print layout fixes */
  .brew-day-measurements-columns-no-sparge {
    height: auto !important;
    column-count: 2 !important;
    column-gap: 1rem !important;
    column-fill: balance !important;
    overflow: visible !important;
  }
  
  .brew-day-measurements-columns-no-sparge .brew-day-measurements-subsection.column-break-before {
    break-before: column !important;
    page-break-before: avoid !important;
  }

  /* === DATA PREVIEW PRINT STYLES === */
  .data-preview-container {
    max-width: none !important;
    padding: 0.5in !important;
    background: var(--white) !important;
  }
  
  .data-preview-header {
    margin-bottom: 1.5rem !important;
    page-break-after: avoid !important;
  }
  
  .data-preview-header h1 {
    color: var(--accent-color) !important;
    font-size: 24pt !important;
    margin-bottom: 0.5rem !important;
  }
  
  .data-preview-header h2 {
    color: var(--black) !important;
    font-size: 14pt !important;
    margin-bottom: 1rem !important;
  }
  
  .data-preview-header p {
    color: var(--gray-300) !important;
    font-size: 10pt !important;
    margin-bottom: 0.5rem !important;
  }
  
  /* Progress statistics in print */
  .data-preview-stats {
    max-width: 100% !important;
    margin: 1rem auto !important;
  }
  
  .progress-stat {
    margin-bottom: 0.75rem !important;
    page-break-inside: avoid !important;
  }
  
  .progress-label {
    font-size: 10pt !important;
    color: var(--black) !important;
    margin-bottom: 0.25rem !important;
  }
  
  .progress-count {
    color: var(--black) !important;
    font-weight: bold !important;
  }
  
  /* Progress bars for print */
  .progress-bar {
    height: 16px !important;
    border: 1px solid var(--black) !important;
    background: var(--white) !important;
    border-radius: var(--border-radius-md) !important;
    box-shadow: none !important;
    position: relative !important;
    overflow: visible !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .progress-fill {
    height: 100% !important;
    border-radius: var(--border-radius-md) !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .progress-fill.complete {
    background-color: var(--success-color) !important;
  }
  
  .progress-fill.incomplete-required {
    background-color: var(--error-color) !important;
  }
  
  .progress-fill.incomplete-optional {
    background-color: var(--gray-300) !important;
  }
  
  /* Coverage progress bars */
  .coverage-found {
    background-color: var(--success-color) !important;
  }
  
  .coverage-beerxml {
    background-color: var(--badge-beerxml-text) !important;
  }
  
  .coverage-beerjson {
    background-color: var(--white) !important;
  }

  .coverage-beerjson-text {
    color: color-mix(in srgb, var(--badge-beerjson) 70%, var(--badge-beerjson-text));
  }
  
  /* Hide progress markers and badges for print */
  .progress-markers,
  .progress-markers-coverage,
  .progress-badges {
    display: none !important;
  }
  
  /* Simplify coverage display for print */
  .coverage-progress-count {
    position: static !important;
    display: inline !important;
  }
  
  /* Data preview sections already look good in print */
  .data-preview-sections {
    display: block !important;
    margin-top: 1rem !important;
  }
  
  .data-section {
    page-break-inside: avoid !important;
    margin-bottom: 1rem !important;
    border: 1px solid var(--gray-400) !important;
    background: var(--white) !important;
  }
  
  .data-section-title {
    color: var(--accent-color) !important;
    font-size: 14pt !important;
    border-bottom-color: var(--accent-color) !important;
    page-break-after: avoid !important;
  }

  .field-label {
    color: var(--black) !important;
  }
  
  /* Field badges in print */
  .field-badge {
    font-size: 8pt !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .badge-present {
    background-color: var(--success-color) !important;
    color: var(--white) !important;
  }
  
  .badge-missing-required {
    background-color: var(--error-color) !important;
    color: var(--white) !important;
  }
  
  .badge-missing-optional {
    background-color: var(--gray-300) !important;
    color: var(--white) !important;
  }
  
  .badge-requires-beerjson {
    background-color: color-mix(in srgb, var(--badge-beerjson) 70%, var(--badge-beerjson-text)) !important;
    color: var(--white) !important;
  }

  .badge-requires-beerxml {
    background-color: color-mix(in srgb, var(--badge-beerxml) 70%, var(--badge-beerxml-text)) !important;
    color: var(--white) !important;
  }

  .badge-not-applicable {
    color: var(--white) !important;
  }
  
  /* Hide action buttons in print */
  .data-preview-actions {
    display: none !important;
  }
  
  /* Hide celebration animations in print */
  .celebration-101,
  .celebration-progress-fill,
  .celebration-badge {
    animation: none !important;
  }

  /* === RECIPE HEADER PRINT LAYOUT === */
  /* Force desktop layout for recipe header in print */
  .recipe-header-center {
    grid-template-columns: 6fr 1fr !important;
    gap: var(--spacing-lg) !important;
    text-align: left !important;
  }

  .recipe-header-info {
    text-align: left !important;
    order: 0 !important;
  }

  .recipe-image-container {
    order: 2 !important;
    justify-self: center !important;
    width: auto !important;
    max-width: 200px !important;
  }

  /* Page breaks */
  .page-break-before { page-break-before: always !important; }
  .page-break-after { page-break-after: always !important; }

  /* === CONSOLIDATED PRINT STYLES === */
  /* From base.css - accent color optimization */
  :root {
    --accent-color: oklch(48% 0.15 254) !important;
  }

  /* From utilities.css - print utilities */
  .u-print-hidden { display: none !important; }
  .u-print-hidden.u-show-for-print { display: block !important; }

  /* From navigation.css - hide bottom navigation */
  .bottom-nav {
    display: none !important;
  }

  /* From public-library.css - hide public library */
  .public-library-container,
  #public-library-page {
    display: none !important;
  }

  /* From recipe.css - page layout resets */
  #recipe-page,
  #data-preview-page,
  #my-recipes-page,
  #public-library-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* From recipe.css - recipe container print layout */
  .recipe-container {
    padding: var(--spacing-lg) !important;
    margin: 0 !important;
  }
}