/* Account area (orders, wallet, referrals, promoter, settings), the public
   referral page and the contact form. Workstream C. Uses the tokens from
   app.css, the blue band / clay card from pages.css and the form parts from
   auth.css. Logical properties only, so RTL works without overrides. */

/* ---------- Frame ---------- */

.account-page .info-hero-title { overflow-wrap: anywhere; }
/* Moves to its own line when it doesn't fit, and only breaks inside if it is wider than the screen. */
.account-email { display: inline-block; max-width: 100%; overflow-wrap: anywhere; font-weight: 700; color: #fff; }

.account-body { display: grid; gap: var(--space-5); }
.account-body > * { min-width: 0; }

/* Section tabs: one scrollable row of clay pills (never widens the page). */
.account-nav {
    margin-inline: calc(-1 * var(--gutter));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.account-nav::-webkit-scrollbar { display: none; }
.account-nav-list {
    display: flex;
    gap: var(--space-2);
    width: max-content;
    margin: 0;
    padding: var(--space-1) var(--gutter) var(--space-3);
    list-style: none;
}
.account-nav-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 48px;
    padding: 0 var(--space-4) 3px;
    border: var(--border) solid #fff;
    border-radius: 999px;
    background: var(--surface);
    box-shadow: var(--clay-sm);
    color: var(--blue-deep);
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
    transition: transform .2s var(--bounce), background-color .2s, color .2s, box-shadow .2s;
    -webkit-tap-highlight-color: transparent;
}
.account-nav-link:hover { background: var(--blue-tint); }
.account-nav-link:active { transform: translateY(2px); box-shadow: var(--clay-pressed); }
.account-nav-link[aria-current="page"] {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
    box-shadow: 0 10px 18px -10px rgba(22, 119, 242, .9), inset 0 -4px 0 rgba(0, 0, 0, .18);
}
.account-nav-link:focus-visible { border-radius: 999px; }
@media (min-width: 760px) {
    .account-nav { margin-inline: 0; overflow: visible; }
    .account-nav-list { flex-wrap: wrap; width: auto; padding-inline: 0; }
}

.account-flash { display: grid; gap: var(--space-3); }
.account-flash:empty { display: none; }
.account-flash .notice { font-size: var(--text-base); }

.account-verify-body { display: grid; gap: var(--space-1); }
.account-verify-body form { margin-top: var(--space-1); }
.account-verify-button {
    min-height: 44px;
    padding: 0 var(--space-4) 2px;
    border: 0;
    border-radius: var(--r-sm);
    background: #fff;
    color: var(--amber);
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 12px -8px rgba(138, 82, 0, .6), inset 0 -3px 0 rgba(0, 0, 0, .06);
}
.account-verify-button:hover { background: #FFFBEF; }

/* ---------- Cards ---------- */

.account-card { display: grid; gap: var(--space-4); }
.account-card > * { min-width: 0; }

.account-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}
.account-title {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font: 600 var(--text-2xl)/1.25 var(--font-display);
    color: var(--ink);
}
[dir="rtl"] .account-title { font-weight: 700; line-height: 1.5; }
.account-subtitle { font: 700 var(--text-lg)/1.35 var(--font-ui); color: var(--ink); }
.account-text { color: var(--ink-2); line-height: 1.55; }
.account-note { color: var(--ink-2); font-size: var(--text-sm); line-height: 1.5; }
.account-empty-line {
    padding: var(--space-5) var(--space-4);
    border-radius: var(--r-md);
    background: var(--field);
    color: var(--ink-2);
    text-align: center;
}
.account-card-notice { font-size: var(--text-base); }
.account-card-notices:empty { display: none; }
.account-card-notices .auth-notice { margin-bottom: 0; }
.account-card-notices .auth-notice + .auth-notice { margin-top: var(--space-3); }

.account-count {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    padding-inline: var(--space-2);
    border-radius: 999px;
    background: var(--blue-tint);
    color: var(--blue-deep);
    font: 700 var(--text-sm)/1 var(--font-num);
    box-shadow: inset 0 -2px 0 rgba(16, 64, 150, .08);
}

/* ---------- Orders ---------- */

.account-orders {
    display: grid;
    gap: var(--space-3);
    margin: var(--space-1) 0 0;
    padding: 0;
    list-style: none;
}

/* The whole card is the link (stretched ::after); the invoice link sits above it. */
.account-order {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "title total"
        "meta meta"
        "status status";
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-4);
    border: var(--border) solid var(--blue-tint);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--clay-sm);
    color: var(--ink);
    transition: transform .2s var(--bounce), box-shadow .2s ease-out, background-color .2s, border-color .2s;
}
.account-order:hover { border-color: var(--blue-line); background: var(--field); }
.account-order:active { transform: translateY(2px); box-shadow: var(--clay-pressed); }
.account-order-link {
    grid-area: title;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.account-order-link::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-lg); }
