/* =========================================================================
   EDIUSFA CORE — Platform front styles (PHASE 4)
   Customer-account endpoints + auth OTP panel. Builds on the design
   tokens only — no new palette, no layout hacks.
   ========================================================================= */

/* ---- endpoint headers ------------------------------------------------- */
.ep-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin:0 0 1.25rem}
.ep-head h2{margin:0;font-size:1.15rem}
.ep-desc{margin:0;color:var(--text-muted);font-size:.85rem;flex:1 1 100%}
.ep-actions{display:flex;gap:.5rem;margin-inline-start:auto}

/* ---- shared form grammar (account endpoints) -------------------------- */
.frm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.9rem}
.fld{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted)}
.fld > span{font-weight:600;color:var(--text)}
.fld .input,.fld .select,.fld .textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:.55rem .75rem;font:inherit;font-size:.9rem;color:var(--text)}
.fld .input:focus,.fld .select:focus,.fld .textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}
.frm-msg{min-height:1.2em;font-size:.82rem;margin:.25rem 0 0}
.frm-msg.is-ok{color:var(--success)}
.frm-msg.is-err{color:var(--danger)}
.frm-msg.is-warn{color:var(--warning)}

/* ---- tickets ------------------------------------------------------------ */
.tkt-list{display:flex;flex-direction:column;gap:.6rem}
.tkt-row{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;text-decoration:none;color:inherit}
.tkt-main{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}
.tkt-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkt-main .mono{font-size:.72rem;color:var(--text-subtle)}
.tkt-date{font-size:.78rem;color:var(--text-subtle);white-space:nowrap}
.tkt-form{display:flex;flex-direction:column;gap:.9rem;margin-bottom:1.25rem}
.tkt-thread{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}
.tkt-msg{border:1px solid var(--border);border-radius:14px;padding:.9rem 1.1rem;background:var(--surface)}
.tkt-msg header{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--text-subtle);margin-bottom:.45rem}
.tkt-msg header time{margin-inline-start:auto}
.tkt-msg.is-mine{background:var(--primary-soft);border-color:transparent}
.tkt-msg.is-staff{background:var(--surface-muted)}
.tkt-body p{margin:.3rem 0;font-size:.92rem;line-height:1.9}
.tkt-att{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--primary-ink);text-decoration:none;margin:0 .5rem .5rem 0;border:1px dashed var(--border-strong);border-radius:10px;padding:.35rem .7rem}
.tkt-att:hover{background:var(--surface-muted)}

/* ---- notifications ------------------------------------------------------ */
.notif-prefs{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:1.1rem}
.notif-pref-title{font-size:.9rem}
.notif-pref{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted)}
.notif-list{display:flex;flex-direction:column;gap:.6rem}
.notif-row{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem}
.notif-row div{flex:1;min-width:0}
.notif-row p{margin:.2rem 0 0;font-size:.85rem;color:var(--text-muted)}
.notif-row time{font-size:.75rem;color:var(--text-subtle);white-space:nowrap}
.notif-row.is-unread{border-inline-start:3px solid var(--primary);background:var(--primary-soft)}

/* ---- points --------------------------------------------------------------- */
.pts-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin-bottom:1.25rem}
.pts-balance span,.pts-level span{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:.2rem}
.pts-balance b{font-size:1.6rem;color:var(--primary-ink)}
.pts-level b{font-size:1.1rem}
.pts-level small{display:block;color:var(--text-muted);font-size:.8rem;margin-top:.2rem}
.pts-levels{grid-column:1/-1;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.pts-levels li{border:1px solid var(--border);border-radius:12px;padding:.5rem .9rem;font-size:.82rem;display:flex;flex-direction:column;min-width:150px}
.pts-levels li .mono{color:var(--text-subtle);font-size:.72rem}
.pts-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;font-size:.86rem}
.pts-table th,.pts-table td{padding:.6rem .9rem;text-align:start;border-bottom:1px solid var(--border)}
.pts-table th{background:var(--surface-muted);font-size:.78rem;color:var(--text-muted)}
.pts-table .is-plus{color:var(--success);font-weight:700}
.pts-table .is-minus{color:var(--danger);font-weight:700}

/* ---- security ---------------------------------------------------------- */
.sec-form{margin-bottom:1.1rem;max-width:560px}
.sec-title{display:block;font-size:.95rem;margin-bottom:.75rem}
.sec-form .fld{margin-bottom:.75rem}
.sec-sessions{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--text-muted)}
.sec-sessions li{display:flex;gap:.8rem;flex-wrap:wrap}

/* ---- auth OTP panel ------------------------------------------------------ */
.otp-panel{display:flex;flex-direction:column;gap:.9rem;margin-top:1.25rem;border-top:1px dashed var(--border-strong);padding-top:1.25rem}
.otp-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;margin:0}
.otp-steps{display:flex;flex-direction:column;gap:.9rem}
.otp-steps[data-step="code"] .otp-step-phone{display:none}
.otp-steps[data-step="phone"] .otp-step-code{display:none}
.otp-row{display:flex;gap:.6rem;align-items:stretch}
.otp-row .input{flex:1}
.otp-code input{letter-spacing:.5em;text-align:center;font-size:1.1rem}
.otp-hint{font-size:.78rem;color:var(--text-subtle);margin:0}
.otp-alt{font-size:.82rem;color:var(--text-muted);margin:.25rem 0 0}
.otp-alt a{color:var(--primary-ink)}

