/* =========================================================
   v4.7 · Teste de 30 min + acesso vencido sem bloquear conta
   ========================================================= */

.trial-signup-note {
    display: grid;
    gap: 5px;
    margin: 0 0 14px;
    padding: 11px 12px;
    border: 1px solid color-mix(in srgb, var(--text-accent) 35%, var(--line));
    border-radius: 10px;
    background: color-mix(in srgb, var(--text-accent) 8%, var(--panel-surface));
    color: var(--text-main);
    font: 600 11px/1.5 var(--type-ui);
}

.trial-signup-note strong {
    color: var(--text-accent);
    font-size: 12px;
}

.trial-signup-note span {
    color: var(--text-muted);
}

.access-notice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 10px 0;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--panel-surface);
}

.access-notice.hidden {
    display: none;
}

.access-notice-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--canvas-soft);
    font-size: 15px;
}

.access-notice strong {
    display: block;
    margin-bottom: 2px;
    color: var(--text-main);
    font: 800 12px/1.25 var(--type-ui);
}

.access-notice p {
    margin: 0;
    color: var(--text-muted);
    font: 600 10px/1.45 var(--type-ui);
}

.access-plans-button {
    margin: 7px 0 0;
    padding: 0;
    border: 0;
    color: var(--text-accent);
    background: transparent;
    cursor: pointer;
    font: 800 10px/1.3 var(--type-ui);
}

