.request-page { min-height: 100dvh; background: radial-gradient(circle at 80% 10%, rgba(218,16,37,.16),transparent 30%), #08090e; }
.request-main { padding-block: clamp(32px,6vw,84px) 100px; }
.request-hero { max-width: 850px; margin: 0 auto 42px; text-align: center; }
.request-hero h1 { margin: 13px 0 16px; font-size: clamp(34px,6vw,76px); line-height: 1.16; letter-spacing: -.045em; }
.request-hero h1 em { color: #f21c38; font-style: normal; }
.request-hero p { max-width: 630px; margin: auto; color: #bdc0ca; line-height: 1.9; font-size: clamp(15px,1.6vw,18px); }
.request-hero-tags { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-top: 23px; }
.request-hero-tags span { padding: 7px 13px; border: 1px solid #353038; border-radius: 99px; background: #17131a; color: #d6d1d9; font-size: 12px; }
.request-workspace { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 18px; max-width: 1120px; margin: auto; align-items: stretch; }
.request-form,.request-status { border: 1px solid #302a33; border-radius: 24px; background: linear-gradient(155deg,#17151d,#100f16); box-shadow: 0 22px 66px #0006; padding: clamp(22px,3vw,36px); }
.request-form-head span,.request-status-kicker { color: #fb304a; font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.request-form-head h2,.request-status h2 { margin: 7px 0 25px; font-size: clamp(23px,3vw,31px); }
.request-type { display: flex; gap: 10px; border: 0; margin: 0 0 24px; padding: 0; }
.request-type legend { display: block; width: 100%; margin-bottom: 10px; color: #d7d2db; font-weight: 700; }
.request-type label { flex: 1; cursor: pointer; }
.request-type input { position: absolute; opacity: 0; }
.request-type span { display: block; padding: 14px; text-align: center; border: 1px solid #3c3540; border-radius: 13px; color: #d2ccd5; background: #191720; font-weight: 800; }
.request-type input:checked + span { background: #4d111c; border-color: #ed1734; color: #fff; box-shadow: inset 0 0 0 1px #ed1734; }
.request-type input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }
.request-field { display: grid; gap: 9px; color: #f2edf2; font-weight: 750; margin-bottom: 22px; }
.request-field span,.request-field small { color: #a9a5b1; font-size: 12px; font-weight: 500; }
.request-field input { width: 100%; min-height: 50px; border: 1px solid #403944; background: #0b0c12; color: #fff; border-radius: 12px; padding: 11px 15px; outline: 0; font: inherit; }
.request-field input:focus { border-color: #f02442; box-shadow: 0 0 0 3px #f0244230; }
.request-field input[readonly] { color: #d5ced5; background: #191720; }
.request-fields-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; }
.request-show-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.request-show-fields[hidden] { display: none; }
.request-note { color: #a8a3ae; font-size: 13px; line-height: 1.7; margin: -6px 0 21px; }
.request-submit,.request-result-link { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 55px; border-radius: 13px; padding: 12px 20px; background: linear-gradient(115deg,#d90929,#f52b42); color: #fff; text-decoration: none; font-size: 16px; font-weight: 900; box-shadow: 0 13px 29px #d9092930; cursor: pointer; }
.request-submit:disabled { cursor: wait; opacity: .7; }
.request-submit b,.request-result-link b { font-size: 22px; }
.request-status { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; min-height: 390px; position: relative; overflow: hidden; }
.request-status::before { content: ''; position: absolute; width: 330px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,#e70a2a22,transparent 65%); top: -120px; inset-inline-end: -140px; pointer-events: none; }
.request-status-art { display: grid; place-items: center; width: 72px; aspect-ratio: 1; margin-bottom: 24px; border-radius: 20px; border: 1px solid #6e2230; background: #50131e; color: #fff; font-size: 35px; box-shadow: 0 12px 36px #e3062829; }
.request-status[data-state="running"] .request-status-art { animation: requestPulse 2s ease-in-out infinite; }
.request-status[data-state="complete"] .request-status-art { background: #135436; border-color: #2a9b6a; }
.request-status[data-state="not_found"] .request-status-art,.request-status[data-state="error"] .request-status-art { background: #503518; border-color: #986d35; }
.request-status h2 { margin: 8px 0 10px; }
.request-status p { color: #b9b5c0; line-height: 1.9; margin: 0 0 22px; }
.request-result-link { max-width: 100%; margin-top: 5px; }
.request-footer-note { margin: 26px auto 0; text-align: center; color: #817d88; font-size: 13px; }
@keyframes requestPulse { 50% { transform: scale(1.07); box-shadow: 0 12px 50px #e3062850; } }
@media (max-width: 760px) { .request-main { padding-top: 30px; } .request-hero { margin-bottom: 30px; } .request-workspace { grid-template-columns: 1fr; } .request-status { min-height: 260px; } }
@media (max-width: 420px) { .request-form,.request-status { padding: 20px; border-radius: 17px; } .request-fields-row { grid-template-columns: 1fr; gap: 0; } .request-type span { font-size: 13px; } }
@media (prefers-reduced-motion: reduce) { .request-status[data-state="running"] .request-status-art { animation: none; } }

/* Durable upcoming-release watch */
.request-status[data-state="upcoming"] .request-status-art {
  background:#4a3513;border-color:#e6b553;color:#ffe6aa;
}
.request-status[data-state="waiting"] .request-status-art {
  background:#23354a;border-color:#5886b8;color:#daecff;
}
.request-track-link {margin-top:12px;font-size:14px;min-height:46px;}
.request-my {max-width:1120px;margin:26px auto 0;padding:22px;
  background:#15141d;border:1px solid #37303c;border-radius:18px;}
.request-my[hidden] {display:none}
.request-my h2 {font-size:20px;margin:0 0 12px;color:#f1eef6}
.request-my-list {display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:9px}
.request-my-item {display:flex;flex-direction:column;gap:6px;padding:13px;
  border:1px solid #3b3640;border-radius:12px;background:#0e1118;
  text-decoration:none;color:#f5f5f7}
.request-my-item small {font-size:12px;color:#b9b6c4;line-height:1.5}
.request-my-item:hover {border-color:#e83555}
@media(max-width:560px){.request-my {padding:15px;margin-top:16px}
  .request-my-list{grid-template-columns:1fr}}

/* iCinema request enhancements: compact TMDB chooser and aggregated demand */
.request-suggestions {
  margin: -11px 0 18px;
  padding: 8px;
  border: 1px solid #53424f;
  border-radius: 14px;
  background: #11121b;
  box-shadow: 0 8px 28px #0005;
  display: grid;
  gap: 5px;
}
.request-suggestions[hidden] { display: none; }
.request-suggest-heading {
  padding: 4px 8px 7px;
  margin: 0;
  font-size: 12px;
  color: #c6becb;
}
.request-suggest-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 57px;
  padding: 8px 10px;
  background: #1b1a25;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #f4f0f5;
  text-align: start;
  font: inherit;
  cursor: pointer;
}
.request-suggest-item:hover,
.request-suggest-item:focus-visible {
  border-color: #d42a45;
  background: #25202d;
}
.request-suggest-poster {
  width: 36px;
  height: 49px;
  border-radius: 6px;
  object-fit: cover;
  flex: none;
}
.request-suggest-text {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  line-height: 1.4;
}
.request-suggest-name {
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.request-suggest-year { color: #bcb2c6; font-size: 11px; }
.request-popular {
  max-width: 1120px;
  margin: 25px auto 0;
  padding: 20px;
  border: 1px solid #342b39;
  background: #14131c;
  border-radius: 19px;
}
.request-popular[hidden] { display: none; }
.request-popular h2 { margin: 0 0 7px; font-size: clamp(19px,2.5vw,24px); }
.request-popular-note { font-size: 12px; color: #a9a2b4; margin: 0 0 13px; line-height: 1.65; }
.request-popular-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap: 9px;
}
.request-popular-card {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 13px;
  min-width: 0;
  border: 1px solid #3a3442;
  border-radius: 12px;
  background: #101219;
  text-decoration: none;
  color: #f8f5fa;
}
.request-popular-card strong { font-size: 13px; overflow-wrap: anywhere; }
.request-popular-card small { font-size: 11px; color: #aea9b9; }
.request-popular-count { font-size: 11px; color: #ff9ca9; font-weight: 750; }
.request-popular-card:hover,.request-popular-card:focus-visible { border-color: #e53451; }
@media (max-width: 560px) {
  .request-popular { padding: 15px; }
  .request-suggest-item { min-height: 49px; gap: 8px; }
  .request-suggest-poster { width: 30px; height: 41px; }
}
