/**
 * Prakriti Rewards — Design System
 * Aligns with tourm theme palette.
 */

/* Design tokens */
:root {
	--pp-deep:        #123f2a;
	--pp-deep-2:      #1d7f5f;
	--pp-action:      #7cb33c;
	--pp-action-2:    #5b8f24;
	--pp-action-3:    #4f861f;
	--pp-cream:       #f5f9ef;
	--pp-card:        #ffffff;
	--pp-card-2:      #f0faf5;
	--pp-eco-bg:      #eaf4dd;
	--pp-text:        #355343;
	--pp-muted:       #587062;
	--pp-muted-2:     #3f5d4d;
	--pp-border:      #cde8dc;
	--pp-border-2:    #e3efe8;
	--pp-danger:      #c62828;
	--pp-radius:      14px;
	--pp-radius-sm:   8px;
	--pp-radius-pill: 999px;
	--pp-shadow:      0 1px 3px rgba(18,63,42,.06), 0 4px 16px rgba(18,63,42,.06);
	--pp-shadow-lg:   0 8px 24px rgba(18,63,42,.10);
	--pp-fs-xs:       12px;
	--pp-fs-sm:       13px;
	--pp-fs-md:       15px;
	--pp-fs-lg:       18px;
	--pp-fs-xl:       24px;
	--pp-fs-2xl:      32px;
	--pp-fs-3xl:      44px;
}

/* Page wrap */
.pp-page{max-width:1080px;margin:0 auto;padding:24px 16px;color:var(--pp-text);}
.pp-page__header{margin-bottom:24px;}
.pp-page__title{font-size:var(--pp-fs-2xl);color:var(--pp-deep);margin:0 0 8px;letter-spacing:-.01em;font-weight:700;}
.pp-page__sub{color:var(--pp-muted);font-size:var(--pp-fs-md);margin:0;}

/* Reusable card */
.pp-card{background:var(--pp-card);border:1px solid var(--pp-border);border-radius:var(--pp-radius);padding:24px;box-shadow:var(--pp-shadow);}
.pp-card + .pp-card{margin-top:20px;}
.pp-card__title{font-size:var(--pp-fs-lg);color:var(--pp-deep);margin:0 0 4px;font-weight:600;}
.pp-card__sub{color:var(--pp-muted);font-size:var(--pp-fs-sm);margin:0 0 16px;}

.pp-grid{display:grid;gap:20px;}
.pp-grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.pp-grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}

/* Stat tile */
.pp-stat{display:flex;flex-direction:column;gap:4px;}
.pp-stat__num{font-size:var(--pp-fs-3xl);font-weight:700;color:var(--pp-deep);line-height:1;letter-spacing:-.02em;}
.pp-stat__label{font-size:var(--pp-fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--pp-muted);font-weight:600;}

