.reserve-main { padding-block: clamp(34px, 6vw, 74px) 52px; }
.reserve-intro { margin-bottom: 28px; }
.reserve-intro h1 { font-size: clamp(32px, 5.5vw, 66px); margin: 12px 0 16px; letter-spacing: -.035em; }
.reserve-intro .lead { max-width: 66ch; }
.reserve-panel, .reserve-metrics > div { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #10242b; }
.reserve-panel { padding: clamp(14px, 2.4vw, 26px); }
.reserve-panel h2, .reserve-results h2 { font-size: clamp(20px, 3vw, 29px); letter-spacing: -.02em; }
.reserve-section-head { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.reserve-section-head p { margin-top: 6px; }
.reserve-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; }
.reserve-actions .button, .reserve-pagination .button { min-height: 39px; padding: 8px 12px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.reserve-upload { position: relative; overflow: hidden; }
.reserve-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.reserve-upload:focus-within, .reserve-page button:focus-visible, .reserve-page :is(input, select):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.reserve-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-top: 20px; }
.reserve-filters label, .reserve-search { display: grid; gap: 5px; align-content: start; font-size: 13px; color: var(--dim); }
.reserve-filters label small { display: inline; }
.reserve-filters :is(input:not([type=checkbox]), select), .reserve-search input { width: 100%; min-width: 0; min-height: 40px; border: 1px solid #3a535b; border-radius: 7px; padding: 8px 9px; font: inherit; color: var(--ink); background: #0c1c23; }
.reserve-filters label:has(#udi) { display: block; }
#udi { display: block; margin-top: 5px; }
.reserve-filters .reserve-toggle { grid-column: span 2; display: flex; align-items: center; gap: 8px; }
.reserve-toggle input { accent-color: var(--accent); width: 17px; height: 17px; }
.reserve-page [hidden] { display: none !important; }
.reserve-import-note, .reserve-message { margin-top: 12px; color: var(--dim); font-size: 13px; }
.reserve-main a:not(.button) { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.reserve-message, .reserve-warning { color: var(--amber); border: 1px solid #755c3e; background: #352c22; border-radius: 8px; padding: 9px 12px; }
.reserve-results { display: grid; gap: 15px; margin-top: 28px; }
#report-meta, #detail-context, #file-status { font-size: 13px; }
.reserve-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 0; }
.reserve-metrics > div { padding: clamp(10px, 1.7vw, 19px); }
.reserve-metrics dt { color: var(--dim); font-size: 12px; }
.reserve-metrics dd { margin: 6px 0 0; font-size: clamp(15px, 2.1vw, 24px); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.reserve-metrics small { display: block; margin-top: 6px; color: var(--dim); }
.reserve-metrics .required { border-color: #4e8278; background: #133531; }
.reserve-metrics .shortfall dd { color: var(--amber); }
.reserve-reports { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.reserve-report { overflow: hidden; padding: 0; }
.reserve-report h3 { padding: 14px 15px; background: #173831; color: #c5f7e8; font-size: 15px; }
.reserve-table-wrap { overflow: auto; }
.reserve-table-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.reserve-table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.reserve-table :is(td, th) { text-align: right; padding: 8px 9px; border-bottom: 1px solid #294149; white-space: nowrap; }
.reserve-table :is(td, th):first-child, .reserve-detail-table :is(td, th):nth-child(-n+4) { text-align: left; }
.reserve-table thead { color: var(--dim); background: #0d1f26; }
.reserve-table tbody tr:nth-child(even) { background: #132930; }
.reserve-table tfoot { background: #17312f; font-weight: 700; }
.reserve-table button { color: var(--accent); cursor: pointer; background: transparent; border: 0; padding: 3px 0; font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.reserve-table details { text-align: left; white-space: normal; min-width: 240px; }
.reserve-table summary { color: var(--accent); cursor: pointer; }
.reserve-table details p { padding-top: 4px; }
.reserve-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--dim); padding-top: 10px; font-size: 13px; }
.reserve-pagination button:disabled { cursor: default; opacity: .5; }
.reserve-warning { font-size: 13px; }
.reserve-warning summary { cursor: pointer; font-weight: 700; }
.reserve-warning ul { padding-left: 22px; max-height: 15em; overflow: auto; }
.reserve-method { margin-top: 23px; color: var(--dim); font-size: 14px; }
.reserve-method summary { color: var(--ink); font-size: 16px; font-weight: 700; cursor: pointer; }
.reserve-method-body { margin-top: 12px; }
.reserve-method-body li { margin-block: 5px; line-height: 1.55; }
.reserve-field-guide { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; }
.reserve-field-guide dt { font-weight: 700; }
.reserve-field-guide dd { margin: 0; overflow-wrap: anywhere; }
.reserve-sources { display: flex; gap: 8px 24px; flex-wrap: wrap; padding-left: 18px; }
@media (min-width: 1051px) {
  .reserve-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
  .reserve-reports { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .reserve-filters, .reserve-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reserve-intro h1 br { display: none; }
  .reserve-field-guide { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  .reserve-page { color-scheme: light; background: white; color: black; }
  .reserve-page .wrap { width: 100%; }
  .reserve-page :is(.top, .footer, .reserve-main > .reserve-panel, .reserve-results .reserve-actions, .reserve-results > .reserve-panel) { display: none; }
  .reserve-page :is(.reserve-panel, .reserve-metrics > div, .reserve-table, .reserve-table button, .reserve-report h3, .eyebrow, .lead, em, .muted, .reserve-metrics dt, .reserve-metrics small, .reserve-metrics .shortfall dd) { color: black; background: white; }
  .reserve-main { padding: 0; }
  .reserve-reports { grid-template-columns: 1fr; }
  .reserve-report { break-inside: avoid; }
  .reserve-table-wrap { overflow: visible; }
}

.reserve-downloads { position: relative; }
.reserve-downloads > summary { list-style: none; }
.reserve-download-menu { position: absolute; z-index: 3; min-width: max-content; right: 0; top: calc(100% + 4px);
  display: grid; gap: 3px; padding: 6px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; }
.reserve-download-menu button { cursor: pointer; padding: 8px 11px; text-align: left; border: 0;
  border-radius: 4px; background: transparent; color: var(--ink); font: inherit; font-size: 13px; }
.reserve-download-menu button:hover { background: #1a363a; }

.reserve-audit-table { min-width: 680px; }
.reserve-audit-table th, .reserve-audit-table td { text-align: left; white-space: normal; vertical-align: top; }
.reserve-audit-table th:first-child { width: 21%; }
.reserve-audit-table td { line-height: 1.55; }
.reserve-asset-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-top: 16px; }
.reserve-asset-toolbar label { display: grid; gap: 5px; font-size: 13px; color: var(--dim); }
.reserve-asset-toolbar select { color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
.reserve-asset-toolbar .button { min-height: 35px; padding: 7px 11px; }
.reserve-asset-toolbar button:disabled { opacity: .55; }
#asset-results { margin-top: 12px; }
