/* ArrServe v0.4.60 request shell, permissions, provider search, Sonarr episode approval, and controlled provider handoff. Kept separate for future request-module porting. */
.nav-with-icon {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}
.nav-icon {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  color: inherit;
}
.request-shell-icon {
  width: 22px;
  height: 22px;
  display: block;
}
.request-nav .request-shell-icon {
  width: 23px;
  height: 23px;
}
.request-shell-page {
  display: grid;
  gap: 16px;
}
.request-shell-head {
  align-items: center;
}
.request-shell-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,164,220,.34);
  background: rgba(0,164,220,.13);
  color: #dbeafe;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.request-shell-hero {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(0,164,220,.16), rgba(255,255,255,.045));
}
.request-shell-hero h3,
.request-shell-card h3 {
  margin: 0 0 5px;
}
.request-shell-hero p,
.request-shell-card p {
  margin: 0;
}
.request-shell-hero-icon,
.request-shell-card-icon {
  display: grid;
  place-items: center;
  color: white;
  background: rgba(255,255,255,.08);
  border: 1px solid var(--border);
}
.request-shell-hero-icon {
  width: 62px;
  height: 62px;
  border-radius: 18px;
}
.request-shell-hero-icon .request-shell-icon {
  width: 34px;
  height: 34px;
}
.request-shell-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}
.request-shell-card {
  min-height: 150px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 12px;
  align-content: start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(17,24,39,.68);
}
.request-shell-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 22px;
}
.request-shell-card small {
  display: inline-flex;
  margin-top: 10px;
  color: var(--muted);
}
.request-shell-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.request-shell-stats div {
  display: grid;
  gap: 3px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.request-shell-stats strong {
  font-size: 30px;
  line-height: 1;
}
.request-shell-stats span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
@media (max-width: 760px) {
  .request-shell-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .request-shell-hero {
    grid-template-columns: 1fr;
  }
  .request-shell-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* v0.4.51 per-user request permissions and limits */
.request-rule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}
.request-rule-card {
  display: grid;
  gap: 5px;
  padding: 13px;
  min-height: 82px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.request-rule-card strong {
  color: white;
  font-size: 18px;
  line-height: 1.15;
}
.request-rule-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.request-rule-card.is-on {
  border-color: rgba(34,197,94,.34);
  background: rgba(34,197,94,.1);
}
.request-rule-card.is-off {
  border-color: rgba(239,68,68,.34);
  background: rgba(239,68,68,.1);
}
.user-request-summary {
  margin: 9px 0 0;
  padding: 7px 8px;
  min-height: 34px;
  border-radius: 10px;
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.25;
  background: rgba(255,255,255,.035);
}
.user-request-summary.enabled {
  color: #dbeafe;
  border-color: rgba(0,164,220,.22);
  background: rgba(0,164,220,.08);
}
.user-request-summary.disabled {
  color: #fecaca;
  border-color: rgba(239,68,68,.2);
  background: rgba(239,68,68,.07);
}
.request-access-form {
  display: grid;
  gap: 14px;
}
.request-access-panel {
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}
.request-access-panel h3 {
  margin: 0;
}
.request-check-row small {
  text-align: right;
}
.request-number-field {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(0,0,0,.16);
}
.request-number-field span {
  font-weight: 800;
}
.request-number-field small {
  line-height: 1.25;
}
.request-number-field input,
.request-number-field select {
  width: 100%;
}
.request-limit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}
.request-settings-readonly {
  display: grid;
  gap: 10px;
}
.compact-request-rules {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}
@media (max-width: 760px) {
  .request-check-row {
    grid-template-columns: auto 1fr;
  }
  .request-check-row small {
    grid-column: 2;
    text-align: left;
  }
}

/* v0.4.52/v0.4.53 pending request queue and status shell */
.request-two-column {
  display: grid;
  grid-template-columns: minmax(260px, .88fr) minmax(320px, 1.12fr);
  gap: 14px;
  align-items: start;
}
.request-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(17,24,39,.58);
}
.request-panel h3 {
  margin: 0;
}
.request-create-form {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 12px;
}
.request-create-form label {
  display: block;
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.request-create-form input,
.request-create-form select,
.request-create-form textarea {
  width: 100%;
}
.request-create-form textarea {
  min-height: 96px;
  resize: vertical;
}
.request-form-full {
  grid-column: 1 / -1;
}
.request-form-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.request-form-actions small,
.request-mini-stats {
  color: var(--muted);
}
.request-mini-stats {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.request-mini-stats span {
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(0,0,0,.18);
  font-size: 12px;
  font-weight: 800;
}
.request-queue-list {
  display: grid;
  gap: 10px;
}
.request-queue-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(0,0,0,.2);
}
.request-queue-main {
  display: grid;
  gap: 4px;
}
.request-queue-main strong {
  color: white;
  font-size: 15px;
}
.request-queue-main span,
.request-queue-main p,
.request-queue-meta small {
  color: var(--muted);
}
.request-queue-main p {
  margin: 4px 0 0;
}
.request-queue-meta {
  display: grid;
  justify-items: end;
  align-content: start;
  gap: 5px;
  min-width: 96px;
}
.request-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #dbeafe;
  border: 1px solid rgba(0,164,220,.3);
  background: rgba(0,164,220,.12);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.request-empty-state {
  padding: 18px;
  border: 1px dashed rgba(148,163,184,.3);
  border-radius: 16px;
  color: var(--muted);
  background: rgba(0,0,0,.12);
}
.compact-section-head {
  margin: 0;
}
@media (max-width: 920px) {
  .request-two-column {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .request-create-form,
  .request-queue-row {
    grid-template-columns: 1fr;
  }
  .request-queue-meta {
    justify-items: start;
  }
}


/* v0.4.53 status-only approve / deny shell */
.request-admin-note {
  padding: 7px 9px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 10px;
  background: rgba(255,255,255,.045);
}
.request-admin-note b {
  color: rgba(255,255,255,.88);
}
.request-admin-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 3px;
}
.request-admin-actions .mini-btn {
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 10px;
  border: 1px solid rgba(148,163,184,.28);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.request-admin-actions .mini-btn:hover {
  border-color: rgba(255,255,255,.42);
  background: rgba(255,255,255,.13);
}
.request-status-approved .request-status-pill {
  color: #dcfce7;
  border-color: rgba(34,197,94,.34);
  background: rgba(34,197,94,.14);
}
.request-status-denied .request-status-pill {
  color: #fee2e2;
  border-color: rgba(248,113,113,.34);
  background: rgba(248,113,113,.14);
}
.request-status-approved,
.request-status-denied {
  opacity: .92;
}

/* v0.4.54 read-only provider request search */
.request-search-form {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.request-search-form label,
.request-result-body small {
  display: block;
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.request-search-form input,
.request-search-form select {
  width: 100%;
}
.request-search-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.request-search-warnings {
  display: grid;
  gap: 6px;
}
.request-search-warnings span,
.request-empty-state.error {
  padding: 9px 10px;
  border: 1px solid rgba(251,191,36,.28);
  border-radius: 12px;
  color: #fde68a;
  background: rgba(251,191,36,.08);
  font-size: 12px;
}
.request-result-grid {
  display: grid;
  gap: 10px;
}
.request-result-card {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.request-result-card.is-disabled {
  opacity: .72;
}
.request-result-poster,
.request-queue-thumb {
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.24);
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.8);
  font-weight: 900;
}
.request-result-poster {
  width: 82px;
  min-height: 124px;
  border-radius: 13px;
}
.request-result-poster img,
.request-queue-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.request-result-body {
  display: grid;
  gap: 7px;
  min-width: 0;
}
.request-result-body strong {
  color: white;
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.request-result-body span,
.request-result-body p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.request-result-body p {
  margin: 0;
}
.request-result-body textarea {
  min-height: 58px;
  resize: vertical;
}
.request-result-body button {
  justify-self: start;
}
.request-queue-row {
  grid-template-columns: 54px minmax(0, 1fr) auto;
}
.request-queue-thumb {
  width: 54px;
  height: 76px;
  border-radius: 10px;
  font-size: 12px;
}
@media (max-width: 720px) {
  .request-search-form,
  .request-result-card,
  .request-queue-row {
    grid-template-columns: 1fr;
  }
  .request-result-poster,
  .request-queue-thumb {
    width: 76px;
  }
}

.request-provider-message {
  max-width: 220px;
  white-space: normal;
  line-height: 1.25;
  opacity: 0.85;
}

/* v0.4.58+ admin approval options UI */
.request-admin-actions {
  display: grid;
  justify-items: end;
  gap: 7px;
}
.request-admin-button-row {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.request-approval-option {
  display: grid;
  gap: 4px;
  justify-items: end;
  max-width: 240px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
}
.request-approval-option span {
  color: rgba(255,255,255,.82);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.request-approval-option select {
  width: 100%;
  min-height: 30px;
  border-radius: 10px;
  font-size: 12px;
}
.request-approval-option.status-only {
  padding: 6px 8px;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
}
@media (max-width: 640px) {
  .request-admin-actions,
  .request-approval-option {
    justify-items: start;
  }
}

/* v0.4.59+ Sonarr season/episode selection approval UI */
.request-season-picker {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  padding: 7px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 12px;
  background: rgba(0,0,0,.16);
}
.request-season-picker label {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 5px 6px;
  border-radius: 9px;
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.76);
  font-size: 11px;
}
.request-season-picker input {
  width: 13px;
  height: 13px;
  margin: 0;
  accent-color: #facc15;
}
.request-season-help {
  max-width: 220px;
  white-space: normal;
  color: rgba(255,255,255,.58);
}
@media (max-width: 640px) {
  .request-season-picker {
    grid-template-columns: 1fr;
  }
}


.request-episode-picker {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 7px;
  border: 1px solid rgba(250,204,21,.14);
  border-radius: 12px;
  background: rgba(250,204,21,.055);
}
.request-episode-picker label {
  display: grid;
  grid-template-columns: minmax(96px, .45fr) minmax(120px, 1fr);
  gap: 8px;
  align-items: center;
  padding: 5px 6px;
  border-radius: 9px;
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.76);
  font-size: 11px;
}
.request-episode-picker input {
  width: 100%;
  min-height: 30px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 9px;
  background: rgba(0,0,0,.24);
  color: rgba(255,255,255,.9);
  padding: 5px 7px;
  font-size: 11px;
}
@media (max-width: 640px) {
  .request-episode-picker label {
    grid-template-columns: 1fr;
  }
}
.tv-approval-option:not([data-tv-approval-mode="sonarr-selected-seasons"]):not([data-tv-approval-mode="sonarr-selected-seasons-search"]) .request-season-picker {
  display: none;
}
.tv-approval-option:not([data-tv-approval-mode="sonarr-selected-episodes"]):not([data-tv-approval-mode="sonarr-selected-episodes-search"]) .request-episode-picker {
  display: none;
}
.tv-approval-option:not([data-tv-approval-mode="sonarr-selected-episodes"]):not([data-tv-approval-mode="sonarr-selected-episodes-search"]) .request-episode-picker + small {
  display: none;
}

/* v0.4.62+ Lidarr album selection and search approval UI */
.request-album-picker {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  max-height: 190px;
  overflow: auto;
  padding: 7px;
  border: 1px solid rgba(250,204,21,.14);
  border-radius: 12px;
  background: rgba(250,204,21,.055);
}
.request-album-picker label {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 5px 6px;
  border-radius: 9px;
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.76);
  font-size: 11px;
}
.request-album-picker input {
  width: 13px;
  height: 13px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: #facc15;
}
.request-album-picker span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.music-approval-option:not([data-music-approval-mode="lidarr-selected-albums"]):not([data-music-approval-mode="lidarr-selected-albums-search"]) .request-album-picker {
  display: none;
}

/* v0.4.65 request notification seen state */
.request-title-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.request-source-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 3px 8px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: rgba(226,232,240,.82) !important;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}
.request-provider-status {
  display: grid;
  gap: 7px;
  margin-top: 8px;
  padding: 10px;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 13px;
  background: rgba(2,6,23,.34);
}
.request-provider-status-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.request-provider-status-head b {
  color: rgba(255,255,255,.94);
  font-size: 13px;
}
.request-provider-status-head span,
.request-provider-search-state,
.request-provider-option {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
}
.request-provider-status p {
  margin: 0;
  color: rgba(226,232,240,.86);
  font-size: 12px;
  line-height: 1.35;
}
.request-provider-option b {
  color: rgba(255,255,255,.78);
}
.request-provider-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.request-provider-chips small {
  max-width: 100%;
  padding: 4px 7px;
  border: 1px solid rgba(148,163,184,.2);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: rgba(203,213,225,.9);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.request-provider-ok {
  border-color: rgba(34,197,94,.28);
  background: rgba(34,197,94,.075);
}
.request-provider-ok .request-provider-status-head span,
.request-provider-ok .request-provider-search-state {
  color: #bbf7d0;
}
.request-provider-warning {
  border-color: rgba(251,191,36,.3);
  background: rgba(251,191,36,.075);
}
.request-provider-warning .request-provider-status-head span,
.request-provider-warning .request-provider-search-state {
  color: #fde68a;
}
.request-provider-error {
  border-color: rgba(248,113,113,.32);
  background: rgba(248,113,113,.075);
}
.request-provider-error .request-provider-status-head span,
.request-provider-error .request-provider-search-state {
  color: #fecaca;
}
.request-provider-neutral .request-provider-search-state {
  color: rgba(148,163,184,.82);
}
.request-provider-tone-error {
  border-color: rgba(248,113,113,.24);
}
.request-provider-tone-warning {
  border-color: rgba(251,191,36,.22);
}
.request-provider-tone-ok {
  border-color: rgba(34,197,94,.2);
}
@media (max-width: 720px) {
  .request-provider-status-head {
    align-items: flex-start;
  }
  .request-provider-chips small {
    white-space: normal;
  }
}

/* v0.4.65 request notification seen state */
.nav-with-badge {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}
.nav-count-badge {
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(250, 204, 21, .18);
  color: #fde68a;
  border: 1px solid rgba(250, 204, 21, .28);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}
.request-nav {
  grid-template-columns: 28px minmax(0, 1fr) auto;
}
.nav-status-badges {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  justify-content: flex-end;
}
.nav-status-badge {
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  border: 1px solid rgba(148, 163, 184, .22);
  color: #cbd5e1;
  background: rgba(148, 163, 184, .10);
}
.nav-status-badge.approved {
  color: #86efac;
  background: rgba(34, 197, 94, .13);
  border-color: rgba(34, 197, 94, .28);
}
.nav-status-badge.denied {
  color: #fca5a5;
  background: rgba(248, 113, 113, .13);
  border-color: rgba(248, 113, 113, .28);
}
.nav-status-badge.pending {
  color: #fde68a;
  background: rgba(250, 204, 21, .13);
  border-color: rgba(250, 204, 21, .28);
}

/* v0.4.66 request history filters/search */
.request-history-tools {
  display: grid;
  grid-template-columns: minmax(130px, .8fr) minmax(120px, .7fr) minmax(220px, 1.6fr) auto;
  gap: 10px;
  align-items: end;
  padding: 10px;
  margin: 4px 0 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 18px;
  background: rgba(2, 6, 23, .22);
}
.request-history-tools label {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.request-history-tools label span {
  color: rgba(203, 213, 225, .78);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.request-history-tools select,
.request-history-tools input {
  width: 100%;
  min-width: 0;
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, .20);
  background: rgba(15, 23, 42, .72);
  color: #e5e7eb;
  padding: 0 11px;
  outline: none;
}
.request-history-tools select:focus,
.request-history-tools input:focus {
  border-color: rgba(250, 204, 21, .42);
  box-shadow: 0 0 0 3px rgba(250, 204, 21, .08);
}
.request-history-tools small {
  justify-self: end;
  align-self: center;
  color: rgba(148, 163, 184, .85);
  white-space: nowrap;
  font-weight: 700;
}
.request-filter-empty {
  margin-top: 10px;
}
.request-queue-row.is-filter-hidden {
  display: none !important;
}
@media (max-width: 920px) {
  .request-history-tools {
    grid-template-columns: 1fr 1fr;
  }
  .request-history-search,
  .request-history-tools small {
    grid-column: 1 / -1;
  }
  .request-history-tools small {
    justify-self: start;
  }
}
@media (max-width: 620px) {
  .request-history-tools {
    grid-template-columns: 1fr;
  }
}

/* v0.4.70 user-first request flow: necessary UX change, not polish */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.request-user-page {
  gap: 14px;
}
.request-user-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 2px 0 4px;
}
.request-user-hero h2 {
  margin: 0 0 4px;
  font-size: 28px;
  line-height: 1.05;
}
.request-user-hero p {
  margin: 0;
  color: var(--muted);
}
.request-user-limit-line {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: rgba(226,232,240,.9);
  font-size: 12px;
  font-weight: 800;
}
.request-user-search-panel {
  padding: 18px;
  background: linear-gradient(135deg, rgba(15,23,42,.90), rgba(2,6,23,.54));
}
.request-user-search-form {
  display: grid;
  gap: 12px;
}
.request-user-search-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.request-user-search-main input {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  font-size: 16px;
  padding: 0 14px;
}
.request-user-search-main button {
  min-height: 48px;
  padding-inline: 18px;
}
.request-user-type-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.request-user-type-tab {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: rgba(226,232,240,.82);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.request-user-type-tab input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.request-user-type-tab.active,
.request-user-type-tab:has(input:checked) {
  border-color: rgba(96,165,250,.42);
  background: rgba(96,165,250,.16);
  color: white;
}
.request-user-access-line {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.request-search-state {
  min-height: 120px;
  display: grid;
  place-items: center;
  text-align: center;
}
.user-request-result-grid {
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  align-items: stretch;
  gap: 14px;
}
.request-user-result-card {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  min-height: 100%;
  gap: 10px;
  padding: 12px;
  overflow: hidden;
}
.request-user-result-card .request-result-poster {
  width: 100%;
  min-height: 0;
  aspect-ratio: 2 / 3;
  border-radius: 12px;
}
.request-user-result-card .request-result-body {
  grid-template-rows: auto auto auto auto auto;
  align-content: start;
  gap: 8px;
  overflow: hidden;
}
.request-user-result-card .request-result-body strong {
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.request-user-result-card .request-result-body p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.request-user-result-card .request-result-body button {
  justify-self: stretch;
  width: 100%;
  min-width: 0;
}
.request-user-result-title {
  display: grid;
  gap: 2px;
}
.request-user-result-title span {
  color: var(--muted);
  font-size: 12px;
}
.request-user-choice {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 13px;
  background: rgba(15,23,42,.46);
  overflow: hidden;
}
.request-user-choice > label {
  display: grid;
  gap: 5px;
}
.request-user-choice > label > span {
  color: rgba(226,232,240,.88);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.request-user-choice select {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  border-radius: 10px;
}
.request-user-choice-simple {
  padding: 7px 9px;
}
.request-user-choice-help {
  color: rgba(148,163,184,.92);
  font-size: 11px;
  line-height: 1.3;
}
.request-user-choice-picker {
  display: grid;
  gap: 6px;
  max-height: 185px;
  overflow: auto;
  padding: 7px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 11px;
  background: rgba(0,0,0,.18);
}
.request-user-season-picker {
  grid-template-columns: 1fr;
}
.request-user-choice-picker label {
  display: flex;
  gap: 7px;
  align-items: center;
  min-width: 0;
  padding: 6px 7px;
  border-radius: 9px;
  background: rgba(255,255,255,.04);
  color: rgba(226,232,240,.86);
  font-size: 12px;
}
.request-user-choice-picker input[type="checkbox"] {
  width: 14px;
  height: 14px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: #60a5fa;
}
.request-user-choice-picker span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.request-user-episode-picker label {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
}
.request-user-episode-picker input[type="text"] {
  width: 100%;
  min-height: 32px;
  border-radius: 9px;
  font-size: 12px;
  padding: 0 8px;
}
.request-user-choice[data-user-request-mode="sonarr-full-series"] .request-user-season-picker,
.request-user-choice[data-user-request-mode="sonarr-full-series"] .request-user-episode-picker,
.request-user-choice[data-user-request-mode="safe-add"] .request-user-season-picker,
.request-user-choice[data-user-request-mode="safe-add"] .request-user-episode-picker,
.request-user-choice[data-user-request-mode="safe-add"] .request-user-album-picker,
.request-user-choice[data-user-request-mode="sonarr-selected-seasons"] .request-user-episode-picker,
.request-user-choice[data-user-request-mode="sonarr-selected-episodes"] .request-user-season-picker {
  display: none;
}
.request-user-note {
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.035);
  padding: 7px 9px;
}
.request-user-note summary {
  color: rgba(203,213,225,.86);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.request-user-note textarea {
  width: 100%;
  min-height: 54px;
  margin-top: 8px;
  resize: vertical;
}
.request-user-submit {
  justify-self: start;
  min-width: 120px;
}
.request-user-queue-panel {
  background: rgba(17,24,39,.48);
}
.request-user-section-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}
.request-user-section-title h3,
.request-user-section-title p {
  margin: 0;
}
.request-user-section-title p {
  color: var(--muted);
  font-size: 12px;
}
@media (max-width: 760px) {
  .request-user-hero,
  .request-user-section-title {
    align-items: flex-start;
    flex-direction: column;
  }
  .request-user-search-main,
  .request-user-episode-picker label {
    grid-template-columns: 1fr;
  }
  .user-request-result-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
  .request-user-result-card .request-result-poster {
    width: 100%;
    min-height: 0;
  }
  .request-user-season-picker {
    grid-template-columns: 1fr;
  }
}
.request-user-status-card {
  display: grid;
  gap: 3px;
  margin-top: 8px;
  padding: 9px 10px;
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}
.request-user-status-card b {
  color: rgba(255,255,255,.92);
  font-size: 13px;
}
.request-user-status-card span {
  color: var(--muted);
  font-size: 12px;
}
.request-user-status-approved {
  border-color: rgba(34,197,94,.24);
  background: rgba(34,197,94,.07);
}
.request-user-status-denied {
  border-color: rgba(248,113,113,.24);
  background: rgba(248,113,113,.07);
}

.compact-request-user-hero {
  margin-bottom: 12px;
}
.request-recommended-panel {
  background: rgba(15,23,42,.54);
}
.request-recommended-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.request-recommended-tabs .mini-btn.active {
  border-color: rgba(96,165,250,.52);
  background: rgba(96,165,250,.18);
  color: rgba(239,246,255,.98);
}
.request-recommended-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(140px, 160px);
  gap: 12px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  overscroll-behavior-x: contain;
}
.request-recommended-card {
  display: grid;
  gap: 8px;
  border: 1px solid rgba(148,163,184,.16);
  border-radius: 15px;
  padding: 9px;
  background: rgba(255,255,255,.045);
  min-width: 0;
}
.request-recommended-card.is-disabled {
  opacity: .68;
}
.request-recommended-poster {
  aspect-ratio: 2 / 3;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(2,6,23,.62);
  display: grid;
  place-items: center;
  color: rgba(203,213,225,.8);
  font-weight: 900;
}
.request-recommended-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.request-recommended-body {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.request-recommended-body strong {
  color: rgba(248,250,252,.95);
  font-size: 13px;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.request-recommended-body span {
  color: var(--muted);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.request-recommended-body .mini-btn {
  width: 100%;
  justify-content: center;
}
.request-recommended-state {
  margin-top: 2px;
}
@media (max-width: 760px) {
  .request-recommended-tabs {
    justify-content: flex-start;
  }
  .request-recommended-row {
    grid-auto-columns: minmax(126px, 145px);
  }
}

/* v0.4.79 — TV request picker support */
.request-tv-picker-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  align-items: stretch;
  min-width: 0;
}
.request-tv-picker-line label {
  display: grid;
  gap: 5px;
}
.request-tv-picker-line label > span {
  color: rgba(226,232,240,.88);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.request-tv-picker-btn {
  min-height: 34px;
  white-space: normal;
  line-height: 1.2;
}
.request-user-choice-help.good {
  color: rgba(134,239,172,.92);
}
.request-user-choice-help.warn {
  color: rgba(253,224,71,.92);
}
.request-user-choice-help.error {
  color: rgba(252,165,165,.95);
}

.request-tv-picker-error {
  display: grid;
  gap: 6px;
}
.request-tv-picker-error .mini-btn {
  width: 100%;
  justify-content: center;
}
.request-user-episode-checkboxes {
  gap: 8px;
}
.request-user-episode-checkboxes fieldset {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 8px;
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 10px;
}
.request-user-episode-checkboxes legend {
  padding: 0 5px;
  color: rgba(226,232,240,.88);
  font-size: 11px;
  font-weight: 900;
}
.request-user-episode-checkboxes label {
  display: flex;
  grid-template-columns: none;
}
.request-user-episode-checkboxes span {
  white-space: normal;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .request-tv-picker-line {
    grid-template-columns: 1fr;
  }
}
