.movie-request {
    width: 100%;
    max-width: 680px;
    margin: 24px auto 64px;
    color: #eceff4;
}

.movie-request-heading { margin-bottom: 24px; }
.movie-request-heading h1 { margin: 0 0 10px; font-size: 28px; font-weight: 700; }
.movie-request-heading p { margin: 0; color: #aeb9cc; font-size: 15px; line-height: 1.7; word-break: keep-all; }
.movie-request-form { padding: 32px; border: 1px solid #434c5e; border-radius: 16px; background: #2e3440; }
.movie-request-field { margin-bottom: 24px; }
.movie-request-field label { display: block; margin-bottom: 10px; font-size: 15px; font-weight: 600; }
.movie-request-field label span { margin-left: 4px; color: #aeb9cc; font-size: 12px; font-weight: 400; }

.movie-request-field input,
.movie-request-field textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 13px 15px;
    border: 1px solid #596579;
    border-radius: 8px;
    background: #242933;
    color: #eceff4;
    font: inherit;
    font-size: 16px;
    line-height: 1.5;
}

.movie-request-field textarea { min-height: 180px; resize: vertical; }
.movie-request-field input::placeholder,
.movie-request-field textarea::placeholder { color: #9ba8bd; opacity: 1; }
.movie-request-field input:focus,
.movie-request-field textarea:focus { outline: 2px solid #88c0d0; outline-offset: 2px; border-color: #88c0d0; }
.movie-request-help { margin: 8px 0 0; color: #aeb9cc; font-size: 12px; }
.movie-request-submit { width: 100%; min-height: 50px; padding: 13px 20px; border: 0; border-radius: 8px; background: #fe628e; color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.movie-request-submit:hover { background: #ed4f7c; }
.movie-request-submit:focus-visible { outline: 2px solid #eceff4; outline-offset: 3px; }
.movie-request-submit:disabled { opacity: .6; cursor: wait; }
.movie-request-notice { margin-bottom: 20px; padding: 16px; border: 1px solid; border-radius: 8px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.movie-request-success { border-color: #a3be8c; background: #283a32; color: #d0e6bb; }
.movie-request-error { border-color: #bf616a; background: #402c34; color: #f2c5cb; }
.movie-request-error ul { margin: 0; padding-left: 18px; list-style: disc; }

@media (max-width: 640px) {
    .movie-request { margin-top: 16px; margin-bottom: 40px; }
    .movie-request-heading h1 { font-size: 24px; }
    .movie-request-heading p { font-size: 14px; }
    .movie-request-form { padding: 20px 16px; border-radius: 12px; }
    .movie-request-field { margin-bottom: 20px; }
}
