/* Bloco 3: mobile-only composition. The approved desktop rules remain in app.css. */
@media (max-width: 1023px), (hover: none), (pointer: coarse) {
  .mobile-legacy-header { position: sticky; top: 0; z-index: 91; }
  .mobile-premium-bar { height: 56px; min-height: 56px; gap: 12px; padding-inline: clamp(12px, 3vw, 24px); }
  .mobile-premium-bar .brand { flex: 1; overflow: hidden; }
  .mobile-premium-bar .brand-mark { flex: 0 0 30px; }
  .mobile-premium-bar .brand strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
  .mobile-premium-bar .brand small { display: none; }
  .mobile-menu-trigger, .mobile-menu-close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #7f9b95; border-radius: 8px; color: #fff; background: transparent; }
  .mobile-menu-trigger { gap: 7px; padding: 0 10px; font-size: 13px; font-weight: 700; }
  .mobile-menu-trigger span:first-child { font-size: 19px; line-height: 1; }
  .mobile-menu-trigger[aria-expanded="true"], .mobile-menu-trigger:active { background: #315d51; }
  .mobile-main-menu { position: absolute; top: 56px; right: 8px; width: min(360px, calc(100vw - 16px)); max-height: calc(100dvh - 64px); overflow-y: auto; padding: 12px; border: 1px solid var(--line); border-radius: 0 0 12px 12px; background: var(--surface-raised); box-shadow: 0 18px 40px #10292033; }
  .mobile-menu-heading { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 8px; color: var(--ink); font-size: 14px; }
  .mobile-menu-close { color: var(--ink); border-color: var(--line); font-size: 26px; font-weight: 400; }
  .mobile-menu-group { padding: 8px 0; border-top: 1px solid var(--line); }
  .mobile-menu-group > span { display: block; padding: 4px 10px 6px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .mobile-menu-link { width: 100%; min-height: 48px; display: flex; align-items: center; padding: 9px 12px; border: 0; border-radius: 7px; color: var(--ink); background: transparent; text-align: left; text-decoration: none; font-size: 14px; font-weight: 650; }
  .mobile-menu-link:hover, .mobile-menu-link:focus-visible, .mobile-menu-link:active { background: var(--surface-subtle); }
  .mobile-menu-link.is-active { color: var(--accent-dark); background: var(--accent-soft); }
  .mobile-menu-link:disabled { color: var(--muted); opacity: .55; cursor: not-allowed; }
  .module-nav { display: none !important; }
}

@media (max-width: 800px) {
  .page-r2-comparison .scenario-basis, .page-r2-comparison .flow-compare, .page-r2-comparison .decision-strip { min-width: 0; }
  .page-r2-comparison .comparison-products { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .page-r2-comparison .product-card { min-width: 0; }
  .page-r2-comparison .scenario-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .page-r2-comparison .scenario-facts > div { border-left: 0; border-top: 1px solid var(--line); }
  .page-r2-comparison .scenario-facts > div:nth-child(-n+2) { border-top: 0; }
  .page-r2-comparison .scenario-facts > div:nth-child(even) { border-left: 1px solid var(--line); }
  .page-r2-comparison .scenario-facts dt { min-height: 0; }
  .page-r2-comparison .decision-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-r2-comparison .decision-access { grid-column: 1 / -1; }
  .page-r2-comparison .decision-strip > * { min-width: 0; }
  .r2-selected-values { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .r2-selected-values strong { overflow-wrap: normal; font-size: clamp(19px, 4vw, 26px); }
  .r2-graph-controls { flex-wrap: wrap; }
  .r2-graph-controls > div { max-width: 100%; }
  .r2-chart-svg { max-width: 100%; }
}

@media (max-width: 560px) {
  .crumbbar { min-height: 44px; height: auto; padding-inline: 12px; }
  .crumbbar .view-tag { display: none; }
  .crumbs { min-width: 0; font-size: 12px; }
  .crumbs strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .page-r2-simulation, .page-r2-comparison { width: calc(100% - 24px); }
  .page-r2-comparison .scenario-basis, .page-r2-comparison .flow-compare, .page-r2-comparison .decision-strip { margin-inline: 12px; }
  .page-r2-comparison .comparison-products { padding-inline: 12px; }
  .page-r2-comparison .scenario-facts { grid-template-columns: minmax(0, 1fr); }
  .page-r2-comparison .scenario-facts > div, .page-r2-comparison .scenario-facts > div:nth-child(even) { border-left: 0; border-top: 1px solid var(--line); padding: 11px 14px; }
  .page-r2-comparison .scenario-facts > div:first-child { border-top: 0; }
  .page-r2-comparison .scenario-facts dd { font-size: clamp(15px, 4.5vw, 18px); }
  .page-r2-comparison .own-bid-context { grid-template-columns: minmax(0, 1fr); }
  .page-r2-comparison .own-bid-context > div { border-left: 0; border-top: 1px solid #d4dfda; }
  .page-r2-comparison .own-bid-context > div:first-child { border-top: 0; }
  .page-r2-comparison .product-card { padding: 16px; }
  .page-r2-comparison .product-card h2 { font-size: clamp(21px, 6vw, 29px); }
  .page-r2-comparison .product-card dl div { flex-wrap: wrap; gap: 4px 12px; }
  .page-r2-comparison .product-card dd { max-width: 100%; }
  .page-r2-comparison .flow-row { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .page-r2-comparison .flow-row > span, .page-r2-comparison .flow-row strong, .page-r2-comparison .flow-row .flow-track { grid-column: 1; grid-row: auto; text-align: left; }
  .page-r2-comparison .flow-row strong { font-size: 17px; }
  .page-r2-comparison .flow-row .flow-track { margin-top: 3px; }
  .page-r2-comparison .decision-strip { grid-template-columns: minmax(0, 1fr); }
  .page-r2-comparison .decision-strip > * { padding: 14px 16px; border-top: 1px solid var(--line); }
  .page-r2-comparison .decision-strip > :first-child { border-top: 0; }
  .page-r2-comparison .decision-access { grid-column: auto; }
  .r2-explorer { min-width: 0; }
  .r2-selected-values strong { font-size: clamp(18px, 5vw, 23px); }
  .r2-moment-details dl div { display: grid; gap: 3px; }
  .r2-moment-details dd { text-align: left; font-size: 13px; }
  .r2-graph-controls { display: grid; grid-template-columns: minmax(0, 1fr); }
  .r2-graph-controls > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r2-graph-controls button { min-height: 44px; font-size: 12px; }
  .page-r2-simulation .client-credit-card:first-child { display: grid; gap: 4px; }
  .page-r2-simulation .client-credit-card:first-child > strong { font-size: 20px; }
  .page-r2-simulation .client-credit-card-released > strong { font-size: clamp(22px, 6.5vw, 29px); }
  .page-r2-simulation .field input, .page-r2-simulation .field select,
  .page-r2-comparison .field input, .page-r2-comparison .field select { min-width: 0; font-size: 16px; }
  .page-r2-comparison .comparison-input { padding: 16px; }
  .page-r2-comparison .compact-fields { grid-template-columns: minmax(0, 1fr); }
  .page-r2-comparison .compact-fields .field { grid-column: 1; }
  .page-r2-comparison .r2-comparison-tabs button { min-height: 44px; }
  .page-r2-comparison .result-actions { grid-template-columns: minmax(0, 1fr); }
  .page-r2-comparison .result-actions .btn { min-height: 44px; }
}

@media (max-width: 360px) {
  .mobile-premium-bar .brand strong { font-size: 13px; }
  .mobile-menu-trigger { padding-inline: 8px; }
  .page-r2-comparison .scenario-basis, .page-r2-comparison .flow-compare, .page-r2-comparison .decision-strip { margin-inline: 10px; }
  .page-r2-comparison .comparison-products { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-main-menu, .mobile-menu-link, .mobile-menu-trigger { transition: none; animation: none; }
}

@media print {
  .mobile-main-menu, .mobile-menu-trigger { display: none !important; }
}