/* ---- favorites toggle on product cards (state only; .p-wish exists) ---- */
.p-wish{transition:transform .18s ease,color .18s ease}
.p-wish.is-active{color:var(--danger)}
.p-wish.is-active svg{fill:currentColor}
.p-wish.is-busy{pointer-events:none;opacity:.55}

/* ---- responsive ---------------------------------------------------------- */
@media (max-width:640px){
	.tkt-row,.notif-row{flex-wrap:wrap}
	.pts-table{display:block;overflow-x:auto}
	.ep-actions{flex-basis:100%;margin-inline-start:0}
}

/* ============ v1.9.5 — Reviews endpoint (نظرات من) ============ */
.ac-rev-stats{display:flex;gap:28px;margin:0 0 16px}
.ac-rev-stats div{display:flex;flex-direction:column;gap:2px}
.ac-rev-stats span{font-size:var(--fs-xs,.75rem);color:var(--text-subtle,#8a8577)}
.ac-rev-stats b{font-size:1.35rem;font-weight:800}
.ac-rev-list{display:grid;gap:12px}
.ac-rev-product{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.ac-rev-product img{width:52px;height:52px;object-fit:cover;border-radius:9px;border:1px solid var(--line,#e7e3da)}
.ac-rev-product b{display:block;font-size:.92rem}
.ac-rev-product a{font-size:.78rem;color:var(--primary,#0E7380);text-decoration:none}
.ac-rev-product a:hover{text-decoration:underline}
.ac-rev-stars{display:inline-flex;gap:2px;margin-bottom:6px}
.ac-rev-stars i{width:14px;height:14px;display:inline-block;background:var(--line,#d8d3c6);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.ac-rev-stars i.is-on{background:#f5a623}
.ac-rev-text{margin:0 0 8px;font-size:.9rem;line-height:1.8;color:var(--text,#2c2a24)}
.ac-rev-meta{display:flex;align-items:center;gap:12px;font-size:.75rem;color:var(--text-subtle,#8a8577)}
.ac-rev-state{padding:2px 10px;border-radius:99px;font-weight:600}
.ac-rev-state.is-approved{background:rgba(14,115,128,.12);color:var(--primary,#0E7380)}
.ac-rev-state.is-hold{background:rgba(245,166,35,.15);color:#9a6a0a}
.ac-rev-state.is-spam{background:rgba(179,38,30,.12);color:#b3261e}

/* ============ v1.9.5 — Wallet self-charge card ============ */
.ac-charge{margin:0 0 16px;border:1px solid var(--primary-soft,rgba(14,115,128,.25));background:linear-gradient(180deg,rgba(14,115,128,.05),transparent 70%)}
.ac-charge-title{display:block;font-size:1rem;font-weight:800;margin-bottom:4px}
.ac-charge-hint{margin:0 0 12px;font-size:.78rem;color:var(--text-subtle,#8a8577);line-height:1.9}
.ac-charge-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ac-charge-chip{padding:8px 16px;border:1px solid var(--line,#ddd8cc);border-radius:99px;background:var(--paper,#fff);font-weight:700;font-size:.85rem;cursor:pointer;transition:all .15s ease}
.ac-charge-chip small{font-weight:400;font-size:.68rem;color:var(--text-subtle,#8a8577)}
.ac-charge-chip:hover{border-color:var(--primary,#0E7380)}
.ac-charge-chip.is-active{background:var(--primary,#0E7380);color:#fff;border-color:var(--primary,#0E7380)}
.ac-charge-chip.is-active small{color:rgba(255,255,255,.75)}
.ac-charge-row{display:flex;gap:10px;flex-wrap:wrap}
.ac-charge-input{flex:1;min-width:180px;padding:11px 14px;border:1px solid var(--line,#ddd8cc);border-radius:10px;font-size:.95rem;background:#fff}
.ac-charge-input:focus{outline:none;border-color:var(--primary,#0E7380);box-shadow:0 0 0 3px rgba(14,115,128,.15)}
.ac-charge-btn{padding:11px 22px;border:none;border-radius:10px;background:var(--primary,#0E7380);color:#fff;font-weight:700;cursor:pointer;transition:transform .12s ease,opacity .15s ease}
.ac-charge-btn:hover{opacity:.92}
.ac-charge-btn:active{transform:scale(.97)}
.ac-charge-btn:disabled{opacity:.55;cursor:wait}
.ac-charge-msg{margin:10px 0 0;font-size:.8rem;min-height:1.2em}
.ac-charge-msg.is-ok{color:var(--primary,#0E7380)}
.ac-charge-msg.is-error{color:#b3261e}
