/* Optimisations Safari macOS et iPadOS. Les règles restent progressives. */
html {
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,.app,.login-shell { min-height: 100vh; min-height: 100dvh; }

button,
a,
input,
select,
textarea,
label[for],
[role="button"] {
  -webkit-tap-highlight-color: rgba(15,91,65,.14);
}

button,
a,
select,
input[type="checkbox"],
input[type="radio"],
input[type="file"]::file-selector-button,
[role="button"] { touch-action: manipulation; }

.table-scroll,
.account-list,
.account-results,
.sidebar .nav-tree,
dialog {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.apple-webkit .orb { filter: none; }
.apple-webkit dialog::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; }
.apple-webkit dialog { max-height: calc(100vh - 32px); max-height: calc(var(--gwc-visual-height,100dvh) - 32px); }

@supports (content-visibility: auto) {
  .od-journal,
  .filing-layout > .card:nth-child(n+2),
  .company-grid > .company-card,
  #view > .grid > .report-card {
    content-visibility: auto;
    contain-intrinsic-size: auto 480px;
  }
}

@supports (padding: max(0px)) {
  .mobile-device-warning {
    padding-top: max(24px,env(safe-area-inset-top));
    padding-right: max(24px,env(safe-area-inset-right));
    padding-bottom: max(24px,env(safe-area-inset-bottom));
    padding-left: max(24px,env(safe-area-inset-left));
  }

  #toast {
    top: max(20px,env(safe-area-inset-top));
    right: max(25px,env(safe-area-inset-right));
  }

  @media (min-width: 600px) and (max-width: 950px) {
    .workspace {
      padding-right: max(20px,env(safe-area-inset-right));
      padding-bottom: max(46px,env(safe-area-inset-bottom));
      padding-left: max(20px,env(safe-area-inset-left));
    }

    .sidebar {
      padding-top: max(18px,env(safe-area-inset-top));
      padding-right: max(16px,env(safe-area-inset-right));
      padding-bottom: max(18px,env(safe-area-inset-bottom));
      padding-left: max(16px,env(safe-area-inset-left));
    }
  }
}

@media (min-width: 600px) and (max-width: 950px) and (pointer: coarse) {
  button,
  .primary,
  .ghost,
  .danger,
  .sidebar #nav a[data-view],
  .sidebar .nav-parent,
  .sidebar .nav-section { min-height: 44px; }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  .entry-line-row input,
  .entry-line-row .account-search { font-size: 16px; }

  .entry-line-row input,
  .entry-line-row select,
  .entry-line-row .account-search,
  .entry-line-row .entry-remove { min-height: 44px; }

  .account-results button { min-height: 44px; }
}

@media (max-width: 950px) {
  .apple-webkit .sidebar {
    transform: translate3d(-105%,0,0);
    will-change: transform;
  }

  .apple-webkit .app.nav-open .sidebar { transform: translate3d(0,0,0); }
}

@media (hover: none) {
  .primary:hover { background: var(--green); }
  .ghost:hover { background: #fff; }
}

@media (prefers-reduced-motion: reduce), (update: slow) {
  *,*::before,*::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