.account-order-link:focus-visible { box-shadow: none; }
.account-order-link:focus-visible::after { box-shadow: var(--focus); }

.account-order-title {
    display: block;
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.account-order-total {
    grid-area: total;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--blue-deep);
    font: 700 var(--text-lg)/1.2 var(--font-num);
    white-space: nowrap;
}
.account-order-arrow { color: var(--blue); transform: rotate(-90deg); }
[dir="rtl"] .account-order-arrow { transform: rotate(90deg); }

.account-order-meta {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1) var(--space-3);
    color: var(--ink-2);
    font-size: var(--text-sm);
    font-weight: 500;
}
.account-order-operator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ink);
    font-weight: 700;
}
.account-order-operator::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--op, var(--blue));
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .15);
}
.account-order-ref { font-family: var(--font-num); font-weight: 700; letter-spacing: .03em; color: var(--blue-deep); }

.account-order-status {
    grid-area: status;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}
.account-invoice {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 var(--space-3) 2px;
    border-radius: var(--r-sm);
    background: var(--blue-tint);
    color: var(--blue-deep);
    font-size: var(--text-sm);
    font-weight: 700;
    text-decoration: none;
}
.account-invoice:hover { background: var(--sky); }

@media (min-width: 640px) {
    .account-order {
        grid-template-areas:
            "title total"
            "meta status";
        padding: var(--space-4) var(--space-5);
    }
    .account-order-status { justify-content: flex-end; }
}

/* Status pills for the GO-RECHARGE order statuses (base .status is in app.css). */
.account-page .status-pending,
.account-page .status-unknown { background: var(--amber-tint); color: var(--amber); }
.account-page .status-paid,
.account-page .status-delivering { background: var(--blue-tint); color: var(--blue-deep); }
.account-page .status-delivered,
.account-page .status-reward-active,
.account-page .status-payout-paid { background: var(--green-tint); color: var(--green); }
.account-page .status-canceled,
.account-page .status-refunded,
.account-page .status-failed { background: var(--red-tint); color: var(--red); }
.account-page .status-reward-used,
.account-page .status-reward-expired,
.account-page .status-paused { background: #EEF1F6; color: var(--ink-2); }
.account-page .status-payout-requested { background: var(--amber-tint); color: var(--amber); }
.account-page .status-payout-rejected { background: var(--red-tint); color: var(--red); }

/* Empty state */
.account-empty {
    display: grid;
    justify-items: center;
    gap: var(--space-3);
    padding: var(--space-6) 0 var(--space-2);
    text-align: center;
}
.account-empty-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: var(--space-1);
    border-radius: var(--r-lg);
    background: var(--sun);
    color: #7A4B00;
    box-shadow: 0 12px 20px -12px rgba(138, 82, 0, .6), inset 0 -5px 0 rgba(0, 0, 0, .08), inset 0 4px 6px rgba(255, 255, 255, .8);
    transform: rotate(-6deg);
}
.account-empty-title { font: 600 var(--text-xl)/1.3 var(--font-display); color: var(--ink); }
[dir="rtl"] .account-empty-title { font-weight: 700; line-height: 1.5; }
.account-empty-text { max-width: 36ch; color: var(--ink-2); }
.account-empty-button { margin-top: var(--space-2); }

/* Pager */
.pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding-top: var(--space-2);
}
.pager-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 44px;
    padding: 0 var(--space-4) 2px;
    border: var(--border) solid var(--blue-tint);
    border-radius: var(--r-sm);
    background: var(--surface);
    box-shadow: var(--clay-sm);
    color: var(--blue-deep);
    font-weight: 700;
    text-decoration: none;
}
.pager-link:hover { background: var(--blue-tint); }
.pager-link.is-disabled { opacity: .45; box-shadow: none; pointer-events: none; }
.pager-status { color: var(--ink-2); font-size: var(--text-sm); font-weight: 700; }
.pager-prev { transform: rotate(90deg); }
.pager-next { transform: rotate(-90deg); }
[dir="rtl"] .pager-prev { transform: rotate(-90deg); }
[dir="rtl"] .pager-next { transform: rotate(90deg); }

