.paid-paywall { padding: 24px 20px; border: 1px solid rgba(210, 177, 101, .48); border-radius: 10px; background: linear-gradient(160deg, rgba(33, 29, 22, .98), rgba(13, 14, 13, .98)); box-shadow: 0 20px 60px rgba(0, 0, 0, .28); }
.paid-paywall h2, .paid-dialog h2 { margin: 7px 0 10px; }
.paid-kicker { color: #d5b76f; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.paid-intro, .paid-disclosure, .paid-demo-note { color: #cfc6b4; line-height: 1.7; }
.paid-preview-list { display: grid; gap: 9px; margin: 18px 0; padding: 0; list-style: none; }
.paid-preview-list li { padding: 12px 13px; border: 1px solid rgba(222, 199, 147, .16); border-radius: 8px; background: rgba(255, 255, 255, .035); }
.paid-preview-list span { display: block; color: #f4eedf; font-weight: 800; }
.paid-preview-list small { display: block; margin-top: 4px; color: #aaa18f; line-height: 1.55; }
.paid-order-summary, .paid-order-line { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-top: 1px solid rgba(226, 203, 151, .16); }
.paid-order-summary strong, .paid-order-line strong { color: #d8bb75; }
.paid-unlock-button { margin-top: 4px; }
.paid-entry-gate { margin: 18px 0; text-align: left; }
.paid-entry-gate > .primary { display: flex; align-items: center; justify-content: center; margin-top: 4px; text-decoration: none; }
.paid-access-confirmed { color: #d9c487; }
.paid-access-state { text-align: center; }
.paid-access-spinner { width: 34px; height: 34px; margin: 22px auto; border: 2px solid rgba(216,187,117,.2); border-top-color: #d8bb75; border-radius: 50%; animation: paid-access-spin .8s linear infinite; }
@keyframes paid-access-spin { to { transform: rotate(360deg); } }
.paid-disclosure { display: block; margin-top: 12px; font-size: 11px; }
.paid-modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; overflow: auto; padding: 18px; background: rgba(0, 0, 0, .82); backdrop-filter: blur(8px); }
.paid-dialog { position: relative; width: min(100%, 430px); max-height: 92svh; overflow: auto; padding: 26px 20px 22px; border: 1px solid rgba(210, 177, 101, .42); border-radius: 12px; color: #f4eedf; background: #151612; box-shadow: 0 28px 80px rgba(0, 0, 0, .58); }
.paid-close { position: absolute; top: 7px; right: 7px; width: 40px; height: 40px; color: #cfc6b4; background: transparent; font-size: 27px; }
.paid-order-line span { color: #aaa18f; }
.paid-demo-note { margin: 15px 0; padding: 12px 13px; border-left: 3px solid #9f854f; background: rgba(255, 255, 255, .04); font-size: 12px; }
.paid-error { margin: 12px 0; color: #f3aaa1; line-height: 1.6; }
.paid-field { display: grid; gap: 7px; margin-top: 14px; color: #d8d0bf; font-size: 13px; }
.paid-field input { width: 100%; min-height: 48px; padding: 11px 12px; border: 1px solid rgba(226, 203, 151, .28); border-radius: 8px; color: #f4eedf; background: rgba(255, 255, 255, .05); font: inherit; }
.paid-field input:focus { outline: 2px solid rgba(210, 177, 101, .46); outline-offset: 2px; }
.paid-purchase-link { display: block; margin-top: 14px; color: #d8bb75; text-align: center; text-decoration: none; }
.paid-purchase-steps { display: grid; gap: 10px; margin: 18px 0; padding-left: 23px; color: #d8d0bf; line-height: 1.65; }
.paid-section-tag { display: inline-block; margin-bottom: 8px; color: #8b6d32; font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.paid-plan { margin: 10px 0 0; padding-left: 20px; color: inherit; line-height: 1.75; }
@media (max-width: 360px) { .paid-paywall, .paid-dialog { padding-left: 16px; padding-right: 16px; } }
