/* iPhone / iPad touch layout and safe-area handling. */
html { min-height: 100%; background: var(--bg); -webkit-text-size-adjust: 100%; }
body { min-height: 100%; overscroll-behavior-y: none; }
input, select, textarea, button { touch-action: manipulation; }
.mobile-tabs { display: none; }
.table-wrap { -webkit-overflow-scrolling: touch; scrollbar-width: thin; }

@media (max-width: 1024px) {
  .sidebar { display: none; }
  main { margin-left: 0; }
  .menu-btn { display: none; }
  .topbar {
    height: calc(68px + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 22px 0;
  }
  .content { padding: 30px 22px calc(92px + env(safe-area-inset-bottom)); }
  .entry-ledger-grid { grid-template-columns: 1fr; }
  .entry-ledger-grid .quick-entry-panel, .entry-ledger-grid .home-ledger-panel { min-height: auto; }
  .quick-form-grid, .entry-ledger-grid .quick-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-wide-panel .home-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dashboard-grid, .analytics-grid, .settings-layout { grid-template-columns: 1fr; }
  .toolbar { flex-wrap: wrap; }
  .search-box { min-width: min(100%, 320px); }
  .mobile-tabs {
    position: fixed;
    z-index: 1000;
    right: 14px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 14px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    min-height: 64px;
    padding: 6px 7px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 20px;
    background: rgba(93,16,24,.94);
    box-shadow: 0 14px 40px rgba(74,8,17,.28);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    pointer-events: none;
  }
  .mobile-tab {
    min-width: 0;
    min-height: 50px;
    display: grid;
    place-content: center;
    gap: 2px;
    border: 0;
    border-radius: 14px;
    color: #e9bdc0;
    background: transparent;
    pointer-events: auto;
  }
  .mobile-tab span { font-size: 19px; line-height: 1; }
  .mobile-tab b { font-size: 11px; font-weight: 650; }
  .mobile-tab.active { color: #fff; background: rgba(255,255,255,.14); }
  .toast { right: 18px; bottom: calc(90px + env(safe-area-inset-bottom)); left: 18px; text-align: center; }
}

@media (max-width: 600px) {
  body { background: #f8e9e8; }
  .sidebar { display: none; }
  .menu-btn { display: none; }
  .topbar {
    height: calc(58px + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 15px 0;
  }
  .header-copy .eyebrow { display: none; }
  .header-copy strong { font-size: 18px; }
  .header-actions { margin-left: auto; }
  .capture-btn { min-height: 40px; max-width: 132px; padding: 8px 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .content { padding: 20px 12px calc(98px + env(safe-area-inset-bottom)); }
  .welcome-row, .page-intro { margin-bottom: 18px; }
  .welcome-row h1, .page-intro h1 { margin-top: 2px; font-size: 27px; line-height: 1.16; letter-spacing: -.7px; }
  .welcome-row p, .page-intro p { font-size: 13px; line-height: 1.55; }
  .quick-entry-panel { margin: 0; padding: 17px 14px; border-radius: 16px; }
  .quick-entry-head { margin-bottom: 16px; }
  .quick-entry-head h2 { font-size: 23px; }
  .quick-entry-head p { font-size: 13px; line-height: 1.45; }
  .quick-form-grid, .entry-ledger-grid .quick-form-grid { grid-template-columns: 1fr; gap: 11px; }
  .quick-form-grid label { font-size: 13px; }
  .quick-form-grid input, .quick-form-grid select,
  .setting-grid input, .data-panel input, .date-detail-toolbar input {
    min-height: 48px;
    font-size: 16px; /* Prevents iOS Safari from zooming the page on focus. */
  }
  .quick-actions { grid-template-columns: 1fr; }
  .save-trade-btn { grid-column: auto; }
  .quick-actions button, .primary, .outline, .danger { min-height: 46px; }
  .preview-box { grid-template-columns: 1fr 1fr 1fr; padding: 12px 8px; }
  .preview-item strong { font-size: 15px; }
  .entry-ledger-grid { gap: 14px; }
  .entry-ledger-grid .home-ledger-panel, .home-overview-panel, .chart-panel, .position-panel,
  .ledger-panel, .analytics-panel, .settings-panel, .data-panel { padding: 16px 14px; border-radius: 15px; }
  .overview-wide-panel .home-metric-grid, .home-metric-grid, .metric-grid, .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .home-metric-grid .metric-card, .metric-card { min-height: 108px; padding: 14px 12px; }
  .home-metric-grid .metric-card strong, .metric-card strong { font-size: 21px; overflow-wrap: anywhere; }
  .metric-card > span { font-size: 12px; }
  .metric-icon { top: 10px; right: 10px; opacity: .45; }
  .home-ledger-list { max-height: none; }
  .home-ledger-columns, .home-ledger-item { min-width: 600px; }
  .pending-buy-info { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pending-sell-row { grid-template-columns: 1fr; }
  .pending-sell-row input { min-height: 48px; font-size: 16px; }
  .toolbar > * { flex: 1 1 auto; }
  .search-box { flex-basis: 100%; min-height: 46px; }
  .search-box input, .date-filter { min-height: 44px; font-size: 16px; }
  .table-wrap { margin-right: -14px; padding-right: 14px; }
  table { min-width: 860px; }
  th { font-size: 11px; }
  td { font-size: 13px; }
  .date-detail-toolbar { padding: 13px; }
  .date-detail-toolbar label { flex-basis: 100%; }
  .date-range-actions { display: grid; grid-template-columns: repeat(3, 1fr); }
  .date-range-actions button { padding-inline: 7px; }
  .setting-grid { grid-template-columns: 1fr; }
  .data-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .data-actions button { width: 100%; }
  .policy-note { font-size: 12px; }
  .profit-chart { height: 175px; }
  .mobile-tabs { right: 8px; bottom: max(7px, env(safe-area-inset-bottom)); left: 8px; border-radius: 18px; }
}

@media (display-mode: standalone) {
  .capture-btn { display: none; }
}

@media (orientation: landscape) and (max-height: 520px) {
  .mobile-tabs { right: max(8px, env(safe-area-inset-right)); bottom: 6px; left: max(8px, env(safe-area-inset-left)); min-height: 54px; }
  .mobile-tab { min-height: 42px; }
  .content { padding-bottom: 76px; }
}