.payment-modal {
    width: min(640px, calc(100vw - 36px));
    max-width: 640px;
    max-height: min(82dvh, 680px);
    overflow: auto;
    border-radius: 16px;
}
#paymentModal.modal-overlay,
#rewardModal.modal-overlay {
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    padding: 18px !important;
    overflow-y: auto !important;
}
.payment-modal-header { align-items: center; padding: 15px 17px 12px; }
.payment-modal-header h2 { margin: 2px 0 0; font-size: 20px; }
.payment-modal-header p:not(.section-kicker) { margin: 3px 0 0; font-size: 10px; line-height: 1.3; }
.account-plan-strip { margin: 0; padding: 0; }
.account-plan-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 12px; padding: 4px 0; }
.account-plan-controls > span { color: var(--text-muted); font: 500 11px/1.4 var(--type-ui); }
.account-plans-minimal { flex: 0 0 auto; width: auto; min-height: 32px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--text-muted); background: transparent; box-shadow: none; font: 600 11px/1.3 var(--type-ui); cursor: pointer; }
.account-plans-minimal:hover { color: var(--text-accent); border-color: var(--text-accent); }
.account-plans-minimal:focus-visible { outline: 2px solid var(--text-accent); outline-offset: 3px; }
.account-plan-strip p { margin: 6px 0; color: var(--text-muted); font: 500 11px/1.5 var(--type-ui); }
.account-plan-controls.hidden, .account-plans-minimal.hidden { display: none; }
.payment-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding: 12px 14px 14px; }
.payment-plan { display: grid; gap: 11px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--canvas-soft); box-shadow: none; }
.payment-plan-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.payment-plan-head strong { min-width: 0; color: var(--text-main); font: 800 13px/1.2 var(--type-ui); }
.payment-plan-tier { display: inline-flex; align-items: center; justify-content: center; min-height: 19px; padding: 2px 6px; border: 1px solid currentColor; border-radius: 999px; font: 900 8px/1 var(--type-ui); letter-spacing: .06em; }
.payment-plan-tier.tier-premium { color: #285985; background: color-mix(in srgb, #b9d2eb 45%, var(--panel-surface)); }
.payment-plan-tier.tier-plus { color: #5c3a9c; background: color-mix(in srgb, #cab9ef 48%, var(--panel-surface)); }
.payment-plan-tier.tier-vip { color: #7a5707; background: color-mix(in srgb, #e5c354 42%, var(--panel-surface)); }
.payment-plan-value { display: grid; gap: 4px; }
.payment-plan-price { color: var(--text-accent); font: 900 21px/1 var(--type-ui); }
.payment-plan small { min-height: 0; color: var(--text-muted); font: 650 9px/1.25 var(--type-ui); }
.payment-plan-button { min-height: 34px; padding: 7px 9px; font-size: 10px; }
.payment-plans-loading { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 92px; color: var(--text-muted); font: 700 10px/1.3 var(--type-ui); }
.payment-plans-loading i { width: 18px; height: 18px; border: 2px solid var(--line); border-top-color: var(--text-accent); border-radius: 50%; animation: payment-loading-spin .65s linear infinite; }
@keyframes payment-loading-spin { to { transform: rotate(360deg); } }
.payment-status { margin: 0 14px 14px; padding: 9px 10px; border-radius: 8px; color: var(--text-muted); background: var(--canvas-soft); text-align: center; font-size: 10px; }
.payment-status.success-message { color: var(--success); }
.payment-pix { display: grid; justify-items: center; gap: 10px; padding: 12px 18px 4px; }
.payment-pix.hidden { display: none; }
.payment-pix-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; width: min(330px, 100%); color: var(--text-main); }
.payment-pix-summary span { min-width: 0; overflow: hidden; font: 800 12px/1.3 var(--type-ui); text-overflow: ellipsis; white-space: nowrap; }
.payment-pix-summary strong { flex: 0 0 auto; color: var(--text-accent); font: 900 18px/1 var(--type-ui); }
.payment-pix-qr-frame { display: grid; place-items: center; width: 230px; height: 230px; padding: 5px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 6px 22px rgb(16 47 80 / 9%); }
.payment-pix-qr-frame img { display: block; width: 220px; height: 220px; object-fit: contain; }
.payment-pix-code-label { width: min(330px, 100%); color: var(--text-muted); font: 800 9px/1.2 var(--type-ui); letter-spacing: .06em; text-transform: uppercase; }
.payment-pix-code { box-sizing: border-box; width: min(330px, 100%); min-height: 62px; padding: 8px 9px; resize: none; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: 8px; color: var(--text-main); background: var(--canvas-soft); font: 600 9px/1.35 'JetBrains Mono', monospace; }
.payment-pix-code:focus { border-color: var(--text-accent); outline: 2px solid color-mix(in srgb, var(--text-accent) 18%, transparent); }
.payment-pix-actions { display: grid; grid-template-columns: 1fr; gap: 6px; width: min(330px, 100%); }
.payment-pix-actions .ui-button { width: 100%; min-height: 36px; }
.payment-pix-back { padding: 4px 8px; border: 0; color: var(--text-muted); background: transparent; cursor: pointer; font: 700 9px/1.3 var(--type-ui); text-decoration: underline; text-underline-offset: 3px; }
.payment-pix-back:hover { color: var(--text-accent); }

html[data-theme="dark"] .payment-plan-tier.tier-premium { color: #c9e1f5; background: #203b55; }
html[data-theme="dark"] .payment-plan-tier.tier-plus { color: #e2d6ff; background: #43336a; }
html[data-theme="dark"] .payment-plan-tier.tier-vip { color: #ffe69a; background: #5a471b; }

/* v4.37 · premiação individual */
.reward-modal {
    position: relative;
    width: min(380px, calc(100vw - 36px));
    max-height: calc(100dvh - 36px);
    overflow-y: auto;
    padding: 27px 25px 23px;
    border-color: color-mix(in srgb, #d9a92e 58%, var(--line));
    border-radius: 18px;
    text-align: center;
    animation: reward-arrive .52s cubic-bezier(.2, .9, .25, 1.15);
}
.reward-close { position: absolute; z-index: 3; top: 10px; right: 10px; color: var(--text-main); background: var(--canvas-soft); border-color: var(--line); }
.reward-medal { position: relative; z-index: 2; display: grid; place-items: center; width: 68px; height: 68px; margin: 1px auto 13px; color: #fff7cf; border: 5px solid #f2cf67; border-radius: 50%; background: linear-gradient(145deg, #bd7416, #f0b82e); box-shadow: 0 10px 28px rgba(157, 104, 18, .28); animation: reward-medal-pulse .75s .2s both; }
#rewardModal.is-contributor-reward .reward-medal {
    box-sizing:border-box;
    width:78px;
    min-width:78px;
    max-width:78px;
    height:78px;
    min-height:78px;
    max-height:78px;
    padding:3px;
    margin:0 auto 12px;
    overflow:hidden;
    border-width:2px;
    border-radius:16px;
    background:#fff;
}
#rewardModal.is-contributor-reward .reward-medal img {
    display:block;
    width:70px !important;
    max-width:70px !important;
    height:70px !important;
    max-height:70px !important;
    margin:0 !important;
    object-fit:contain;
    border-radius:12px;
}
#rewardModal.is-contributor-reward .reward-message { position:relative; z-index:2; margin-top:7px; }
@media (max-width:420px) {
    #rewardModal.is-contributor-reward .reward-medal { width:68px; min-width:68px; max-width:68px; height:68px; min-height:68px; max-height:68px; }
    #rewardModal.is-contributor-reward .reward-medal img { width:60px !important; max-width:60px !important; height:60px !important; max-height:60px !important; }
}
.reward-medal::before, .reward-medal::after { content: ""; position: absolute; bottom: -24px; width: 17px; height: 28px; z-index: -1; background: #a52835; }
.reward-medal::before { left: 9px; transform: rotate(10deg); }
.reward-medal::after { right: 9px; transform: rotate(-10deg); }
.reward-medal span { font-size: 29px; line-height: 1; }
.reward-kicker { display: flex; justify-content: center; align-items: center; gap: 7px; margin: 0 0 6px; }
.reward-modal h2 { margin: 0; color: var(--text-main); font: 900 27px/1.1 var(--type-heading); }
.reward-message { margin: 10px auto 14px; color: var(--text-muted); font: 600 12px/1.55 var(--type-ui); }
.reward-plan { display: grid; gap: 3px; margin: 0 0 15px; padding: 10px 12px; border: 1px solid color-mix(in srgb, #d9a92e 48%, var(--line)); border-radius: 10px; background: color-mix(in srgb, #eacb6d 14%, var(--canvas-soft)); }
.reward-plan span { color: var(--text-muted); font: 700 9px/1.2 var(--type-ui); letter-spacing: .1em; text-transform: uppercase; }
.reward-plan strong { color: #9b6811; font: 900 16px/1.25 var(--type-ui); }
.reward-continue { width: 100%; min-height: 38px; }
.reward-confetti i { position: absolute; top: -18px; width: 7px; height: 14px; border-radius: 2px; animation: reward-confetti 1.8s ease-out both; }
.reward-confetti i:nth-child(1) { left: 12%; background: #d12f43; transform: rotate(18deg); }
.reward-confetti i:nth-child(2) { left: 28%; background: #f2bd35; animation-delay: .12s; }
.reward-confetti i:nth-child(3) { left: 43%; background: #2d76bd; animation-delay: .04s; }
.reward-confetti i:nth-child(4) { left: 59%; background: #26a875; animation-delay: .18s; }
.reward-confetti i:nth-child(5) { left: 75%; background: #8557b9; animation-delay: .08s; }
.reward-confetti i:nth-child(6) { left: 88%; background: #e27c26; animation-delay: .22s; }
.award-action { color: #8b6214 !important; border-color: color-mix(in srgb, #d9a92e 72%, var(--line)) !important; }
html[data-theme="dark"] .reward-plan strong { color: #f5d477; }

@keyframes reward-arrive {
    from { opacity: 0; transform: translateY(16px) scale(.9); }
    to { opacity: 1; transform: none; }
}
@keyframes reward-medal-pulse {
    0% { opacity: 0; transform: rotate(-12deg) scale(.55); }
    70% { transform: rotate(3deg) scale(1.08); }
    100% { opacity: 1; transform: none; }
}
@keyframes reward-confetti {
    0% { opacity: 0; translate: 0 0; }
    15% { opacity: 1; }
    100% { opacity: 0; translate: 0 310px; rotate: 210deg; }
}

@media (prefers-reduced-motion: reduce) {
    .reward-modal, .reward-medal, .reward-confetti i, .payment-plans-loading i { animation: none; }
}

@media (max-width: 680px) {
    .payment-modal { width: min(440px, calc(100vw - 28px)); max-height: 82dvh; }
    .payment-plans { grid-template-columns: 1fr; padding: 10px 12px 12px; }
    .payment-plan { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 10px; padding: 11px 12px; }
    .payment-plan-head { grid-column: 1 / -1; }
    .payment-plan-button { grid-column: 2; grid-row: 2; min-width: 84px; }
    .payment-plan-value { grid-column: 1; grid-row: 2; }
    .payment-pix { padding: 10px 12px 3px; }
    .payment-pix-qr-frame { width: 202px; height: 202px; }
    .payment-pix-qr-frame img { width: 192px; height: 192px; }
    .reward-modal { width: min(360px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); padding: 25px 20px 20px; }
}

.signup-honeypot {
    position: fixed !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.access-notice.is-trial {
    border-color: color-mix(in srgb, #b57a00 42%, var(--line));
    background: color-mix(in srgb, #f4b942 10%, var(--panel-surface));
}

.access-notice.is-trial .access-notice-icon {
    color: #755000;
    background: color-mix(in srgb, #f4b942 22%, var(--panel-surface));
}

.access-notice.is-blocked {
    border-color: color-mix(in srgb, var(--signal) 42%, var(--line));
    background: color-mix(in srgb, var(--signal) 7%, var(--panel-surface));
}

.access-notice.is-blocked .access-notice-icon {
    color: var(--signal);
    background: color-mix(in srgb, var(--signal) 11%, var(--panel-surface));
}

.access-blocked-card {
    max-width: 720px;
    margin: 20px auto;
    padding: 28px;
    text-align: center;
    border: 1px solid color-mix(in srgb, var(--signal) 36%, var(--line));
    border-radius: 14px;
    background: var(--panel-surface);
    box-shadow: var(--card-shadow);
}

.access-blocked-card.hidden {
    display: none;
}

.access-blocked-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 12px;
    border-radius: 50%;
    color: var(--signal);
    background: color-mix(in srgb, var(--signal) 10%, var(--panel-surface));
    font-size: 24px;
}

.access-blocked-card h2 {
    margin: 4px 0 9px;
    color: var(--text-main);
}

.access-blocked-card > p:not(.section-kicker) {
    max-width: 590px;
    margin: 0 auto 14px;
    color: var(--text-muted);
    line-height: 1.6;
}

.access-blocked-note {
    max-width: 600px;
    margin: 0 auto 16px;
    padding: 10px 12px;
    border-radius: 9px;
    color: var(--text-main);
    background: var(--canvas-soft);
    font: 600 11px/1.5 var(--type-ui);
}

.access-contact-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 auto 18px;
}

.access-contact-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text-accent);
    background: var(--canvas-soft);
    font: 700 10px/1.2 var(--type-ui);
    text-decoration: none;
}

.access-contact-links a:hover {
    border-color: var(--text-accent);
}

.answer-row.no-elimination {
    grid-template-columns: minmax(0, 1fr);
}

.answer-tools-hint.without-scissors > span {
    color: var(--success);
}

@media (max-width: 600px) {
    .access-notice {
        margin: 8px 0;
        padding: 9px 10px;
    }

    .access-blocked-card {
        margin: 12px 0;
        padding: 20px 14px;
    }

    .access-contact-links {
        display: grid;
        grid-template-columns: 1fr;
    }
}

.admin-status-pill.status-teste {
    color: #735300;
    border-color: #c79b28;
    background: #fff1bd;
}

.admin-status-pill.status-teste_expirado {
    color: var(--danger);
    border-color: color-mix(in srgb, var(--danger) 45%, var(--line));
    background: var(--danger-surface);
}

:root[data-theme="dark"] .admin-status-pill.status-teste {
    color: #ffd978;
    border-color: #8d6d22;
    background: #3c321a;
}

/* v4.9 · gestão administrativa de planos e pagamentos */
.admin-responsibility-filter > span { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; }
.admin-responsibility-filter input { width: auto; }
.admin-plan-list { display: grid; gap: 9px; }
.admin-plan-card, .admin-payment-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas-soft); }
.admin-plan-card > div:first-child, .admin-payment-main { display: grid; gap: 3px; min-width: 0; }
.admin-plan-card strong, .admin-payment-card strong { color: var(--text-main); }
.admin-plan-card span, .admin-plan-card small, .admin-payment-card span, .admin-payment-card small { color: var(--text-muted); font: 600 10px/1.4 var(--type-ui); }
.admin-plan-card.is-inactive { opacity: .68; }
.admin-payment-card.status-approved { border-left: 4px solid var(--success); }
.admin-payment-card.status-pendente { border-left: 4px solid var(--signal); }
.admin-payment-card.status-cancelado { border-left: 4px solid var(--danger); }
.admin-payment-card > .data-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.admin-status-pill.status-approved { color: var(--success); border-color: var(--success); background: var(--success-surface); }
.admin-status-pill.status-cancelado { color: var(--danger); border-color: var(--danger); background: var(--danger-surface); }
.admin-payment-action-grid { align-items: end; }
#paymentActionStatus a { color: var(--text-accent); font-weight: 800; }

@media (max-width: 680px) {
    .admin-plan-card, .admin-payment-card { align-items: stretch; flex-direction: column; }
    .admin-plan-card .data-actions, .admin-payment-card > .data-actions, .admin-payment-card .ui-button { width: 100%; }
}