/* Tier badge */
.pp-tier{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--pp-radius-pill);font-size:var(--pp-fs-sm);font-weight:600;color:#fff;background:var(--pp-action-2);box-shadow:0 2px 6px rgba(91,143,36,.25);}
.pp-tier::before{content:"";width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.85);}
.pp-tier-sprout{background:#9ccc65;}
.pp-tier-sapling{background:#7cb33c;}
.pp-tier-grove{background:#5b8f24;}
.pp-tier-forest{background:#2e7d32;}
.pp-tier-guardian{background:#123f2a;}

/* Progress */
.pp-progress{height:10px;background:var(--pp-border-2);border-radius:var(--pp-radius-pill);overflow:hidden;margin:16px 0 8px;}
.pp-progress__bar{height:100%;background:linear-gradient(90deg,var(--pp-action),var(--pp-action-3));border-radius:var(--pp-radius-pill);transition:width .4s ease;}
.pp-progress__text{font-size:var(--pp-fs-sm);color:var(--pp-muted);margin:0;}

/* Forms / inputs */
.pp-input,.pp-select,.pp-textarea{width:100%;padding:11px 14px;border:1px solid var(--pp-border);border-radius:var(--pp-radius-sm);background:#fff;font:inherit;color:var(--pp-text);transition:border-color .15s,box-shadow .15s;}
.pp-input:focus,.pp-select:focus,.pp-textarea:focus{outline:none;border-color:var(--pp-action-2);box-shadow:0 0 0 3px rgba(124,179,60,.15);}
.pp-textarea{min-height:96px;resize:vertical;}
.pp-label{display:block;font-size:var(--pp-fs-sm);font-weight:600;color:var(--pp-deep);margin-bottom:6px;}
.pp-help{font-size:var(--pp-fs-xs);color:var(--pp-muted);margin:6px 0 0;}

/* Buttons */
.pp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:0;border-radius:var(--pp-radius-sm);font-weight:600;font-size:var(--pp-fs-md);cursor:pointer;transition:transform .1s,box-shadow .15s,background .15s;text-decoration:none;}
.pp-btn--primary{background:var(--pp-action-2);color:#fff;box-shadow:0 2px 8px rgba(91,143,36,.25);}
.pp-btn--primary:hover{background:var(--pp-action-3);transform:translateY(-1px);box-shadow:0 4px 12px rgba(91,143,36,.3);}
.pp-btn--ghost{background:transparent;color:var(--pp-deep);border:1px solid var(--pp-border);}
.pp-btn--ghost:hover{background:var(--pp-card-2);border-color:var(--pp-action-2);}
.pp-btn[disabled]{opacity:.6;cursor:not-allowed;transform:none;}

/* Inline form layout */
.pp-form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;}
.pp-form-row .pp-input{max-width:200px;}

/* Messages */
.pp-msg{margin-top:12px;padding:10px 14px;border-radius:var(--pp-radius-sm);font-size:var(--pp-fs-sm);display:none;}
.pp-msg.success{display:block;background:#e8f6e0;color:var(--pp-action-3);border:1px solid #b9d893;}
.pp-msg.error{display:block;background:#fdecea;color:var(--pp-danger);border:1px solid #f5c6c1;}
.pp-msg.info{display:block;background:#eef9ee;color:var(--pp-deep);border:1px solid var(--pp-border);}

/* Tables / lists */
.pp-table{width:100%;border-collapse:collapse;font-size:var(--pp-fs-sm);}
.pp-table thead th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--pp-border);color:var(--pp-deep);font-weight:600;background:var(--pp-card-2);}
.pp-table tbody td{padding:12px;border-bottom:1px solid var(--pp-border-2);color:var(--pp-text);}
.pp-table tbody tr:last-child td{border-bottom:0;}
.pp-table code{background:var(--pp-eco-bg);padding:3px 8px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em;color:var(--pp-action-3);}
.pp-pill{display:inline-block;padding:3px 10px;border-radius:var(--pp-radius-pill);font-size:var(--pp-fs-xs);font-weight:600;}
.pp-pill--active{background:#e8f6e0;color:var(--pp-action-3);}
.pp-pill--used{background:#eef2f5;color:var(--pp-muted);}
.pp-pill--expired{background:#fdecea;color:var(--pp-danger);}

/* Empty state */
.pp-empty{text-align:center;padding:32px 16px;color:var(--pp-muted);}
.pp-empty__icon{font-size:48px;margin-bottom:12px;opacity:.6;}
.pp-empty__title{font-size:var(--pp-fs-lg);color:var(--pp-deep);font-weight:600;margin:0 0 6px;}
.pp-empty__text{font-size:var(--pp-fs-sm);margin:0;}

/* ───── Account Widget ───── */
.pp-widget{background:linear-gradient(135deg,var(--pp-card-2) 0%,var(--pp-cream) 100%);border:1px solid var(--pp-border);border-radius:var(--pp-radius);padding:24px;box-shadow:var(--pp-shadow);}
.pp-widget__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.pp-widget__balance .pp-stat__num{font-size:var(--pp-fs-3xl);}
.pp-widget__ledger{list-style:none;padding:0;margin:20px 0 0;}
.pp-widget__ledger li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--pp-border-2);font-size:var(--pp-fs-sm);}
.pp-widget__ledger li:first-child{border-top:0;padding-top:0;}
.pp-led__entry{color:var(--pp-text);}
.pp-led__pts{font-weight:600;font-variant-numeric:tabular-nums;}
.pp-led__pts.pp-pos{color:var(--pp-action-3);}
.pp-led__pts.pp-neg{color:var(--pp-danger);}
.pp-widget__empty{color:var(--pp-muted);font-style:italic;font-size:var(--pp-fs-sm);}

/* ───── Redeem ───── */
.pp-redeem__hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;flex-wrap:wrap;}
.pp-redeem__rate{display:flex;gap:24px;flex-wrap:wrap;font-size:var(--pp-fs-sm);color:var(--pp-muted);}
.pp-redeem__rate strong{color:var(--pp-deep);font-weight:600;}
.pp-redeem__preview{font-size:var(--pp-fs-md);color:var(--pp-muted);margin-top:8px;}
.pp-redeem__preview strong{color:var(--pp-action-3);font-size:var(--pp-fs-lg);}

/* ───── Referral ───── */
.pp-referral__code-row{display:flex;align-items:center;gap:12px;padding:16px;background:var(--pp-eco-bg);border-radius:var(--pp-radius-sm);margin:16px 0;}
.pp-referral__code-row code{font-size:var(--pp-fs-xl);font-weight:700;letter-spacing:.05em;color:var(--pp-deep);background:transparent;padding:0;}
.pp-referral__share-input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--pp-fs-sm);}
.pp-referral__copy{flex-shrink:0;}
.pp-referral__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 0;list-style:none;padding:0;}
.pp-referral__stats li{background:var(--pp-card-2);padding:14px;border-radius:var(--pp-radius-sm);text-align:center;border:1px solid var(--pp-border-2);}
.pp-referral__stats .pp-stat__num{font-size:var(--pp-fs-xl);}

/* ───── Leaderboard ───── */
.pp-leaderboard__list{counter-reset:rank;list-style:none;padding:0;margin:0;}
.pp-leaderboard__list li{counter-increment:rank;display:grid;grid-template-columns:48px 1fr auto auto;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--pp-border-2);}
.pp-leaderboard__list li:last-child{border-bottom:0;}
.pp-leaderboard__list li.is-me{background:var(--pp-eco-bg);border-radius:var(--pp-radius-sm);padding-left:8px;padding-right:8px;}
.pp-leaderboard__list li::before{content:counter(rank);font-weight:700;font-size:var(--pp-fs-lg);color:var(--pp-muted);text-align:center;font-variant-numeric:tabular-nums;}
.pp-leaderboard__list li:nth-child(1)::before{color:#c9a227;}
.pp-leaderboard__list li:nth-child(2)::before{color:#9ca3af;}
.pp-leaderboard__list li:nth-child(3)::before{color:#b45309;}
.pp-lb__name{font-weight:600;color:var(--pp-deep);}
.pp-lb__pts{font-weight:700;color:var(--pp-action-3);font-variant-numeric:tabular-nums;}

/* ───── Proof Upload ───── */
.pp-proof-form .pp-card{padding:0;}
.pp-file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;border:2px dashed var(--pp-border);border-radius:var(--pp-radius-sm);background:var(--pp-card-2);cursor:pointer;transition:border-color .15s,background .15s;}
.pp-file-drop:hover{border-color:var(--pp-action-2);background:var(--pp-eco-bg);}
.pp-file-drop input[type=file]{display:none;}
.pp-file-drop__icon{font-size:32px;color:var(--pp-action-2);}
.pp-file-drop__text{color:var(--pp-deep);font-weight:600;}
.pp-file-drop__hint{font-size:var(--pp-fs-xs);color:var(--pp-muted);}
.pp-file-drop[data-has-file="1"]{background:var(--pp-eco-bg);border-style:solid;border-color:var(--pp-action-2);}

/* ───── Pledge checkbox at checkout (override existing) ───── */
.pp-pledge-row{margin:16px 0;padding:16px;border:1px solid var(--pp-border);border-radius:var(--pp-radius-sm);background:var(--pp-card-2);}
.pp-pledge-row label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;}
.pp-pledge-row strong{color:var(--pp-deep);}
.pp-pledge-row small{color:var(--pp-muted);}

/* ───── Modal ───── */
.pp-modal[hidden]{display:none;}
.pp-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px;}
.pp-modal__overlay{position:absolute;inset:0;background:rgba(18,63,42,.55);backdrop-filter:blur(2px);}
.pp-modal__dialog{position:relative;background:#fff;border-radius:var(--pp-radius);box-shadow:var(--pp-shadow-lg);max-width:720px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:pp-modal-in .2s ease-out;}
@keyframes pp-modal-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.pp-modal__header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--pp-border);background:var(--pp-card-2);}
.pp-modal__title{margin:0;font-size:var(--pp-fs-xl);color:var(--pp-deep);font-weight:700;}
.pp-modal__close{background:none;border:0;font-size:28px;line-height:1;color:var(--pp-muted);cursor:pointer;padding:4px 10px;border-radius:6px;}
.pp-modal__close:hover{background:var(--pp-eco-bg);color:var(--pp-deep);}
.pp-modal__body{padding:24px;overflow-y:auto;flex:1;}
.pp-modal__footer{padding:16px 24px;border-top:1px solid var(--pp-border);background:var(--pp-card-2);display:flex;justify-content:flex-end;gap:12px;}
body.pp-modal-open{overflow:hidden;}

/* Terms-specific */
.pp-terms__section{margin-bottom:24px;}
.pp-terms__section:last-child{margin-bottom:0;}
.pp-terms__section h3{color:var(--pp-deep);font-size:var(--pp-fs-lg);margin:0 0 10px;font-weight:600;}
.pp-terms__section p{color:var(--pp-text);font-size:var(--pp-fs-sm);line-height:1.6;margin:0 0 8px;}
.pp-terms__section ul{padding-left:20px;color:var(--pp-text);font-size:var(--pp-fs-sm);line-height:1.7;}
.pp-terms__section ul li{margin-bottom:4px;}
.pp-terms__table{font-size:var(--pp-fs-sm);}
.pp-terms__table td:last-child{font-weight:600;color:var(--pp-action-3);white-space:nowrap;}
.pp-terms__tiers{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;}
.pp-terms__tiers li{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--pp-card-2);border-radius:var(--pp-radius-sm);}
.pp-terms__note{font-size:var(--pp-fs-xs);color:var(--pp-muted);font-style:italic;margin-top:8px;}

