/* ============================================================
   BETA TESTER APPLICATION PAGE - module v1.0.0
   Markup: modules/beta.php
   Uses the momo2 theme tokens defined on :root in style.css.
   ============================================================ */

.bt-page {
    --bt-accent: var(--m2-gold);
    max-width: 960px;
    margin: 0 auto;
    padding: 24px 16px 60px;
    color: var(--m2-text);
}

.bt-adminbar {
    margin-bottom: 16px;
    padding: 10px 14px;
    border-radius: var(--m2-r-sm);
    font-size: 13px;
    line-height: 1.6;
    color: #ffe9bd;
    background: rgba(255, 179, 32, .08);
    border: 1px solid var(--m2-gold-border);
    border-left: 3px solid var(--m2-gold);
}
.bt-adminbar i { margin-right: 6px; color: var(--m2-gold); }
.bt-adminbar a { color: var(--m2-gold); text-decoration: underline; }

/* ---------------------------------------------------------------- hero */
.bt-hero {
    position: relative;
    padding: 36px 22px 30px;
    text-align: center;
    border: 1px solid var(--m2-border);
    border-radius: var(--m2-r-lg);
    background: radial-gradient(circle at 50% 0%, var(--m2-gold-glow), transparent 65%), var(--m2-bg-card);
    box-shadow: var(--m2-shadow-card);
}
.bt-hero__pill {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--m2-gold);
    border: 1px solid var(--m2-gold-border);
    background: rgba(255, 179, 32, .06);
}
.bt-hero__pill i { margin-right: 6px; }
.bt-hero__title {
    margin: 16px 0 8px;
    font-family: "Cinzel", "Roboto", serif;
    font-size: clamp(26px, 5vw, 40px);
    color: #fff;
}
.bt-hero__tagline {
    max-width: 620px;
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: var(--m2-text-sub);
}
.bt-hero__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
}
.bt-chip {
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12.5px;
    color: var(--m2-text-sub);
    background: var(--m2-bg-elevated);
    border: 1px solid var(--m2-border);
}
.bt-chip i { margin-right: 5px; }
.bt-chip--open i   { color: #4ade80; font-size: 9px; vertical-align: 2px; }
.bt-chip--closed i { color: #f87171; font-size: 9px; vertical-align: 2px; }

/* --------------------------------------------------------------- body */
.bt-intro {
    margin: 26px auto 0;
    max-width: 760px;
    font-size: 15px;
    line-height: 1.75;
    color: var(--m2-text-sub);
    text-align: center;
}

.bt-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.bt-card {
    margin-top: 24px;
    padding: 22px 22px 20px;
    border-radius: var(--m2-r-md);
    background: var(--m2-bg-card);
    border: 1px solid var(--m2-border);
    box-shadow: var(--m2-shadow-card);
}
.bt-grid .bt-card { margin-top: 0; }
.bt-card__title {
    margin: 0 0 14px;
    font-family: "Cinzel", "Roboto", serif;
    font-size: 18px;
    color: var(--m2-gold);
}
.bt-card__title i { margin-right: 8px; }

.bt-list { margin: 0; padding: 0; list-style: none; }
.bt-list li {
    position: relative;
    padding: 6px 0 6px 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--m2-text);
}
.bt-list li::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 7px;
    font-size: 12px;
    color: var(--m2-gold);
}
.bt-list--perks li::before { content: "\f005"; }

.bt-muted { font-size: 13px; color: var(--m2-text-muted); }

/* --------------------------------------------------------- flash/notice */
.bt-flash, .bt-notice {
    margin-top: 20px;
    padding: 12px 16px;
    border-radius: var(--m2-r-sm);
    font-size: 14px;
    line-height: 1.6;
    background: var(--m2-bg-card);
    border: 1px solid var(--m2-border);
    border-left: 3px solid var(--m2-gold);
    color: var(--m2-text-sub);
}
.bt-flash--success { border-left-color: #4ade80; color: #d6f5df; }
.bt-flash--error, .bt-notice--error { border-left-color: #f87171; color: #fbdada; }

/* --------------------------------------------------------------- status */
.bt-status__badge {
    display: inline-block;
    margin: 0 0 10px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    color: var(--m2-text-inv);
    background: var(--m2-gold);
}
.bt-status--approved .bt-status__badge    { background: #4ade80; }
.bt-status--shortlisted .bt-status__badge { background: #60a5fa; }
.bt-status--rejected .bt-status__badge    { background: #9ca3af; }

/* ----------------------------------------------------------------- form */
.bt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.bt-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.bt-field {
    display: block;
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    min-width: 0;
}
.bt-field__label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--m2-text-sub);
}
.bt-form input[type="text"],
.bt-form select,
.bt-form textarea {
    width: 100%;
    min-height: var(--m2-touch);
    padding: 10px 12px;
    font-size: 14px;
    color: var(--m2-text);
    background: var(--m2-bg-input);
    border: 1px solid var(--m2-border);
    border-radius: var(--m2-r-sm);
    transition: border-color var(--m2-trans);
    box-sizing: border-box;
}
.bt-form textarea { resize: vertical; line-height: 1.55; }
.bt-form input:focus, .bt-form select:focus, .bt-form textarea:focus {
    outline: none;
    border-color: var(--m2-gold);
    box-shadow: 0 0 0 3px var(--m2-gold-glow);
}
.bt-field--error input, .bt-field--error select, .bt-field--error textarea { border-color: #f87171; }
.bt-field__error {
    display: block;
    margin-top: 5px;
    font-size: 12.5px;
    color: #fca5a5;
}

.bt-checks {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 6px 14px;
}
.bt-check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--m2-text);
    cursor: pointer;
}
.bt-check input { margin-top: 3px; accent-color: var(--m2-gold); flex: none; width: 16px; height: 16px; }
.bt-field--error.bt-check span { color: #fca5a5; }

.bt-agree {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--m2-border);
}

.bt-actions { margin-top: 18px; text-align: right; }

.bt-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: var(--m2-touch);
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--m2-r-sm);
    border: 1px solid transparent;
    cursor: pointer;
    transition: filter var(--m2-trans), border-color var(--m2-trans);
}
.bt-btn--primary { color: var(--m2-text-inv); background: var(--m2-gold); }
.bt-btn--primary:hover { filter: brightness(1.1); }
.bt-btn--ghost { color: var(--m2-text); background: var(--m2-bg-elevated); border-color: var(--m2-border); }
.bt-btn--ghost:hover { border-color: #f87171; }

@media (max-width: 640px) {
    .bt-row { grid-template-columns: 1fr; gap: 0; }
    .bt-card { padding: 18px 16px; }
    .bt-actions { text-align: center; }
    .bt-btn--primary { width: 100%; justify-content: center; }
}
