/* IMMOR+ Points — frontend (CI green, large & accessible for elderly) */
.immor-pts-account{max-width:520px;margin:0 auto;padding:0 16px;font-family:'Sarabun',sans-serif;}
.immor-pts-account *,.immor-pts-account *::before,.immor-pts-account *::after{box-sizing:border-box;}

/* ===== HERO — gradient balance card ===== */
.immor-pts-hero{
	background:linear-gradient(135deg,#1F4E36 0%,#2F7B5C 100%);
	border-radius:22px;padding:34px 28px;text-align:center;color:#F8F6F0;
	margin-bottom:14px;box-shadow:0 12px 32px rgba(31,78,54,.25);
	position:relative;overflow:hidden;
}
.immor-pts-hero::before{
	content:'';position:absolute;inset:0;
	background:radial-gradient(ellipse at top right,rgba(248,246,240,.12) 0%,transparent 60%);
	pointer-events:none;
}
.immor-pts-hero__label{font-size:16px;opacity:.9;margin-bottom:12px;position:relative;}
.immor-pts-hero__greet{
	display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;
	background:rgba(255,255,255,.16);padding:8px 18px;border-radius:999px;
	font-size:16px;font-weight:600;position:relative;
}
.immor-pts-hero__greet-icon{font-size:18px;}
.immor-pts-hero__num{font-family:'Kanit',sans-serif;font-weight:700;font-size:72px;line-height:1;letter-spacing:-1px;position:relative;}
.immor-pts-hero__unit{font-size:20px;opacity:.9;margin-top:6px;position:relative;}
.immor-pts-hero__phone{
	display:inline-flex;align-items:center;gap:8px;margin-top:20px;
	background:rgba(255,255,255,.18);padding:9px 20px;border-radius:999px;
	font-size:16px;position:relative;
}
.immor-pts-hero__icon{font-size:48px;margin:6px 0;}
.immor-pts-hero--empty .immor-pts-hero__sub{font-size:17px;opacity:.92;margin-top:8px;}

/* ===== STATS — lifetime + tier ===== */
.immor-pts-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
.immor-pts-stat{
	background:#fff;border:1px solid rgba(31,78,54,.1);border-radius:16px;
	padding:20px 16px;text-align:center;
}
.immor-pts-stat__label{font-size:14px;color:#6A7268;margin-bottom:8px;}
.immor-pts-stat__num{font-family:'Kanit',sans-serif;font-weight:700;font-size:30px;color:#1F4E36;line-height:1;}
.immor-pts-stat__unit{font-size:13px;color:#9AA0A6;margin-top:6px;}
.immor-pts-stat__tier{font-family:'Kanit',sans-serif;font-weight:700;font-size:24px;color:var(--tier-color);display:flex;align-items:center;justify-content:center;gap:8px;line-height:1;}
.immor-pts-tier-badge{
	display:inline-flex;align-items:center;justify-content:center;
	width:32px;height:32px;border-radius:50%;color:#fff;font-size:16px;flex-shrink:0;
}

/* ===== PROGRESS bar ===== */
.immor-pts-progress{
	background:#fff;border:1px solid rgba(31,78,54,.1);border-radius:16px;
	padding:18px 20px;margin-bottom:18px;
}
.immor-pts-progress__bar{height:14px;background:#EAF1ED;border-radius:999px;overflow:hidden;}
.immor-pts-progress__fill{height:100%;border-radius:999px;transition:width .6s ease;min-width:8px;}
.immor-pts-progress__labels{display:flex;justify-content:space-between;margin-top:10px;font-size:13px;color:#6A7268;}

/* ===== ACTION buttons ===== */
.immor-pts-actions{display:flex;gap:12px;margin-bottom:24px;}
.immor-pts-action{
	flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;
	padding:18px 12px;border-radius:16px;text-decoration:none;
	font-family:'Kanit',sans-serif;font-size:16px;font-weight:600;
	transition:transform .2s,box-shadow .2s;
}
.immor-pts-action__icon{font-size:28px;}
.immor-pts-action--reward{background:linear-gradient(135deg,#2F7B5C,#1F4E36);color:#fff;box-shadow:0 6px 18px rgba(47,123,92,.3);}
.immor-pts-action--history{background:#fff;border:1px solid rgba(31,78,54,.15);color:#1F4E36;}
.immor-pts-action:hover{transform:translateY(-2px);}
.immor-pts-action--reward:hover{box-shadow:0 12px 26px rgba(47,123,92,.42);color:#fff;}

/* ===== HISTORY ===== */
.immor-pts-h{font-family:'Kanit',sans-serif;font-weight:700;font-size:20px;color:#1F4E36;margin:0 0 14px;}
.immor-pts-history-list{display:flex;flex-direction:column;gap:10px;}
.immor-pts-item{
	display:flex;align-items:center;gap:14px;
	background:#fff;border:1px solid rgba(31,78,54,.08);border-radius:14px;
	padding:14px 16px;
}
.immor-pts-item__icon{
	width:44px;height:44px;border-radius:50%;flex-shrink:0;
	display:flex;align-items:center;justify-content:center;
	font-family:'Kanit',sans-serif;font-weight:700;font-size:22px;
}
.immor-pts-item__icon--plus{background:#E8F2EC;color:#1D9E75;}
.immor-pts-item__icon--minus{background:#FBEAEA;color:#C0392B;}
.immor-pts-item__body{flex:1;min-width:0;}
.immor-pts-item__title{font-size:16px;font-weight:600;color:#1F4E36;}
.immor-pts-item__reason{font-size:14px;color:#6A7268;margin-top:2px;}
.immor-pts-item__date{font-size:13px;color:#9AA0A6;margin-top:2px;}
.immor-pts-item__points{font-family:'Kanit',sans-serif;font-weight:700;font-size:22px;white-space:nowrap;}
.immor-pts-item__points--plus{color:#1D9E75;}
.immor-pts-item__points--minus{color:#C0392B;}

.immor-pts-empty{color:#6A7268;text-align:center;padding:24px;font-size:16px;}
.immor-pts-note{margin-top:24px;font-size:14px;color:#6A7268;text-align:center;}

/* ===== shared notice + buttons ===== */
.immor-pts-notice{padding:18px 22px;background:#E8F2EC;border:1px solid #2F7B5C;border-radius:14px;color:#1F4E36;text-align:center;font-size:17px;}
.immor-pts-notice a{color:#2F7B5C;font-weight:700;}
.immor-pts-btn{display:inline-block;padding:15px 32px;background:linear-gradient(135deg,#1F4E36,#2F7B5C);color:#F8F6F0;border:0;border-radius:999px;font-family:'Kanit',sans-serif;font-size:18px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;transition:transform .2s,box-shadow .2s;}
.immor-pts-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(31,78,54,.3);color:#F8F6F0;}
.immor-pts-btn--block{display:block;width:100%;}

/* ===== register/phone-setup forms ===== */
.immor-pts-register,.immor-pts-phone-setup{max-width:520px;margin:0 auto;padding:0 16px;font-family:'Sarabun',sans-serif;}
.immor-pts-register *,.immor-pts-phone-setup *{box-sizing:border-box;}
/* card wrapper รอบแต่ละ step (สวยทั้ง desktop + mobile) */
.immor-pts-step{
	background:#fff;border:1px solid rgba(31,78,54,.1);border-radius:18px;
	padding:28px 24px;box-shadow:0 8px 28px rgba(31,78,54,.08);
}
.immor-pts-field input::placeholder{color:#AEB8B2;opacity:1;}
/* ช่องรหัสผ่าน + ปุ่มลูกตา */
.immor-pts-pass-wrap{position:relative;}
.immor-pts-pass-wrap input{padding-right:52px;}
.immor-pts-pass-toggle{
	position:absolute;top:50%;right:8px;transform:translateY(-50%);
	width:40px;height:40px;border:0;background:none;cursor:pointer;
	font-size:20px;line-height:1;opacity:.45;border-radius:8px;
	display:flex;align-items:center;justify-content:center;
}
.immor-pts-pass-toggle:hover{opacity:.7;}
.immor-pts-pass-toggle.is-on{opacity:.9;}
.immor-pts-sub{color:#3A4A42;margin:0 0 18px;font-size:16px;}
.immor-pts-field{margin-bottom:18px;}
.immor-pts-field label{display:block;font-size:15px;font-weight:600;color:#1F4E36;margin-bottom:7px;}
.immor-pts-field .req{color:#C0392B;}
.immor-pts-field input{width:100%;padding:15px 16px;border:1px solid #CBD5CD;border-radius:12px;font-size:17px;font-family:inherit;}
.immor-pts-field input:focus{outline:none;border-color:#2F7B5C;box-shadow:0 0 0 3px rgba(47,123,92,.12);}
.immor-pts-btn--primary{display:block;width:100%;}
.immor-pts-link{display:block;width:100%;margin-top:12px;background:none;border:0;color:#2F7B5C;font-size:15px;cursor:pointer;text-align:center;}
.immor-pts-msg{margin-bottom:14px;font-size:15px;min-height:20px;}
.immor-pts-msg.ok{color:#1D9E75;}
.immor-pts-msg.err{color:#C0392B;}
.immor-pts-success{text-align:center;padding:20px;}
.immor-pts-success-icon{width:80px;height:80px;margin:0 auto 18px;background:#2F7B5C;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:44px;}
.immor-pts-success h3{font-family:'Kanit',sans-serif;color:#1F4E36;font-size:24px;margin:0 0 8px;}

/* tier card uses dynamic --tier-color */
.immor-pts-stat--tier{border-color:color-mix(in srgb,var(--tier-color) 25%,transparent);}

@media(max-width:600px){
	.immor-pts-hero__num{font-size:60px;}
	.immor-pts-stat__num{font-size:26px;}
	.immor-pts-stat__tier{font-size:21px;}
}
