/* Shared mobile layout for the operations shell. */
.vendor-portal-entry {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(240px, .7fr);
  gap: 28px;
  align-items: stretch;
  max-width: 1080px;
  padding: 42px;
  border: 1px solid #d9e7dc;
  border-radius: 16px;
  background: linear-gradient(135deg, #eef8ef, #fff);
  box-shadow: 0 16px 36px rgba(18, 79, 68, .08);
}

.vendor-portal-entry h2 {
  margin: 10px 0 8px;
  color: #1e6035;
  font: 600 clamp(30px, 4vw, 48px)/1.1 'Space Grotesk';
}

.vendor-portal-entry p {
  max-width: 620px;
  margin: 0;
  color: #52665a;
  font-size: 17px;
}

.vendor-portal-entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.vendor-portal-entry-details {
  display: grid;
  gap: 12px;
  align-content: center;
}

.vendor-portal-entry-details div {
  display: grid;
  gap: 4px;
  padding: 16px;
  border-left: 4px solid #66cc33;
  background: #fff;
}

.vendor-portal-entry-details span {
  color: #64766c;
  font-size: 13px;
}

.excel-import-panel {
  max-width: 860px;
}

.excel-import-panel input[type="file"] {
  width: 100%;
  min-height: 46px;
  padding: 10px;
  border: 1px solid #bfd8c3;
  border-radius: 8px;
  background: #fff;
}

.excel-import-panel .form-actions form {
  margin: 0;
}

@media (max-width: 700px) {
  html,
  body {
    min-width: 0;
    overflow-x: hidden;
  }

  .main-content {
    width: 100%;
    min-width: 0;
    margin-left: 0;
    padding: 22px 14px 48px;
  }

  .sidebar {
    width: min(86vw, 300px);
    padding: 24px 18px;
  }

  .topbar {
    align-items: stretch;
    gap: 14px;
    margin-bottom: 24px;
  }

  .topbar h1 {
    margin-top: 6px;
    font-size: 29px;
    overflow-wrap: anywhere;
  }

  .top-actions {
    justify-content: space-between;
    gap: 10px;
  }

  .hero,
  .usage-hero,
  .stock-hero,
  .supply-hero,
  .pob-hero,
  .vendor-review-hero {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 20px;
  }

  .hero h2,
  .usage-hero h2,
  .stock-hero h2,
  .supply-hero h2,
  .pob-hero h2,
  .vendor-review-hero h2 {
    max-width: none;
    font-size: 27px;
  }

  .hero-mark,
  .usage-hero-mark,
  .stock-hero-mark,
  .supply-hero-mark,
  .pob-hero-mark,
  .vendor-review-hero-mark {
    justify-self: start;
    width: 56px;
    height: 56px;
  }

  .panel {
    padding: 18px;
  }

  .panel-header {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .panel-header > * {
    max-width: 100%;
  }

  .form-grid,
  .usage-details-grid,
  .table-tools,
  .filter-bar,
  .form-actions {
    grid-template-columns: 1fr !important;
  }

  .form-field.full {
    grid-column: auto;
  }

  .form-actions,
  .form-actions .btn,
  .panel-header .btn {
    width: 100%;
  }

  .usage-lines-heading,
  .line-items-heading,
  .table-header,
  .table-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .usage-lines-heading .btn,
  .line-items-heading .btn,
  .table-header .btn,
  .table-controls .btn {
    width: 100%;
  }

  .table-panel,
  .table-wrap,
  .usage-table-wrap,
  .results,
  .responsive-table {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table {
    min-width: 680px;
  }

  .table-tools input,
  .table-tools select,
  .filter-bar input,
  .filter-bar select {
    width: 100%;
  }

  .vendor-review-header,
  .vendor-company,
  .vendor-actions,
  .vendor-actions form,
  .vendor-order-meta,
  .vendor-order-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .vendor-company {
    gap: 8px;
  }

  .vendor-actions .btn,
  .vendor-actions form,
  .vendor-actions form .btn,
  .vendor-order-actions .btn {
    width: 100%;
  }

  .vendor-review-hero .vendor-queue-stats {
    display: grid;
    grid-template-columns: 1fr;
  }

  .vendor-prices-wrap,
  .vendor-orders-panel .table-scroll,
  .purchase-order-table-wrap,
  .po-items-table-wrap,
  .collection-order-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .vendor-prices,
  .purchase-order-table,
  .po-items-table,
  .collection-lines,
  .po-lines {
    min-width: 680px;
  }

  .vendor-review-card .panel-header,
  .vendor-review-card .panel-header > div,
  .vendor-review-card .vendor-actions {
    width: 100%;
  }

  .vendor-dashboard .hero,
  .vendor-portal-page .hero {
    margin-bottom: 18px;
  }

  .vendor-portal-entry {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 24px 18px;
  }

  .vendor-portal-entry p {
    font-size: 15px;
  }

  .vendor-portal-entry-actions {
    flex-direction: column;
  }

  .vendor-portal-entry-actions .btn {
    width: 100%;
  }

  .modal,
  .usage-day-modal {
    padding: 12px;
  }

  .modal-dialog,
  .usage-day-modal-dialog {
    max-height: 90vh;
    border-radius: 10px;
  }

  .usage-day-modal-header,
  .usage-day-modal-body {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 420px) {
  .main-content {
    padding-left: 10px;
    padding-right: 10px;
  }

  .topbar h1 {
    font-size: 26px;
  }

  .hero,
  .usage-hero,
  .stock-hero,
  .supply-hero,
  .pob-hero,
  .vendor-review-hero {
    padding: 20px 16px;
  }

  .panel {
    padding: 15px;
  }

  .date-pill {
    padding: 8px 10px;
  }
}
