/* Mobile-first enhancements — preserves Cookey warm glass design language */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom)
    env(safe-area-inset-left);
}

/* Accessible hidden file inputs — works reliably on iOS Safari */
.file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.upload-zone,
.upload-choice {
  position: relative;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

@media (max-width: 720px) {
  main.min-h-screen > .mx-auto {
    padding-left: 12px;
    padding-right: 12px;
    padding-top: 12px;
  }

  .modal-backdrop {
    align-items: flex-end;
    padding: 0;
  }

  .modal-card,
  .invoice-modal {
    width: 100%;
    max-height: 92vh;
    overflow-y: auto;
    border-radius: 20px 20px 0 0;
    padding: 20px 18px calc(20px + env(safe-area-inset-bottom));
  }

  .invoice-options {
    grid-template-columns: 1fr;
  }

  .upload-choice {
    min-height: 96px;
    padding: 12px;
  }

  .upload-zone {
    min-height: 180px;
    padding: 16px;
  }

  .decision-panel {
    height: auto;
    min-height: 220px;
  }

  .gpt-ai-panel .ai-chat-messages {
    max-height: 180px;
  }

  .font-serif.text-4xl,
  h1.font-serif.text-4xl,
  h2.font-serif.text-3xl {
    font-size: 1.75rem;
    line-height: 1.15;
  }

  h1.font-serif.text-6xl,
  .font-serif.text-5xl,
  .font-serif.text-6xl,
  .font-serif.text-7xl {
    font-size: 2.25rem;
    line-height: 1.1;
  }

  .kpi-card .font-serif.text-5xl,
  .kpi-card .font-serif.text-6xl {
    font-size: 2.5rem;
  }

  .sidebar-glass h2.font-serif.text-5xl {
    font-size: 2.5rem;
  }

  .login-shell {
    padding-top: env(safe-area-inset-top);
  }

  .login-glass {
    padding: 20px;
  }

  .primary-btn,
  .secondary-btn,
  .danger-btn,
  .icon-btn,
  .nav-btn,
  .date-pill {
    min-height: 44px;
    touch-action: manipulation;
  }

  .date-pill {
    flex-shrink: 0;
  }

  .mb-5.flex.flex-col.gap-3.xl\:flex-row {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }

  .grid.grid-cols-\[1fr_80px_78px_42px\] {
    grid-template-columns: 1fr 72px 72px 44px;
    gap: 6px;
  }

  .invoice-result {
    font-size: 0.9rem;
  }

  .data-row .font-serif.text-4xl {
    font-size: 1.75rem;
  }
}

@media (max-width: 520px) {
  .xl\:grid-cols-\[420px_1fr\],
  .xl\:grid-cols-\[360px_1fr\] {
    grid-template-columns: 1fr;
  }

  .custom-retention {
    grid-template-columns: 1fr;
  }
}