/* Below the orders card */
.account-extra { display: grid; gap: var(--space-5); }
.account-extra .notice { font-size: var(--text-base); }
.account-track-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 700;
    color: #1A4890;
}
.account-logout { display: flex; margin-top: var(--space-1); }
.account-logout .button { width: 100%; }
[dir="rtl"] .icon-logout { transform: scaleX(-1); }
@media (min-width: 640px) {
    .account-logout { justify-content: center; }
    .account-logout .button { width: auto; }
}

/* ---------- Settings ---------- */

.account-form { gap: var(--space-5); }
.account-form-submit { justify-self: start; }
@media (max-width: 479px) { .account-form-submit { width: 100%; } }

.field-with-badge { position: relative; display: grid; gap: var(--space-2); }
.email-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-self: start;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: var(--text-sm);
    font-weight: 700;
}
.email-badge.is-verified { background: var(--green-tint); color: var(--green); }
.email-badge.is-unverified { background: var(--amber-tint); color: var(--amber); }

.account-subcard {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-2);
    padding: var(--space-4);
    border-radius: var(--r-md);
    background: var(--field);
    border: 2px dashed var(--line);
}
.account-subcard .button { width: 100%; }
@media (min-width: 640px) {
    .account-subcard { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .account-subcard .button { width: auto; }
}

button:disabled.button-primary,
.button-secondary:disabled { opacity: .6; cursor: not-allowed; transform: none; }

/* ---------- Wallet ---------- */

.wallet-balances { display: grid; gap: var(--space-3); }
@media (min-width: 640px) {
    .wallet-balances.has-three { grid-template-columns: 1.3fr 1fr 1fr; }
}
.wallet-balance {
    display: grid;
    align-content: start;
    gap: var(--space-1);
    padding: var(--space-4) var(--space-5);
    border: 4px solid #fff;
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--clay);
    min-width: 0;
}
.wallet-balance-main {
    border-color: rgba(255, 255, 255, .25);
    background: var(--dots), var(--blue-block);
    color: #fff;
    box-shadow: 0 18px 32px -16px rgba(16, 64, 150, .6), inset 0 -6px 0 rgba(0, 0, 0, .12);
}
.wallet-balance-label { color: var(--ink-2); font-size: var(--text-sm); font-weight: 700; }
.wallet-balance-amount { color: var(--blue-deep); font: 700 var(--text-2xl)/1.15 var(--font-num); overflow-wrap: anywhere; }
.wallet-balance-hint { color: var(--ink-2); font-size: var(--text-sm); }
.wallet-balance-main .wallet-balance-label,
.wallet-balance-main .wallet-balance-hint { color: var(--blue-tint); }
.wallet-balance-main .wallet-balance-amount { color: #fff; font-size: var(--text-display); }
.wallet-balance-link {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #fff;
    font-weight: 700;
}

.wallet-presets { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.wallet-preset {
    min-width: 72px;
    min-height: 48px;
    padding: 0 var(--space-4) 3px;
    border: var(--border) solid var(--blue-tint);
    border-radius: var(--r-sm);
    background: var(--surface);
    box-shadow: var(--clay-sm);
    color: var(--blue-deep);
    font: 700 var(--text-lg)/1 var(--font-num);
    cursor: pointer;
    transition: transform .2s var(--bounce), background-color .15s, border-color .15s;
    -webkit-tap-highlight-color: transparent;
}
.wallet-preset:hover { background: var(--blue-tint); }
.wallet-preset:active { transform: translateY(2px); }
.wallet-preset[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-tint); }

.account-form .payment-logos { justify-content: center; }

/* Ledger rows (wallet activity, payouts) */
.ledger { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.ledger-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 2px solid var(--bg);
}
.ledger-row:last-child { border-bottom: 0; }
.ledger-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
}
.ledger-icon.is-in { background: var(--green-tint); color: var(--green); }
.ledger-icon.is-out { background: var(--blue-tint); color: var(--blue-deep); }
.ledger-main { display: grid; gap: 2px; min-width: 0; }
.ledger-title { font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.ledger-meta { display: flex; flex-wrap: wrap; gap: 0 var(--space-3); color: var(--ink-2); font-size: var(--text-sm); }
.ledger-amount { font: 700 var(--text-base)/1.2 var(--font-num); white-space: nowrap; }
.ledger-amount.is-in { color: var(--green); }
.ledger-amount.is-out { color: var(--ink); }

/* ---------- Referrals ---------- */

.share-box { display: grid; gap: var(--space-2); }
.share-input { font-size: var(--text-base); text-overflow: ellipsis; }
.share-copy { min-height: 52px; }
@media (min-width: 560px) {
    .share-box { grid-template-columns: minmax(0, 1fr) auto; }
}
.button.is-copied { background: var(--green); }
.share-code { color: var(--ink-2); font-size: var(--text-sm); }
.share-buttons { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.share-whatsapp .icon { color: #128C7E; }
.share-telegram .icon { color: #229ED9; }

.ref-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.ref-stat {
    display: grid;
    gap: var(--space-1);
    padding: var(--space-4) var(--space-2);
    border-radius: var(--r-md);
    text-align: center;
    box-shadow: var(--clay-sm);
}
.ref-stat-sky { background: var(--sky); }
.ref-stat-mint { background: var(--mint); }
.ref-stat-sun { background: var(--sun); }
.ref-stat-value { color: var(--ink); font: 700 var(--text-3xl)/1 var(--font-num); }
.ref-stat-label { color: var(--ink); font-size: var(--text-sm); font-weight: 700; line-height: 1.3; }

.reward-list { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.reward-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-3);
    border-radius: var(--r-md);
    background: var(--field);
}
.reward-row .reward-status { grid-column: 2; justify-self: start; }
@media (min-width: 480px) {
    .reward-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .reward-row .reward-status { grid-column: auto; }
}
.reward-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--sun);
    color: #7A4B00;
}
.reward-row.is-used .reward-icon,
.reward-row.is-expired .reward-icon { background: #EEF1F6; color: var(--ink-2); }
.reward-main { display: grid; gap: 2px; min-width: 0; }
.reward-title { font-weight: 700; }
.reward-meta { color: var(--ink-2); font-size: var(--text-sm); }

.ref-steps { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.ref-step { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.ref-step-number {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    font: 700 var(--text-lg)/1 var(--font-num);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .18);
}
.ref-step-body { display: grid; gap: 2px; padding-top: 6px; }
.ref-step-title { font-weight: 700; }
.ref-step-text { color: var(--ink-2); }

.refer-cta-buttons { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.refer-cta-buttons .button { flex: 1 1 180px; }
.refer-note { text-align: center; }

/* ---------- Promoter ---------- */

.code-list { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.code-row {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
    border: var(--border) solid var(--blue-tint);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--clay-sm);
}
.code-row.is-paused { background: var(--field); }
@media (min-width: 560px) {
    .code-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
}
.code-main { display: grid; gap: var(--space-1); min-width: 0; }
.code-name { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.code-value { font: 700 var(--text-xl)/1.2 var(--font-num); letter-spacing: .06em; color: var(--blue-deep); overflow-wrap: anywhere; }
.code-meta { display: flex; flex-wrap: wrap; gap: 0 var(--space-3); color: var(--ink-2); font-size: var(--text-sm); }
.code-side { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.code-discount {
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--mint);
    color: #075C41;
    font-size: var(--text-sm);
    font-weight: 700;
}

/* ---------- Contact form (on /contact) ---------- */

.contact-form-card { display: grid; gap: var(--space-5); margin-bottom: var(--space-5); }
.contact-form-card > * { min-width: 0; }
.contact-form-head { display: flex; align-items: flex-start; gap: var(--space-3); }
.contact-form-icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 52px;
    height: 52px;
    border-radius: var(--r-md);
    background: var(--blue-tint);
    color: var(--blue);
    box-shadow: inset 0 -4px 0 rgba(16, 64, 150, .08);
}
.contact-form-title { font: 600 var(--text-2xl)/1.25 var(--font-display); color: var(--ink); }
[dir="rtl"] .contact-form-title { font-weight: 700; line-height: 1.5; }
.contact-form-text { margin-top: var(--space-1); color: var(--ink-2); }
.contact-form-grid { display: grid; gap: var(--space-5); }
@media (min-width: 640px) {
    .contact-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.contact-form-sent { font-size: var(--text-base); }
.contact-form-or { margin: 0 0 var(--space-3); color: var(--ink-2); font-weight: 700; text-align: center; }
/* Honeypot: clipped away, not display:none (some bots skip hidden fields). */
.contact-hp {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    opacity: 0;
}
