/* Woo Check Pro — Customer Dashboard v1.1 */
:root{
  --wcp-pri:#1d4ed8;--wcp-sec:#0ea5e9;--wcp-suc:#16a34a;
  --wcp-war:#d97706;--wcp-dan:#dc2626;--wcp-gray:#6b7280;
  --wcp-border:#e5e7eb;--wcp-bg:#f9fafb;--wcp-white:#fff;
  --wcp-radius:8px;--wcp-shadow:0 2px 12px rgba(0,0,0,.08);--wcp-tr:all .18s ease
}
.wcp-dashboard *{box-sizing:border-box}
.wcp-dashboard{font-family:Tahoma,"Vazir",system-ui,sans-serif;direction:rtl;color:#1f2937;max-width:900px;margin:0 auto}

/* ── Dashboard header ─────────────────────────────────── */
.wcp-dash-header{background:linear-gradient(135deg,var(--wcp-pri) 0%,var(--wcp-sec) 100%);border-radius:var(--wcp-radius);padding:22px 24px;margin-bottom:20px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;box-shadow:0 4px 20px rgba(29,78,216,.3)}
.wcp-dash-header h2{margin:0;font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}
.wcp-dash-header .wcp-user-greeting{font-size:12px;opacity:.85;margin-top:4px}

/* ── Credit cards row ─────────────────────────────────── */
.wcp-credit-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;margin-bottom:20px}
.wcp-card{background:var(--wcp-white);border:1px solid var(--wcp-border);border-radius:var(--wcp-radius);padding:16px;text-align:center;box-shadow:var(--wcp-shadow);transition:var(--wcp-tr);position:relative;overflow:hidden}
.wcp-card::before{content:'';position:absolute;top:0;right:0;left:0;height:4px;background:var(--wcp-pri)}
.wcp-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.12)}
.wcp-card-icon{width:36px;height:36px;border-radius:50%;background:rgba(29,78,216,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-size:18px}
.wcp-card span{display:block;font-size:11px;color:var(--wcp-gray);margin-bottom:4px;font-weight:500}
.wcp-card strong{display:block;font-size:18px;font-weight:700;color:var(--wcp-pri);direction:ltr}
.wcp-card-success::before{background:var(--wcp-suc)}
.wcp-card-success strong{color:var(--wcp-suc)}
.wcp-card-success .wcp-card-icon{background:rgba(22,163,74,.1)}
.wcp-card-warning::before{background:var(--wcp-war)}
.wcp-card-warning strong{color:var(--wcp-war)}
.wcp-card-warning .wcp-card-icon{background:rgba(217,119,6,.1)}
.wcp-card-danger::before{background:var(--wcp-dan)}
.wcp-card-danger strong{color:var(--wcp-dan)}

/* ── Tabs ─────────────────────────────────────────────── */
.wcp-tabs-front{display:flex;gap:2px;border-bottom:2px solid var(--wcp-border);margin-bottom:16px;flex-wrap:wrap}
.wcp-tab{background:transparent;border:none;border-bottom:3px solid transparent;padding:9px 16px;cursor:pointer;font-family:inherit;font-size:13px;color:var(--wcp-gray);font-weight:500;transition:var(--wcp-tr);margin-bottom:-2px;white-space:nowrap}
.wcp-tab:hover{color:var(--wcp-pri);background:rgba(29,78,216,.05);border-radius:4px 4px 0 0}
.wcp-tab.active{color:var(--wcp-pri);border-bottom-color:var(--wcp-pri);font-weight:700}
.wcp-tab-panel{display:none}
.wcp-tab-panel.active{display:block;animation:wcpIn .2s ease}
@keyframes wcpIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ── Tables ───────────────────────────────────────────── */
.wcp-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--wcp-white);border-radius:var(--wcp-radius);overflow:hidden;box-shadow:var(--wcp-shadow);margin-bottom:16px}
.wcp-table th,.wcp-table td{border:1px solid var(--wcp-border);padding:9px 12px;text-align:right;vertical-align:middle}
.wcp-table thead th{background:linear-gradient(180deg,#f8fafc,#f1f5f9);font-weight:700;font-size:11px;color:#374151;text-transform:uppercase;letter-spacing:.3px}
.wcp-table tbody tr{transition:background .12s}
.wcp-table tbody tr:hover{background:#f0f7ff}
.wcp-table tbody tr:nth-child(even){background:#fafafa}
.wcp-table tbody tr:nth-child(even):hover{background:#f0f7ff}

/* ── Status badges ────────────────────────────────────── */
.wcp-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;gap:4px;white-space:nowrap}
.wcp-badge::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}
.wcp-badge-pending,.wcp-badge-pending_contract,.wcp-badge-pending_down_payment{background:#fef9c3;color:#a16207;border:1px solid #fde68a}
.wcp-badge-pending_upload,.wcp-badge-pending_review,.wcp-badge-pending_admin{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.wcp-badge-approved{background:#dcfce7;color:#15803d;border:1px solid #86efac}
.wcp-badge-paid,.wcp-badge-completed{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}
.wcp-badge-rejected{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}

/* ── Modals ───────────────────────────────────────────── */
.wcp-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.wcp-modal[hidden]{display:none!important}
.wcp-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.wcp-modal-box{position:relative;background:var(--wcp-white);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.22);max-height:92vh;overflow:auto;width:100%;max-width:480px;animation:wcpMdIn .22s ease}
@keyframes wcpMdIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.wcp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,var(--wcp-pri),var(--wcp-sec));border-radius:12px 12px 0 0}
.wcp-modal-header h3{margin:0;font-size:15px;color:#fff;font-weight:700}
.wcp-modal-close{background:rgba(255,255,255,.2);border:none;color:#fff;cursor:pointer;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;transition:var(--wcp-tr)}
.wcp-modal-close:hover{background:rgba(255,255,255,.4)}
.wcp-modal-body{padding:20px}

/* ── Check upload form ────────────────────────────────── */
.wcp-check-form{display:flex;flex-direction:column;gap:12px}
.wcp-check-form label{display:block;font-weight:600;font-size:12px;color:#374151;margin-bottom:4px}
.wcp-check-form input[type="text"],.wcp-check-form input[type="file"]{width:100%;border:1px solid var(--wcp-border);border-radius:var(--wcp-radius);padding:8px 10px;font-family:inherit;font-size:13px;background:var(--wcp-white)}
.wcp-check-form input:focus{outline:none;border-color:var(--wcp-pri);box-shadow:0 0 0 3px rgba(29,78,216,.1)}
.wcp-img-preview{width:100%;height:120px;border:2px dashed var(--wcp-border);border-radius:var(--wcp-radius);display:flex;align-items:center;justify-content:center;color:var(--wcp-gray);font-size:12px;overflow:hidden;cursor:pointer;transition:var(--wcp-tr);margin-top:6px}
.wcp-img-preview:hover{border-color:var(--wcp-pri);background:rgba(29,78,216,.03)}
.wcp-img-preview img{width:100%;height:100%;object-fit:cover}
.wcp-img-preview.has-img{border-style:solid;border-color:var(--wcp-pri)}

/* ── Form actions ─────────────────────────────────────── */
.wcp-form-actions{display:flex;gap:8px;margin-top:4px}
.wcp-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 18px;border-radius:var(--wcp-radius);font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:var(--wcp-tr);white-space:nowrap}
.wcp-btn-primary{background:var(--wcp-pri);color:#fff}
.wcp-btn-primary:hover{background:#1e40af;color:#fff}
.wcp-btn-ghost{background:transparent;color:var(--wcp-gray);border:1px solid var(--wcp-border)}
.wcp-btn-ghost:hover{border-color:var(--wcp-pri);color:var(--wcp-pri)}
.wcp-btn:disabled{opacity:.5;cursor:not-allowed}
.wcp-btn .wcp-spinner{width:14px;height:14px;border-width:2px}

/* ── Quote table in checkout ──────────────────────────── */
.wcp-quote-box{margin:12px 0;border:1px solid var(--wcp-border);border-radius:var(--wcp-radius);overflow:hidden}
.wcp-quote-box .wcp-quote-summary{background:linear-gradient(135deg,#eff6ff,#f0fdf4);padding:10px 14px;font-size:13px}
.wcp-quote-box .wcp-quote-summary .row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dashed var(--wcp-border)}
.wcp-quote-box .wcp-quote-summary .row:last-child{border:none;color:var(--wcp-pri);font-weight:700;font-size:14px;padding-top:6px}
.wcp-quote-box .wcp-quote-summary .row:first-child{font-weight:600}
.wcp-schedule-wrap{overflow-x:auto}

/* ── Contract box ─────────────────────────────────────── */
.wcp-contract-box{border:1px solid var(--wcp-border);border-radius:var(--wcp-radius);overflow:hidden;margin:12px 0}
.wcp-contract-text{max-height:160px;overflow:auto;padding:12px;font-size:12px;line-height:1.8;background:#fafafa;border-bottom:1px solid var(--wcp-border)}
.wcp-contract-accept{padding:10px 14px;display:flex;align-items:center;gap:8px;background:var(--wcp-white);cursor:pointer;font-size:13px;font-weight:600}
.wcp-contract-accept input[type="checkbox"]{width:16px;height:16px;accent-color:var(--wcp-pri);cursor:pointer}

/* ── Restriction notice ───────────────────────────────── */
.wcp-restriction-notice{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--wcp-radius);padding:12px 16px;margin-bottom:16px;font-size:13px}
.wcp-restriction-notice strong{color:var(--wcp-war);display:block;margin-bottom:6px}

/* ── Empty state ──────────────────────────────────────── */
.wcp-empty{text-align:center;padding:32px;color:#9ca3af;font-size:13px}

/* ── Loading spinner ──────────────────────────────────── */
.wcp-spinner{display:inline-block;width:18px;height:18px;border:3px solid rgba(29,78,216,.2);border-top-color:var(--wcp-pri);border-radius:50%;animation:wcpSpin .7s linear infinite;vertical-align:middle}
@keyframes wcpSpin{to{transform:rotate(360deg)}}

/* ── Notice ───────────────────────────────────────────── */
.wcp-notice{padding:10px 14px;border-radius:var(--wcp-radius);font-size:13px;margin:8px 0}
.wcp-notice-info{background:#e0f2fe;border:1px solid #bae6fd;color:#0369a1}
.wcp-notice-success{background:#dcfce7;border:1px solid #86efac;color:#15803d}

/* ── Down payment page ────────────────────────────────── */
.wcp-down-payment{background:linear-gradient(135deg,#eff6ff,#f0fdf4);border:1px solid #bfdbfe;border-radius:var(--wcp-radius);padding:20px 24px;max-width:500px;margin:20px auto;text-align:center}
.wcp-down-payment h3{color:var(--wcp-pri);margin-bottom:12px}
.wcp-down-payment .amount{font-size:28px;font-weight:700;color:var(--wcp-pri);display:block;margin:12px 0;direction:ltr}

/* ── Jalali datepicker ────────────────────────────────── */
.wcp-dp-wrap{position:relative;display:inline-block;width:100%}
.wcp-dp-popup{position:absolute;top:calc(100% + 4px);right:0;z-index:9999;background:var(--wcp-white);border:1px solid var(--wcp-border);border-radius:var(--wcp-radius);box-shadow:0 8px 30px rgba(0,0,0,.15);width:260px;animation:wcpIn .15s ease;direction:rtl}
.wcp-dp-popup[hidden]{display:none}
.wcp-dp-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--wcp-pri);border-radius:var(--wcp-radius) var(--wcp-radius) 0 0}
.wcp-dp-head span{color:#fff;font-size:13px;font-weight:600;cursor:pointer}
.wcp-dp-nav{background:rgba(255,255,255,.2);border:none;color:#fff;cursor:pointer;width:24px;height:24px;border-radius:50%;font-size:14px;display:flex;align-items:center;justify-content:center;transition:var(--wcp-tr)}
.wcp-dp-nav:hover{background:rgba(255,255,255,.4)}
.wcp-dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:10px;font-weight:700;color:var(--wcp-gray);padding:6px 6px 2px;border-bottom:1px solid var(--wcp-border)}
.wcp-dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:6px}
.wcp-dp-day{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;font-size:12px;transition:var(--wcp-tr);border:none;background:none;font-family:inherit}
.wcp-dp-day:hover{background:var(--wcp-pri);color:#fff}
.wcp-dp-day.today{border:1px solid var(--wcp-pri);color:var(--wcp-pri);font-weight:700}
.wcp-dp-day.selected{background:var(--wcp-pri);color:#fff;font-weight:700}
.wcp-dp-day.other-month{opacity:.3}
.wcp-dp-day:disabled{opacity:.3;cursor:not-allowed}
