/*
  Book Sell — responsive layer. Mobile-first refinements on top of styles.css.
  Chief job: collapse the header Menu into the #nav-toggle drawer below the
  tablet breakpoint, and reflow the multi-column grids/tables to a single
  column so every screen stays usable at ~360px.
*/

/* ---- Large tablet / small desktop ---- */
@media (max-width: 1040px) {
  .view-root { padding-left: var(--space-4); padding-right: var(--space-4); }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- Tablet: collapse the Menu into a drawer ---- */
@media (max-width: 860px) {
  .nav-toggle { display: inline-flex; }

  .site-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: var(--space-2);
    background: var(--color-paper-raised);
    border-bottom: 1px solid var(--color-line);
    box-shadow: var(--shadow-hover);
    /* collapsed by default; JS toggles .site-nav--open */
    display: none;
  }
  .site-nav--open { display: flex; animation: rise var(--duration-fast) var(--ease-standard) both; }
  .site-nav a { padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); }
  .site-nav a.is-active::after { display: none; }
  .site-nav a.is-active { background: var(--color-cloth-tint); }

  .site-header__inner { position: relative; }

  .grid-2 { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }

  .site-footer__inner { grid-template-columns: 1fr; gap: var(--space-5); }
}

/* ---- Phone ---- */
@media (max-width: 620px) {
  .view-root { padding: var(--space-5) var(--space-3) var(--space-7); }

  .page__head { flex-direction: column; align-items: flex-start; }
  .page__actions { width: 100%; }
  .page__actions .btn { flex: 1 1 auto; }
  .page__title { font-size: var(--text-xl); }

  .grid-3, .grid-auto { grid-template-columns: 1fr; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Let wide tables scroll horizontally rather than crush columns */
  .table-wrap { overflow-x: auto; }
  .table { min-width: 520px; }

  .toolbar { flex-direction: column; align-items: stretch; }
  .toolbar__spacer { margin-left: 0; }
  .search { max-width: none; }

  .modal { max-width: none; }
  .modal-backdrop { padding: var(--space-4) var(--space-3); align-items: flex-end; }
  .modal__footer .btn, .form-actions .btn { flex: 1 1 auto; }

  .line-item { grid-template-columns: 1fr 1fr; }

  .def-list { grid-template-columns: 1fr; gap: var(--space-1) 0; }
  .def-list dt { margin-top: var(--space-3); }
}

/* ---- Very small phone ---- */
@media (max-width: 380px) {
  .stat-grid { grid-template-columns: 1fr; }
  .brand__tag { display: none; }
}
