/* ============================================================
   wave2.css — styles for Wave 2 pages (donations + speaker
   proposals). Loaded only on pages that opt in via <link>.
   Reuses .card / .btn / .btn-primary / .btn-ghost / .badge /
   .flash / .field from the main style.css.
   ============================================================ */

/* ----- Donate page ----- */

.donate-page,
.speaker-proposal-page {
    max-width: 720px;
    margin: 0 auto;
}
.donate-head h1,
.speaker-proposal-page h1 { margin-top: 0; }
.donate-head p { line-height: 1.55; }

.donate-form {
    margin-top: 1.5rem;
    padding: 1.5rem;
}

.donate-amount {
    border: 0;
    padding: 0;
    margin: 0 0 1.25rem;
}
.donate-amount legend {
    color: var(--muted);
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
    padding: 0;
}

.donate-presets {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}
@media (max-width: 540px) {
    .donate-presets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.donate-preset {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius);
    padding: 0.85rem 0.5rem;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.05s ease;
    user-select: none;
}
.donate-preset:hover { border-color: var(--border-strong); background: var(--surface-2); }
.donate-preset input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.donate-preset.is-selected {
    border-color: var(--accent);
    background: rgba(232, 177, 98, 0.12);
    box-shadow: 0 0 0 1px var(--accent) inset;
}
.donate-preset-amount {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-strong);
}
.donate-preset.is-selected .donate-preset-amount { color: var(--accent); }
.donate-preset-custom .donate-preset-amount { font-size: 0.95rem; }

.donate-custom-row {
    margin-top: 0.85rem;
}
.donate-custom-row label {
    display: block;
    color: var(--muted);
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
}
.donate-custom-input {
    display: flex;
    align-items: stretch;
    max-width: 220px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--bg);
}
.donate-custom-input:focus-within { border-color: var(--accent); }
.donate-currency {
    display: inline-flex;
    align-items: center;
    padding: 0 0.7rem;
    background: var(--surface);
    color: var(--muted);
    border-right: 1px solid var(--border);
    font-weight: 600;
}
.donate-custom-input input[type="number"] {
    flex: 1;
    border: 0;
    background: transparent;
    color: var(--text);
    padding: 0.5rem 0.6rem;
    font: inherit;
    outline: none;
    width: 100%;
}

.donate-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
}
@media (max-width: 540px) {
    .donate-grid { grid-template-columns: 1fr; }
}
.donate-grid .field { margin-bottom: 0; }

.donate-anon {
    display: block;
    margin: 0.85rem 0 1rem;
    color: var(--text);
    font-size: 0.95rem;
    cursor: pointer;
}
.donate-anon input[type="checkbox"] { margin-right: 0.4rem; }

.donate-actions { margin-top: 1rem; }
.donate-actions .btn-primary { padding-inline: 1.25rem; }
.donate-fineprint {
    margin: 0.6rem 0 0;
    font-size: 0.85em;
}

.donate-fallback {
    text-align: left;
    margin-top: 1.5rem;
}

.donate-other-ways {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border);
}
.donate-other-ways h2 { margin-top: 0; }

.donate-thanks {
    text-align: center;
    padding: 2rem 1.5rem;
    margin: 2rem auto;
    max-width: 640px;
}
.donate-thanks h1 { color: var(--accent); margin-top: 0; }
.donate-thanks-amount { font-size: 1.2rem; }
.donate-thanks-msg {
    margin: 1rem auto;
    padding: 0.85rem 1rem;
    max-width: 480px;
    border-left: 3px solid var(--accent);
    background: var(--surface);
    color: var(--text);
    text-align: left;
    font-style: italic;
    border-radius: 0 var(--radius) var(--radius) 0;
}

/* ----- Admin: donations stats strip ----- */
.donate-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1rem 0 1.5rem;
}
@media (max-width: 600px) {
    .donate-stats { grid-template-columns: 1fr; }
}
.donate-manual-form { padding: 1.25rem; margin-top: 1rem; }

/* ----- Speaker proposal form ----- */
.speaker-form { padding: 1.5rem; margin-top: 1rem; }
.speaker-form .req { color: var(--danger); }

.speaker-dates {
    border: 0;
    padding: 0;
    margin: 1.25rem 0 0.5rem;
}
.speaker-dates legend {
    color: var(--muted);
    font-size: 0.95rem;
    padding: 0;
    margin-bottom: 0.4rem;
}

.speaker-date-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.6rem;
}
@media (max-width: 540px) {
    .speaker-date-list { grid-template-columns: 1fr; }
}
.speaker-date-option {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    cursor: pointer;
    color: var(--text);
    font-size: 0.95rem;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}
.speaker-date-option:hover { border-color: var(--border-strong); background: var(--surface-2); }
.speaker-date-option.is-selected {
    border-color: var(--accent);
    background: rgba(232, 177, 98, 0.12);
}
.speaker-date-option input[type="checkbox"] { margin: 0; }

/* ----- Admin: speaker proposals ----- */
.speaker-pending dl.sky-grid { margin-bottom: 0.9rem; }
.speaker-pref-dates {
    margin: 0;
    padding-left: 1.1rem;
}
.speaker-decision {
    margin-top: 0.6rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}
.speaker-decision[open] {
    background: var(--surface-2);
    border-color: var(--border-strong);
}
.speaker-decision summary {
    cursor: pointer;
    color: var(--text);
}
.speaker-decision summary:hover { color: var(--accent); }

/* Tighten form spacing when inside the decision details block */
.speaker-decision .form .field { margin-bottom: 0.75rem; }
.speaker-decision .donate-grid { margin-bottom: 0.75rem; }