.pp-dashboard__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}

@media (max-width: 640px) {
	.pp-modal{padding:0;}
	.pp-modal__dialog{max-height:100vh;border-radius:0;}
}

/* ───── Inline tier badge (OTA travel post) ───── */
.pp-tier-inline{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 4px;border-radius:var(--pp-radius-pill);font-size:11px;font-weight:700;color:#fff;background:var(--pp-action-2);vertical-align:middle;margin-left:6px;letter-spacing:.03em;line-height:1.4;text-transform:uppercase;box-shadow:0 1px 3px rgba(18,63,42,.18);border:1px solid rgba(255,255,255,.15);}
.pp-tier-inline__icon{width:14px;height:14px;flex-shrink:0;display:inline-block;background:rgba(255,255,255,.95);border-radius:50%;padding:2px;color:var(--pp-deep);}
.pp-tier-inline__label{white-space:nowrap;}

/* Per-tier color */
.pp-tier-inline--sprout{background:linear-gradient(135deg,#a5d76e,#7cb33c);color:#1c3d0a;}
.pp-tier-inline--sprout .pp-tier-inline__icon{color:#4f861f;}

.pp-tier-inline--sapling{background:linear-gradient(135deg,#7cb33c,#5b8f24);}
.pp-tier-inline--sapling .pp-tier-inline__icon{color:#5b8f24;}

.pp-tier-inline--grove{background:linear-gradient(135deg,#5b8f24,#3f6f15);}
.pp-tier-inline--grove .pp-tier-inline__icon{color:#3f6f15;}

.pp-tier-inline--forest{background:linear-gradient(135deg,#2e7d32,#1b5e20);}
.pp-tier-inline--forest .pp-tier-inline__icon{color:#1b5e20;}

.pp-tier-inline--guardian{background:linear-gradient(135deg,#1b5e20,#123f2a);box-shadow:0 1px 4px rgba(18,63,42,.35),0 0 0 1px rgba(201,162,39,.4);}
.pp-tier-inline--guardian .pp-tier-inline__icon{color:#c9a227;background:linear-gradient(135deg,#fff8dc,#fef3c7);}

/* Compact mobile */
@media (max-width: 480px) {
	.pp-tier-inline{font-size:10px;padding:1px 6px 1px 3px;}
	.pp-tier-inline__icon{width:12px;height:12px;padding:1px;}
}

/* ───── Account Dashboard ───── */
.pp-dashboard__hero-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.pp-dashboard__hero .pp-stat__num{font-size:var(--pp-fs-3xl);}
.pp-dashboard__quickstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--pp-border-2);}
.pp-dashboard__quickstats > div{background:var(--pp-card-2);padding:14px;border-radius:var(--pp-radius-sm);text-align:center;border:1px solid var(--pp-border-2);}
.pp-qs__num{display:block;font-size:var(--pp-fs-xl);font-weight:700;color:var(--pp-deep);line-height:1;margin-bottom:4px;font-variant-numeric:tabular-nums;}
.pp-qs__label{display:block;font-size:var(--pp-fs-xs);color:var(--pp-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;}
.pp-dashboard__refbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.pp-dashboard__refbar code.pp-tag{font-size:var(--pp-fs-md);font-weight:700;background:var(--pp-eco-bg);color:var(--pp-deep);padding:4px 10px;border-radius:6px;letter-spacing:.05em;}

/* Tabs */
.pp-tabs{padding:0;}
.pp-tabs__nav{display:flex;gap:0;border-bottom:1px solid var(--pp-border);overflow-x:auto;padding:0 8px;}
.pp-tab{background:none;border:0;padding:14px 18px;font:inherit;font-weight:600;font-size:var(--pp-fs-sm);color:var(--pp-muted);cursor:pointer;border-bottom:3px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center;gap:8px;}
.pp-tab:hover{color:var(--pp-deep);}
.pp-tab.is-active{color:var(--pp-deep);border-bottom-color:var(--pp-action-2);}
.pp-tab__count{background:var(--pp-eco-bg);color:var(--pp-deep);font-size:11px;font-weight:700;padding:1px 7px;border-radius:var(--pp-radius-pill);min-width:20px;text-align:center;}
.pp-tab.is-active .pp-tab__count{background:var(--pp-action-2);color:#fff;}
.pp-tab-panel{display:none;padding:20px 24px;}
.pp-tab-panel.is-active{display:block;}
.pp-tab-panel .pp-table{margin:0;}

/* Responsive */
@media (max-width: 640px) {
	.pp-page{padding:16px 12px;}
	.pp-card{padding:18px;}
	.pp-stat__num,.pp-widget__balance .pp-stat__num{font-size:var(--pp-fs-2xl);}
	.pp-leaderboard__list li{grid-template-columns:36px 1fr auto;}
	.pp-leaderboard__list li .pp-lb__tier{display:none;}
	.pp-referral__stats{grid-template-columns:1fr;}
	.pp-form-row{flex-direction:column;align-items:stretch;}
	.pp-form-row .pp-input{max-width:100%;}
	.pp-tab{padding:12px 14px;font-size:var(--pp-fs-xs);}
	.pp-tab-panel{padding:16px;}
	.pp-table thead{display:none;}
	.pp-table tbody td{display:block;border:0;padding:6px 0;}
	.pp-table tbody tr{display:block;padding:12px;border-bottom:1px solid var(--pp-border-2);}
}
