/* Organizer submission and private management pages. */
.portal-main { max-width: 920px; margin: 3rem auto; padding: 0 var(--gutter, 24px); }
.portal-intro { max-width: 720px; margin-bottom: 2rem; }
.portal-intro h1 { font-size: clamp(2.2rem, 6vw, 4rem); line-height: 1.1; letter-spacing: -.04em; }
.portal-intro p { margin-top: 1rem; color: var(--text); }
.portal-form { display: grid; gap: 1.5rem; }
.portal-form section, .portal-form fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.portal-form section > *, .portal-form details > * { margin-bottom: 1.1rem; }
.portal-form legend, .portal-form h2 { font-weight: 700; font-size: 1.2rem; margin-bottom: 1rem; }
.field { display: grid; gap: .4rem; }
.field label { font-weight: 600; }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: .8rem; border: 1px solid var(--border); border-radius: 10px; background: #171b25; color: var(--ink); font: inherit; color-scheme: dark; }
.field input[type=file] { padding: .7rem; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible, .route-card:focus-within, .portal-form button:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.field [aria-invalid=true] { border-color: #ff9f9f; }
.field-error { color: #ffb4b4; font-size: .9rem; }
.form-error a { color: inherit; text-decoration: underline; }
.field-help, .form-note { font-size: .9rem; color: var(--text); }
.route-options { display: grid; gap: 1rem; }
.route-card { padding: 1.3rem; display: grid; grid-template-columns: 24px 1fr; gap: .6rem; border: 1px solid var(--border); border-radius: 16px; cursor: pointer; }
.route-card span { grid-column: 2; color: var(--text); }
.route-card:has(input:checked) { border-color: var(--focus); background: #1e2330; }
.check { display: flex; align-items: flex-start; gap: .8rem; padding: .6rem 0; }
.check input { width: 22px; height: 22px; margin-top: .1rem; flex-shrink: 0; }
.portal-form details summary { cursor: pointer; padding: .8rem 0; font-weight: 700; }
.portal-form details[open] summary { margin-bottom: 1rem; }
.submission-summary { padding: 1.2rem !important; background: #171b25; border-radius: 12px; white-space: pre-line; }
.portal-form .button { min-height: 48px; width: fit-content; }
.portal-form .button:disabled { opacity: .55; cursor: wait; }
.portal-notes { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.portal-notes p { margin-top: 1rem; color: var(--text); }
.legal-related { display: flex; gap: 1rem; margin-top: 2rem; }
.legal-related a { display: inline-flex; min-height: 44px; align-items: center; }
#venue-results button { margin: .5rem .5rem .5rem 0; }
[hidden] { display: none !important; }
@media (min-width: 640px) { .route-options, .field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .route-options legend { grid-column: 1 / -1; } }
