/* WP Product Warranty — Frontend Styles */
:root {
    --wpw-green: #1D9E75; --wpw-green-light: #E1F5EE;
    --wpw-amber: #BA7517; --wpw-amber-light: #FAEEDA;
    --wpw-red: #A32D2D;   --wpw-red-light: #FCEBEB;
    --wpw-blue: #185FA5;  --wpw-blue-light: #E6F1FB;
    --wpw-gray: #5F5E5A;  --wpw-gray-light: #F1EFE8;
    --wpw-radius: 8px; --wpw-border: #e0e0e0;
}
.wpw-notice { padding:14px 18px; border-radius:var(--wpw-radius); background:var(--wpw-blue-light); color:var(--wpw-blue); margin:16px 0; font-size:14px; }
.wpw-notice-warn { background:var(--wpw-amber-light); color:var(--wpw-amber); }
.wpw-notice-err  { background:var(--wpw-red-light);   color:var(--wpw-red); }

/* Product grid */
.wpw-product-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; margin:20px 0; }
.wpw-product-card { background:#fff; border:1px solid var(--wpw-border); border-radius:var(--wpw-radius); overflow:hidden; }
.wpw-product-card.wpw-expired { opacity:.75; }
.wpw-product-header { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--wpw-border); }
.wpw-product-name { font-weight:600; font-size:14px; }
.wpw-product-body { padding:16px; }
.wpw-product-row { display:flex; justify-content:space-between; font-size:13px; margin-bottom:8px; }
.wpw-product-row span { color:#888; }
.wpw-product-footer { padding:12px 16px; border-top:1px solid var(--wpw-border); }

/* Warranty bar */
.wpw-warranty-bar { height:6px; background:#eee; border-radius:3px; margin:12px 0 4px; overflow:hidden; }
.wpw-warranty-fill { height:100%; background:var(--wpw-green); border-radius:3px; transition:width .5s; }
.wpw-days-left { font-size:12px; color:var(--wpw-green); margin:0 0 8px; }

/* Badges */
.wpw-badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:500; background:var(--wpw-gray-light); color:var(--wpw-gray); }
.wpw-badge-ok      { background:var(--wpw-green-light); color:#085041; }
.wpw-badge-warn    { background:var(--wpw-amber-light); color:#633806; }
.wpw-badge-err     { background:var(--wpw-red-light);   color:#791F1F; }
.wpw-badge-pending { background:var(--wpw-blue-light);  color:#0C447C; }

/* Buttons */
.wpw-btn { display:inline-block; padding:9px 20px; background:var(--wpw-green); color:#fff; border-radius:var(--wpw-radius); text-decoration:none; font-size:14px; border:none; cursor:pointer; }
.wpw-btn:hover { background:#0F6E56; color:#fff; }
.wpw-btn-sm { padding:5px 12px; font-size:13px; }

/* Form */
.wpw-form { background:#f9f9f9; padding:24px; border-radius:var(--wpw-radius); border:1px solid var(--wpw-border); margin:16px 0; }
.wpw-form-row { margin-bottom:16px; }
.wpw-form-row label { display:block; font-size:13px; font-weight:500; margin-bottom:6px; color:#444; }
.wpw-input, .wpw-select { width:100%; padding:9px 12px; border:1px solid var(--wpw-border); border-radius:6px; font-size:14px; }
.wpw-select-product-wrap { margin-bottom:20px; }
.wpw-select-product-wrap label { display:block; margin-bottom:8px; font-weight:600; }

/* Repair status tracker */
.wpw-repair-status { max-width:680px; margin:0 auto; }
.wpw-result-card { background:#fff; border:1px solid var(--wpw-border); border-radius:var(--wpw-radius); overflow:hidden; margin-top:20px; }
.wpw-result-table { width:100%; border-collapse:collapse; }
.wpw-result-table th { background:#f7f7f7; text-align:left; padding:14px 20px; font-size:13px; color:#666; width:30%; border-bottom:1px solid var(--wpw-border); font-weight:600; vertical-align:top; }
.wpw-result-table td { padding:14px 20px; font-size:14px; border-bottom:1px solid var(--wpw-border); vertical-align:top; }
.wpw-result-table tr:last-child th,
.wpw-result-table tr:last-child td { border-bottom:none; }

/* Step tracker */
.wpw-steps { display:flex; align-items:center; padding:20px 16px; overflow-x:auto; }
.wpw-step { text-align:center; flex-shrink:0; }
.wpw-step-dot { width:14px; height:14px; border-radius:50%; background:#ddd; margin:0 auto 6px; }
.wpw-step-label { font-size:11px; color:#aaa; white-space:nowrap; }
.wpw-step-done .wpw-step-dot { background:var(--wpw-green); }
.wpw-step-done .wpw-step-label { color:var(--wpw-green); }
.wpw-step-active .wpw-step-dot { background:var(--wpw-amber); box-shadow:0 0 0 3px var(--wpw-amber-light); }
.wpw-step-active .wpw-step-label { color:var(--wpw-amber); font-weight:600; }
.wpw-step-line { flex:1; height:2px; background:#ddd; min-width:20px; }
.wpw-loading { color:#888; font-style:italic; }

/* WC account table */
.wpw-table { font-size:13px; }
.wpw-staff-note { background:#fffbea; color:#6b5800; font-size:12px; padding:8px 14px !important; }

/* ── v1.1 My Account ────────────────────────────────────────── */
.wpw-myaccount { max-width:800px; }
.wpw-section-title { font-size:16px; font-weight:600; color:#1a1a2e; margin:24px 0 14px; padding-bottom:8px; border-bottom:2px solid #1D9E75; }
.wpw-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:24px; }
.wpw-sum-card { background:#f9f9f9; border-radius:8px; padding:14px; text-align:center; border:1px solid #e5e5e5; }
.wpw-sum-card.wpw-sum-ok   { border-top:3px solid #1D9E75; }
.wpw-sum-card.wpw-sum-warn { border-top:3px solid #BA7517; }
.wpw-sum-value { font-size:26px; font-weight:700; color:#1a1a2e; }
.wpw-sum-label { font-size:12px; color:#888; margin-top:4px; }

/* Registration cards */
.wpw-reg-card { background:#fff; border:1px solid #e5e5e5; border-radius:10px; margin-bottom:16px; overflow:hidden; }
.wpw-reg-card.wpw-card-expired { opacity:.8; }
.wpw-reg-card-head { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-bottom:1px solid #f0f0f0; background:#fafafa; }
.wpw-reg-product { font-size:15px; font-weight:600; }
.wpw-reg-card-body { padding:16px 18px; }
.wpw-reg-meta-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; margin-bottom:14px; font-size:13px; }
.wpw-reg-meta-grid span { color:#888; display:block; margin-bottom:2px; font-size:12px; }
.wpw-countdown-wrap { display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.wpw-countdown-num { font-size:40px; font-weight:700; color:#1D9E75; line-height:1; }
.wpw-countdown-label { font-size:14px; color:#888; }
.wpw-war-bar { height:8px; background:#eee; border-radius:4px; overflow:hidden; margin-bottom:4px; }
.wpw-war-fill { height:100%; background:#1D9E75; border-radius:4px; }
.wpw-war-bar-label { font-size:11px; color:#aaa; margin-bottom:12px; }
.wpw-reg-card-foot { padding:12px 18px; border-top:1px solid #f0f0f0; background:#fafafa; }
.wpw-empty-state { text-align:center; padding:40px 20px; color:#888; }
.wpw-empty-state .wpw-btn { margin-top:12px; }

/* Repair options */
.wpw-repair-option { border:1px solid #e5e5e5; border-radius:10px; padding:20px; margin-bottom:16px; }
.wpw-option-warranty { border-left:4px solid #1D9E75; }
.wpw-option-nowarranty { border-left:4px solid #BA7517; }
.wpw-option-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:15px; }
.wpw-option-badge { font-size:11px; padding:3px 10px; border-radius:20px; font-weight:600; }
.wpw-option-badge.ok { background:#E1F5EE; color:#085041; }
.wpw-option-badge.warn { background:#FAEEDA; color:#633806; }
.wpw-option-desc { font-size:13px; color:#666; margin-bottom:14px; }
.wpw-option-empty { font-size:13px; color:#aaa; font-style:italic; margin:0; }
.wpw-product-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.wpw-pick-card { background:#f9f9f9; border:1px solid #e5e5e5; border-radius:8px; padding:14px; }
.wpw-pick-card.wpw-pick-expired { background:#fffbf5; }
.wpw-pick-name { font-size:14px; font-weight:600; margin-bottom:6px; }
.wpw-pick-meta { font-size:12px; color:#888; margin-bottom:10px; }
.wpw-days { color:#1D9E75; }

/* Repair rows */
.wpw-repair-list { border:1px solid #e5e5e5; border-radius:8px; overflow:hidden; }
.wpw-repair-row { display:grid; grid-template-columns:100px 1fr 1fr 90px 110px 100px; gap:12px; align-items:center; padding:12px 16px; border-bottom:1px solid #f0f0f0; font-size:13px; }
.wpw-repair-row:last-child { border-bottom:none; }
.wpw-repair-row:hover { background:#fafafa; }
.wpw-repair-ticket { font-family:monospace; font-size:12px; }
.wpw-repair-note { grid-column:1/-1; background:#fffbea; border-radius:4px; padding:6px 10px; font-size:12px; color:#6b5800; }
/* v1.8.4 — toggle button + inline expand timeline */
.wpw-repair-actions { text-align:right; }
.wpw-toggle-detail {
    background:transparent; border:1px solid var(--wpw-green); color:var(--wpw-green);
    padding:6px 14px; border-radius:6px; font-size:12px; cursor:pointer;
    font-weight:500; transition:all .15s ease; white-space:nowrap;
}
.wpw-toggle-detail:hover:not(:disabled) { background:var(--wpw-green); color:#fff; }
.wpw-toggle-detail:disabled { opacity:.6; cursor:wait; }
.wpw-toggle-detail[aria-expanded="true"] { background:var(--wpw-green); color:#fff; }
.wpw-repair-detail {
    grid-column:1/-1;
    background:#fafbfc;
    border-top:1px solid #ececec;
    margin:8px -16px -12px;
    padding:16px;
    border-radius:0 0 8px 8px;
}
.wpw-repair-detail .wpw-result-card { margin-top:0; }
.wpw-btn-outline { background:transparent; border:1px solid var(--wpw-green); color:var(--wpw-green); }
.wpw-btn-outline:hover { background:var(--wpw-green-light); color:var(--wpw-green); } /* v1.7.7: fix white-on-white text on hover */
@media(max-width:600px){
    .wpw-summary-grid { grid-template-columns:1fr 1fr; }
    .wpw-repair-row { grid-template-columns:1fr 1fr; }
    .wpw-repair-actions { grid-column:1/-1; text-align:left; }
    .wpw-product-picker { grid-template-columns:1fr; }
}

/* ── Product autocomplete dropdown ─────────────────────────── */
.custom-dropdown, #product-dropdown {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 9999;
    background: #fff; border: 1px solid #ddd; border-top: none;
    border-radius: 0 0 8px 8px; max-height: 420px; overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.custom-dropdown .wpw-dd-item:nth-child(n+11),
#product-dropdown .wpw-dd-item:nth-child(n+11) { display: none; }
.wpw-dd-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px; cursor: pointer; border-bottom: 1px solid #f5f5f5;
    transition: background .15s;
}
.wpw-dd-item:hover, .wpw-dd-item.active { background: #f0faf5; }
.wpw-dd-item:last-child { border-bottom: none; }
.wpw-dd-thumb { width: 40px; height: 40px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }
.wpw-dd-name  { font-size: 14px; color: #222; flex: 1; }
.wpw-dd-sku   { font-size: 11px; color: #aaa; font-family: monospace; }
.wpw-dd-empty { padding: 12px 14px; font-size: 13px; color: #aaa; text-align: center; }

/* ── Product preview box ────────────────────────────────────── */
#product-preview-box {
    animation: wpw-fadein .2s ease;
}
@keyframes wpw-fadein { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }

/* ── v1.5: dropdown no-photo placeholder ───────────────────── */
.wpw-dd-nophoto {
    width:40px; height:40px; border-radius:4px; flex-shrink:0;
    background:var(--wpw-gray-light,#F1EFE8);
    border:0.5px solid var(--wpw-border,#e0e0e0);
}

/* ── v1.5: preview box no-photo placeholder ─────────────────── */
.wpw-preview-nophoto {
    width:200px; height:200px; border-radius:8px;
    background:var(--wpw-gray-light,#F1EFE8);
    border:1px dashed #ccc; margin:0 auto 12px;
}

/* ── v1.5: preview image 500px ──────────────────────────────── */
#product-preview-img {
    max-width:500px; width:100%; height:auto;
    border-radius:8px; display:block; margin:0 auto;
}

/* ── v1.5: product picker card — ปุ่มขนานกัน ───────────────── */
.wpw-pick-card {
    display:flex; flex-direction:column;
}
.wpw-pick-card .wpw-btn,
.wpw-pick-card .wpw-btn-outline {
    margin-top:auto;
}
.wpw-product-picker {
    align-items:stretch;
}

/* ── v1.5: registration card product image ──────────────────── */
.wpw-reg-product-img {
    width:80px; height:80px; object-fit:cover;
    border-radius:var(--wpw-radius,8px);
    border:1px solid var(--wpw-border,#e0e0e0);
    flex-shrink:0;
}
.wpw-reg-card-head {
    display:flex; justify-content:space-between;
    align-items:center; gap:12px;
    padding:14px 16px; border-bottom:1px solid var(--wpw-border,#e0e0e0);
    background:#fafafa;
}
.wpw-reg-product-info { flex:1; }

/* v1.5 — dropdown no-photo placeholder */
.wpw-dd-nophoto { width:40px;height:40px;border-radius:4px;flex-shrink:0;background:#F1EFE8;border:0.5px solid #e0e0e0; }

/* v1.5 — preview no-photo placeholder */
.wpw-preview-nophoto { width:200px;height:200px;border-radius:8px;background:#F1EFE8;border:1px dashed #ccc;margin:0 auto 12px; }

/* v1.5 — preview image 500px */
#product-preview-img { max-width:500px;width:100%;height:auto;border-radius:8px;display:block;margin:0 auto; }

/* v1.5 — pick card buttons aligned */
.wpw-pick-card { display:flex;flex-direction:column; }
.wpw-pick-card .wpw-btn, .wpw-pick-card .wpw-btn-outline { margin-top:auto; }
.wpw-product-picker { align-items:stretch; }

/* v1.5 — reg card product image */
.wpw-reg-product-img { width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #e0e0e0;flex-shrink:0; }
.wpw-reg-card-head { display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e5e5e5;background:#fafafa; }
.wpw-reg-product-info { flex:1; }

/* v1.6.5 — repair card product image */
.wpw-pick-thumb { width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:1px solid #e0e0e0;margin-bottom:8px;display:block; }
.wpw-pick-thumb-ph { width:100%;aspect-ratio:1;background:#F1EFE8;border-radius:6px;border:1px dashed #ccc;margin-bottom:8px; }
.wpw-pick-thumb-expired { opacity:.7;filter:grayscale(30%); }
.wpw-pick-thumb-ph-expired { background:#FAECE7; }

/* v1.6.5 — My Account pagination */
.wpw-myacc-pagination { display:flex;gap:6px;margin-top:20px;justify-content:center;flex-wrap:wrap; }
.wpw-page-btn { display:inline-block;padding:6px 14px;border:1px solid var(--wpw-border,#e0e0e0);border-radius:6px;font-size:13px;color:var(--wpw-green,#1D9E75);text-decoration:none;background:#fff; }
.wpw-page-btn:hover { background:var(--wpw-green-light,#E1F5EE); }
.wpw-page-active { background:var(--wpw-green,#1D9E75);color:#fff;border-color:var(--wpw-green,#1D9E75); }

/* v1.6.7 — repair product picker: list แนวนอน */
.wpw-pick-list { display:flex;flex-direction:column;gap:10px; }
.wpw-pick-row { display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid #e5e5e5;border-radius:10px;transition:box-shadow .18s; }
.wpw-pick-row:hover { box-shadow:0 2px 8px rgba(0,0,0,.07); }
.wpw-pick-row.wpw-pick-row-expired { background:#fffbf5; }
.wpw-pick-row-thumb { flex-shrink:0;width:68px;height:68px;border-radius:8px;overflow:hidden;background:#f5f5f5;display:flex;align-items:center;justify-content:center; }
.wpw-pick-row-thumb img { width:100%;height:100%;object-fit:contain; }
.wpw-pick-row-thumb-ph { width:68px;height:68px;background:#F1EFE8;border-radius:8px;border:1px dashed #ccc; }
.wpw-pick-row-thumb-ph-exp { background:#FAECE7; }
.wpw-pick-row-info { flex:1;min-width:0; }
.wpw-pick-row-name { font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.wpw-pick-row-meta { font-size:12px;color:#888; }
.wpw-pick-row-action { flex-shrink:0; }
@media(max-width:600px){
    .wpw-pick-row { flex-wrap:wrap; }
    .wpw-pick-row-action { width:100%; }
    .wpw-pick-row-action .wpw-btn { width:100%;text-align:center;display:block; }
}

/* v1.7.5 — Custom multi-file uploader */
.wpw-fix-uploader { margin: 12px 0; }
.wpw-dropzone {
    border: 2px dashed #1D9E75; border-radius: 10px;
    padding: 20px 16px; text-align: center; cursor: pointer;
    background: #f9fffe; transition: background .2s, border-color .2s;
    position: relative;
}
.wpw-dropzone:hover, .wpw-dropzone.wpw-drag-over {
    background: #E1F5EE; border-color: #0F6E56;
}
.wpw-dropzone.wpw-uploader-full {
    opacity: .5; pointer-events: none; cursor: not-allowed;
}
.wpw-dropzone-icon { font-size: 32px; display: block; margin-bottom: 6px; }
.wpw-dropzone-text { font-size: 14px; color: #444; margin: 0 0 8px; }
.wpw-dropzone-btn {
    display: inline-block; background: #1D9E75; color: #fff;
    padding: 6px 18px; border-radius: 6px; font-size: 13px; cursor: pointer;
}
.wpw-file-input { display: none !important; }
.wpw-file-count { display: block; font-size: 12px; color: #888; margin-top: 6px; }
.wpw-preview-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.wpw-preview-item {
    position: relative; width: 90px;
    border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden;
    background: #f5f5f5;
}
.wpw-preview-progress { height: 6px; background: #eee; }
.wpw-progress-bar { height: 100%; background: #1D9E75; width: 0; transition: width .2s; }
.wpw-preview-thumb {
    width: 90px; height: 90px; object-fit: cover; display: block; cursor: pointer;
    transition: opacity .15s;
}
.wpw-preview-thumb:hover { opacity: .8; }
.wpw-preview-label {
    display: block; font-size: 10px; color: #555; padding: 2px 4px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wpw-remove-img {
    position: absolute; top: 3px; right: 3px;
    background: rgba(0,0,0,.55); color: #fff; border: none;
    border-radius: 50%; width: 20px; height: 20px; line-height: 18px;
    text-align: center; font-size: 14px; cursor: pointer; padding: 0;
}
.wpw-remove-img:hover { background: #c00; }
.wpw-preview-name {
    display: block; font-size: 10px; color: #666;
    padding: 4px 6px; word-break: break-all;
}
.wpw-upload-error { color: #c00; font-size: 12px; display: block; padding: 4px; }
.wpw-upload-error-msg {
    background: #fff0f0; border: 1px solid #f5c6c6; color: #c00;
    border-radius: 6px; padding: 8px 12px; font-size: 13px; margin-top: 8px;
}

/* v1.7.5 — Lightbox frontend */
#wpw-lightbox { display: none; }
#wpw-lightbox.active { display: flex; }

/* v1.7.5 — Receipt lightbox trigger */
.wpw-receipt-lightbox img { cursor: pointer; transition: opacity .15s; }
.wpw-receipt-lightbox img:hover { opacity: .8; }

/* v1.7.7 — Active repair badge (duplicate repair prevention) */
.wpw-active-repair-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; background:var(--wpw-amber-light); border:1px solid #e8c87a; border-radius:var(--wpw-radius); font-size:12px; color:#633806; text-decoration:none; white-space:nowrap; }
.wpw-active-repair-badge:hover { background:#f5e0b0; color:#633806; }
.wpw-active-repair-badge .wpw-ticket-no { font-family:monospace; font-weight:600; }

/* v1.7.9 — Disabled repair button */
.wpw-btn-disabled {
    display:inline-block; padding:6px 14px; border-radius:4px;
    background:#f0f0f0; color:#888; font-size:13px; cursor:default;
    border:1px solid #ddd; font-weight:500;
}

/* v1.8.3 — Thank-you lightbox (registration + repair form) ─────────── */
:root {
    /* fallback ถ้า theme ไม่มี --primary-color (Flatsome จะมีค่านี้อยู่แล้ว) */
    --wpw-thanks-accent: var(--primary-color, var(--wpw-green, #1D9E75));
    --wpw-thanks-track:  rgba(0,0,0,.08);
}
.wpw-thanks-overlay {
    position: fixed; inset: 0; z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    background: rgba(20,22,30,.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .25s ease;
    padding: 20px;
}
.wpw-thanks-overlay.wpw-thanks-show { opacity: 1; }

.wpw-thanks-box {
    background: #fff;
    border-radius: 16px;
    padding: 36px 32px 30px;
    width: 100%;
    max-width: 480px;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
    text-align: center;
    transform: scale(.92);
    transition: transform .25s cubic-bezier(.2,.9,.3,1.2);
    position: relative;
    max-height: 92vh;
    overflow-y: auto;
}
.wpw-thanks-overlay.wpw-thanks-show .wpw-thanks-box { transform: scale(1); }

.wpw-thanks-close {
    position: absolute;
    top: 10px; right: 14px;
    background: none; border: none;
    font-size: 28px; line-height: 1;
    color: #999; cursor: pointer;
    width: 32px; height: 32px;
    border-radius: 50%;
    transition: background .15s, color .15s;
    padding: 0;
}
.wpw-thanks-close:hover { background: #f3f3f3; color: #333; }

.wpw-thanks-icon {
    width: 88px; height: 88px;
    margin: 0 auto 18px;
}
.wpw-thanks-svg {
    width: 100%; height: 100%;
    overflow: visible;
}

/* ── State 1 (loading): ─────────────────────────────────────────────── */
/* track = วงกลม background light */
.wpw-thanks-track   { stroke: var(--wpw-thanks-track); }
/* spinner = arc หมุนรอบ — visible by default */
.wpw-thanks-spinner {
    stroke: var(--wpw-thanks-accent);
    stroke-dasharray: 60 213;
    transform-origin: 40px 40px;
    animation: wpw-thanks-rotate 1s linear infinite;
}
/* fill = วงกลมเขียวเต็ม — hidden by default */
.wpw-thanks-fill {
    stroke: var(--wpw-thanks-accent);
    stroke-dasharray: 213;
    stroke-dashoffset: 213;
    transform: rotate(-90deg);
    transform-origin: 40px 40px;
    transition: stroke-dashoffset .5s ease-out;
}
/* checkmark = path ติ๊กถูก — hidden by default */
.wpw-thanks-check {
    stroke: var(--wpw-thanks-accent);
    stroke-dasharray: 50;
    stroke-dashoffset: 50;
    transition: stroke-dashoffset .35s ease-out .25s;
}

/* ── State 2 (success): หยุด spinner → fill วาดวงกลม → ติ๊ก draw-in ── */
.wpw-thanks-overlay.wpw-thanks-success .wpw-thanks-spinner {
    animation: none;
    opacity: 0;
    transition: opacity .2s;
}
.wpw-thanks-overlay.wpw-thanks-success .wpw-thanks-fill {
    stroke-dashoffset: 0;
}
.wpw-thanks-overlay.wpw-thanks-success .wpw-thanks-check {
    stroke-dashoffset: 0;
}

@keyframes wpw-thanks-rotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.wpw-thanks-msg {
    font-size: 16px;
    line-height: 1.55;
    color: #1a1a2e;
    margin: 0;
    font-weight: 600;
}

/* ── v2.2.6: Extra content (คำแนะนำขั้นถัดไป) ────────────────────── */
.wpw-thanks-extra:empty { display: none; }
.wpw-thanks-divider {
    margin: 22px auto 18px;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(0,0,0,.12), transparent);
    border: 0;
}
.wpw-thanks-next {
    text-align: left;
    background: var(--wpw-fw-bg-soft, rgba(0,0,0,.035));
    border: 1px solid var(--wpw-fw-border, rgba(0,0,0,.1));
    border-radius: 12px;
    padding: 16px 18px;
}
.wpw-thanks-next-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--wpw-fw-accent, #185FA5);
    margin-bottom: 10px;
}
.wpw-thanks-next-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: color-mix(in srgb, var(--wpw-fw-accent, #185FA5) 12%, transparent);
    border-radius: 8px;
    flex-shrink: 0;
}
.wpw-thanks-next-icon svg { display: block; }
.wpw-thanks-next-body {
    font-size: 13.5px;
    line-height: 1.65;
    color: #333;
}
.wpw-thanks-next-body strong { color: #1a1a2e; }

/* ขั้นตอน breadcrumb-like */
.wpw-thanks-steps {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 4px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed rgba(0,0,0,.1);
}
.wpw-thanks-step {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #fff;
    border: 1px solid var(--wpw-fw-border, rgba(0,0,0,.1));
    border-radius: 6px;
    font-size: 12px;
    color: #333;
    white-space: nowrap;
}
.wpw-thanks-step em {
    font-style: normal;
    color: var(--wpw-fw-accent, #185FA5);
    font-weight: 600;
    margin: 0 2px;
}
.wpw-thanks-step-arrow {
    color: rgba(0,0,0,.35);
    font-size: 14px;
    line-height: 1;
}

/* ── v2.2.6: Action buttons ─────────────────────────────────────── */
/* ── v2.2.7: CSS Grid layout + high specificity → ปุ่มเท่ากันเสมอ
   (Flatsome theme ใส่ min-width/padding ใน .button → ต้อง override ตรงๆ) */
.wpw-thanks-actions:empty { display: none; }
.wpw-thanks-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 22px;
}
/* a.wpw-thanks-btn เพื่อ specificity สูงกว่า Flatsome .button */
a.wpw-thanks-btn,
button.wpw-thanks-btn {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px 8px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s ease, color .15s ease, transform .15s ease, box-shadow .2s ease;
    line-height: 1.3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-transform: none;
    letter-spacing: normal;
    height: auto;
    /* override Flatsome .button default sizing */
    min-height: 0;
}
a.wpw-thanks-btn:hover,
button.wpw-thanks-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
a.wpw-thanks-btn-primary,
button.wpw-thanks-btn-primary {
    background: var(--wpw-fw-accent, #185FA5);
    color: #fff;
    border-color: var(--wpw-fw-accent, #185FA5);
}
a.wpw-thanks-btn-primary:hover,
button.wpw-thanks-btn-primary:hover { color: #fff; opacity: .92; }
a.wpw-thanks-btn-secondary,
button.wpw-thanks-btn-secondary {
    background: #fff;
    color: #555;
    border-color: var(--wpw-fw-border, rgba(0,0,0,.15));
}
a.wpw-thanks-btn-secondary:hover,
button.wpw-thanks-btn-secondary:hover {
    background: var(--wpw-fw-bg-soft, rgba(0,0,0,.035));
    color: #1a1a2e;
}

@media (max-width: 600px) {
    .wpw-thanks-box { padding: 28px 22px 24px; max-width: 92vw; }
    .wpw-thanks-icon { width: 72px; height: 72px; margin-bottom: 14px; }
    .wpw-thanks-msg { font-size: 15px; }
    .wpw-thanks-next { padding: 14px; }
    .wpw-thanks-next-body { font-size: 13px; }
    .wpw-thanks-steps { gap: 5px 3px; }
    .wpw-thanks-step { font-size: 11px; padding: 3px 8px; }
    /* บนมือถือ stack เป็น 1 คอลัมน์ (primary ล่าง — thumb-friendly) */
    .wpw-thanks-actions {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .wpw-thanks-actions .wpw-thanks-btn-primary { order: 2; }
    .wpw-thanks-actions .wpw-thanks-btn-secondary { order: 1; }
}

/* ── v1.9.0: Product preview ในหน้าฟอร์มแจ้งซ่อม ─────────────
   ใช้ #product-preview-img/#product-preview-name แบบเดียวกับ
   หน้าลงทะเบียนใหม่ → ขนาดและสไตล์อ้างจาก rules เดิมโดยอัตโนมัติ
   ตรงนี้แค่จัด wrapper background + border ────────────────── */
.wpw-repair-product-preview {
    text-align: center;
    margin: 20px 0 24px;
    padding: 16px;
    background: #fafafa;
    border: 1px solid var(--wpw-border, #e0e0e0);
    border-radius: var(--wpw-radius, 8px);
}

/* ── v1.9.9: Repair tracking (ขาเข้า ลูกค้ากรอก / ขากลับ staff กรอก) ── */
.wpw-track-return{
    margin-top:16px;padding:14px 16px;
    background:#f0f7f3;border:1px solid #cfe8db;border-radius:8px;
}
.wpw-track-return-title{font-weight:700;font-size:14px;color:#1D9E75;margin-bottom:8px}
.wpw-track-return-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:3px 0}
.wpw-track-return-row span{color:#777}
.wpw-track-return-row .wpw-track-no{font-family:monospace;letter-spacing:.5px}
.wpw-track-form{
    margin-top:16px;padding:16px;
    background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;
}
.wpw-track-form-title{font-weight:700;font-size:14px;margin-bottom:4px}
.wpw-track-form-hint{font-size:12px;color:#888;margin:0 0 12px}
.wpw-track-label{display:block;font-size:12px;color:#555;margin:8px 0 4px;font-weight:600}
.wpw-track-form .wpw-input{width:100%;max-width:100%}
.wpw-track-form-foot{display:flex;align-items:center;gap:12px;margin-top:12px}
.wpw-track-result{font-size:13px;font-weight:600}

/* v2.0.1 — Tracking proof upload (customer) */
.wpw-proof-block{margin-top:16px;padding-top:14px;border-top:1px dashed #ddd}
.wpw-proof-input{display:block;margin:6px 0 4px;font-size:13px;max-width:100%}
.wpw-proof-current{margin:8px 0}
.wpw-proof-thumb{max-width:120px;max-height:120px;border-radius:8px;border:1px solid #e3e3e3;display:block}
.wpw-proof-thumb-link{display:inline-block}
.wpw-proof-link{display:inline-block;font-size:13px;font-weight:600;color:#185FA5;text-decoration:none}
.wpw-proof-link:hover{text-decoration:underline}
.wpw-proof-result{font-size:13px;font-weight:600}

/* v2.0.2 — Public Dashboard: Thailand SVG map */
.wpw-pd-map-wrap{
    display:grid;
    grid-template-columns:1fr 260px;
    gap:20px;
    align-items:start;
    margin-top:18px;
}
.wpw-pd-map-svg{
    background:linear-gradient(180deg,#f6f9fc 0%,#eef3f8 100%);
    border-radius:10px;
    padding:8px;
    position:relative;
}
.wpw-pd-map-svg .wpw-thailand-svg{
    width:100%;
    height:auto;
    max-height:680px;
    display:block;
}
.wpw-pd-map-svg .wpw-map-region-label{
    font-size:14px;
    font-weight:700;
    opacity:.45;
    pointer-events:none;
    font-family:sans-serif;
}
.wpw-pd-map-svg .wpw-prov-dot{
    cursor:default;
    transition:all .15s ease;
}
.wpw-pd-map-svg .wpw-prov-dot:hover{
    fill-opacity:1 !important;
    stroke-width:2.5 !important;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
.wpw-pd-map-legend{
    background:#fafbfc;
    border:1px solid #e6e8eb;
    border-radius:8px;
    padding:14px;
}
.wpw-pd-map-legend .wpw-pd-subh{margin:0 0 10px;font-size:14px;color:#555}
/* v2.0.3 — legend list inherits styling from inline dashboard_css (single-col + rank counter) */

/* v2.0.3 — public dashboard card sub-text (also set in inline dashboard_css for FOUC safety) */
.wpw-pd-card-sub{
    font-size:11px;
    color:#888;
    margin-top:3px;
    font-weight:500;
    line-height:1.3;
}
.wpw-pd-card-val{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    line-height:1.15;
}

.wpw-pd-map-tooltip{
    position:fixed;
    background:#1a1a2e;
    color:#fff;
    padding:8px 12px;
    border-radius:6px;
    font-size:13px;
    font-weight:500;
    pointer-events:none;
    z-index:9999;
    box-shadow:0 4px 12px rgba(0,0,0,.25);
    white-space:nowrap;
}
.wpw-pd-map-tooltip .wpw-pd-tt-prov{font-weight:600}
.wpw-pd-map-tooltip .wpw-pd-tt-cnt{color:#7ad6ff}
.wpw-pd-map-tooltip .wpw-pd-tt-region{font-size:11px;opacity:.7;margin-top:2px}

@media (max-width:780px){
    .wpw-pd-map-wrap{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════════════════
   v2.2.5 — My Account UI Overhaul
   จับคู่ design system ของ flatsome-woocom-user-ui v1.3.3:
   - radius 14px (การ์ด) / 10px (ปุ่ม-ช่องกรอก)
   - accent ผูกกับสีหลักธีม Flatsome (--fs-color-primary)
   - soft border + hover shadow + translateY
   - status pill แบบ soft background
   ════════════════════════════════════════════════════════════════ */
:root {
    --wpw-fw-accent: var(--fs-color-primary, #185FA5);
    --wpw-fw-success: var(--fs-color-success, #1D9E75);
    --wpw-fw-alert: var(--fs-color-alert, #b20000);
    --wpw-fw-orange: #e67e22;
    --wpw-fw-border: rgba(0, 0, 0, 0.1);
    --wpw-fw-bg-soft: rgba(0, 0, 0, 0.035);
    --wpw-fw-muted: rgba(0, 0, 0, 0.55);
    --wpw-fw-radius: 14px;
    --wpw-fw-radius-sm: 10px;
    --wpw-fw-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    --wpw-fw-shadow-hover: 0 6px 24px rgba(0, 0, 0, 0.10);
}

/* ── Section title — เส้นใต้สี accent ของธีม ───────────────── */
.wpw-myaccount .wpw-section-title {
    font-size: 16px;
    font-weight: 600;
    margin: 24px 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--wpw-fw-accent);
}

/* ── Back link (v2.2.5 UX) ──────────────────────────────────── */
.wpw-back-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--wpw-fw-muted);
    text-decoration: none;
    margin-bottom: 4px;
    padding: 4px 10px;
    margin-left: -10px;
    border-radius: 8px;
    transition: background 0.15s ease, color 0.15s ease;
}
.wpw-back-link:hover {
    background: var(--wpw-fw-bg-soft);
    color: var(--wpw-fw-accent);
}

/* ── Summary cards → FWUI stat style ───────────────────────── */
.wpw-myaccount .wpw-sum-card {
    background: #fff;
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    padding: 18px 14px;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
}
.wpw-myaccount .wpw-sum-card:hover {
    border-color: var(--wpw-fw-accent);
    box-shadow: var(--wpw-fw-shadow);
    transform: translateY(-2px);
}
.wpw-myaccount .wpw-sum-card.wpw-sum-ok   { border-top: 3px solid var(--wpw-fw-success); }
.wpw-myaccount .wpw-sum-card.wpw-sum-warn { border-top: 3px solid var(--wpw-fw-orange); }
.wpw-myaccount .wpw-sum-value { font-size: 24px; font-weight: 700; line-height: 1.1; }
.wpw-myaccount .wpw-sum-label { font-size: 12px; opacity: 0.55; margin-top: 4px; }

/* ── Registration cards ─────────────────────────────────────── */
.wpw-myaccount .wpw-reg-card {
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    transition: box-shadow 0.25s ease;
}
.wpw-myaccount .wpw-reg-card:hover { box-shadow: var(--wpw-fw-shadow); }
.wpw-myaccount .wpw-reg-card-head {
    background: var(--wpw-fw-bg-soft);
    border-bottom: 1px solid var(--wpw-fw-border);
}
.wpw-myaccount .wpw-reg-card-foot {
    background: var(--wpw-fw-bg-soft);
    border-top: 1px solid var(--wpw-fw-border);
}
.wpw-myaccount .wpw-reg-product-img { border-radius: var(--wpw-fw-radius-sm); }
.wpw-myaccount .wpw-countdown-num { color: var(--wpw-fw-success); }
.wpw-myaccount .wpw-war-fill { background: var(--wpw-fw-success); }

/* ── Badges → soft pill (อิง .fwui-status) ──────────────────── */
.wpw-myaccount .wpw-badge,
.wpw-myaccount .wpw-option-badge {
    padding: 3px 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
}
.wpw-myaccount .wpw-badge-ok      { background: #eaf3de; color: #3b6d11; }
.wpw-myaccount .wpw-badge-warn    { background: #faeeda; color: #854f0b; }
.wpw-myaccount .wpw-badge-info    { background: #e6f1fb; color: #185fa5; }
.wpw-myaccount .wpw-badge-pending { background: #fdf3e7; color: #9a6700; }

/* ── Repair option blocks ───────────────────────────────────── */
.wpw-myaccount .wpw-repair-option {
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    transition: box-shadow 0.25s ease;
}
.wpw-myaccount .wpw-repair-option:hover { box-shadow: var(--wpw-fw-shadow); }
.wpw-myaccount .wpw-option-warranty   { border-left: 4px solid var(--wpw-fw-success); }
.wpw-myaccount .wpw-option-nowarranty { border-left: 4px solid var(--wpw-fw-orange); }

/* ── Pick rows ──────────────────────────────────────────────── */
.wpw-myaccount .wpw-pick-row {
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius-sm);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.wpw-myaccount .wpw-pick-row:hover {
    border-color: var(--wpw-fw-accent);
    box-shadow: var(--wpw-fw-shadow);
    transform: translateY(-1px);
}
.wpw-myaccount .wpw-pick-row-thumb { border-radius: var(--wpw-fw-radius-sm); }

/* Days tier — สีตามวันคงเหลือ (v2.2.5) */
.wpw-myaccount .wpw-days          { color: var(--wpw-fw-success); }
.wpw-myaccount .wpw-days-low      { color: var(--wpw-fw-orange); }
.wpw-myaccount .wpw-days-crit     { color: var(--wpw-fw-alert); }

/* ── Buttons → FWUI button feel ─────────────────────────────── */
.wpw-myaccount .wpw-btn {
    border-radius: 8px;
    font-weight: 600;
    transition: opacity 0.15s ease, transform 0.15s ease, box-shadow 0.2s ease;
}
.wpw-myaccount .wpw-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.wpw-myaccount .wpw-toggle-detail { border-radius: 8px; }

/* ── Repair history list ────────────────────────────────────── */
.wpw-myaccount .wpw-repair-list {
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    box-shadow: var(--wpw-fw-shadow);
}
.wpw-myaccount .wpw-repair-row { border-bottom: 1px solid var(--wpw-fw-border); }
.wpw-myaccount .wpw-repair-row:hover { background: var(--wpw-fw-bg-soft); }

/* ── Pagination pills ───────────────────────────────────────── */
.wpw-myaccount .wpw-page-btn {
    border-radius: 8px;
    border-color: var(--wpw-fw-border);
    color: var(--wpw-fw-accent);
    transition: background 0.15s ease;
}
.wpw-myaccount .wpw-page-btn:hover { background: var(--wpw-fw-bg-soft); }
.wpw-myaccount .wpw-page-active {
    background: var(--wpw-fw-accent);
    border-color: var(--wpw-fw-accent);
    color: #fff;
}

/* ── #4: Repair form preview — จำกัดรูปเท่าหน้าลงทะเบียน ──── */
.wpw-repair-product-preview {
    background: var(--wpw-fw-bg-soft);
    border: 1px dashed var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
}
.wpw-repair-product-preview #product-preview-img {
    max-width: 180px;
    max-height: 180px;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: var(--wpw-fw-radius-sm);
}
.wpw-repair-product-preview #product-preview-name {
    font-size: 15px;
    font-weight: 600;
    margin-top: 10px;
}
.wpw-repair-product-preview .wpw-preview-meta {
    font-size: 12px;
    color: var(--wpw-fw-muted);
    margin-top: 4px;
}

/* ── #5: ช่องกรอกข้อมูล — ขอบมนตามสไตล์เว็บ ────────────────── */
.wpw-myaccount .wpw-input,
.wpw-myaccount .wpw-select,
.wpw-myaccount input[type="text"],
.wpw-myaccount input[type="email"],
.wpw-myaccount input[type="tel"],
.wpw-myaccount input[type="date"],
.wpw-myaccount input[type="number"],
.wpw-myaccount select,
.wpw-myaccount textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius-sm);
    font-size: 14px;
    box-shadow: none;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.wpw-myaccount .wpw-input:focus,
.wpw-myaccount .wpw-select:focus,
.wpw-myaccount input[type="text"]:focus,
.wpw-myaccount input[type="email"]:focus,
.wpw-myaccount input[type="tel"]:focus,
.wpw-myaccount input[type="date"]:focus,
.wpw-myaccount input[type="number"]:focus,
.wpw-myaccount select:focus,
.wpw-myaccount textarea:focus {
    outline: none;
    border-color: var(--wpw-fw-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--wpw-fw-accent) 14%, transparent);
}
.wpw-myaccount .wpcf7 label {
    font-size: 13px;
    opacity: 0.75;
    margin-bottom: 5px;
}

/* CF7 submit ใน my-account — ปุ่มหลักเต็มความกว้างบนมือถือ */
.wpw-myaccount .wpcf7-submit {
    border-radius: 8px;
    font-weight: 600;
    padding: 12px 28px;
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.wpw-myaccount .wpcf7-submit:hover { transform: translateY(-1px); opacity: 0.92; }

/* ── Step tracker → FWUI tracker style ──────────────────────── */
.wpw-steps { padding: 22px 14px 18px; }
.wpw-step-dot {
    width: 18px;
    height: 18px;
    border: 2px solid var(--wpw-fw-border);
    background: #fff;
    transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.wpw-step-done .wpw-step-dot {
    background: var(--wpw-fw-accent);
    border-color: var(--wpw-fw-accent);
}
.wpw-step-done .wpw-step-label { color: var(--wpw-fw-accent); font-weight: 600; }
.wpw-step-active .wpw-step-dot {
    background: #fff;
    border-color: var(--wpw-fw-accent);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--wpw-fw-accent) 14%, transparent);
    animation: wpw-tk-pulse 2s ease-in-out infinite;
}
.wpw-step-active .wpw-step-label { color: var(--wpw-fw-accent); font-weight: 700; }
.wpw-step-line { height: 3px; border-radius: 2px; }
.wpw-step-done + .wpw-step-line,
.wpw-step-line.wpw-line-done { background: var(--wpw-fw-accent); }
@keyframes wpw-tk-pulse {
    0%, 100% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--wpw-fw-accent) 14%, transparent); }
    50%      { box-shadow: 0 0 0 9px color-mix(in srgb, var(--wpw-fw-accent) 7%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
    .wpw-step-active .wpw-step-dot { animation: none; }
}

/* ── Result card (timeline detail) ──────────────────────────── */
.wpw-myaccount .wpw-result-card,
.wpw-repair-detail .wpw-result-card {
    border: 1px solid var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    box-shadow: var(--wpw-fw-shadow);
}

/* ── Empty state ────────────────────────────────────────────── */
.wpw-myaccount .wpw-empty-state {
    background: var(--wpw-fw-bg-soft);
    border: 1px dashed var(--wpw-fw-border);
    border-radius: var(--wpw-fw-radius);
    padding: 48px 20px;
}

/* ── Notices มุมมนขึ้น ──────────────────────────────────────── */
.wpw-myaccount .wpw-notice { border-radius: var(--wpw-fw-radius-sm); }

/* ── Mobile (≤600px) ────────────────────────────────────────── */
@media (max-width: 600px) {
    .wpw-myaccount .wpw-sum-card { padding: 14px 10px; }
    .wpw-myaccount .wpw-sum-value { font-size: 20px; }
    .wpw-myaccount .wpcf7-submit { width: 100%; }
    .wpw-repair-product-preview #product-preview-img { max-width: 140px; max-height: 140px; }
}

/* ──────────────────────────────────────────────────────────────
   v2.3.0 — Birthday field (CF7 + WC edit-account)
   ────────────────────────────────────────────────────────────── */
.wpw-bday-fieldset {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 14px 16px 6px;
    margin: 18px 0;
    background: #fafbff;
}
.wpw-bday-fieldset legend {
    padding: 0 8px;
    font-weight: 600;
    color: #333;
}
.wpw-bday-input {
    width: 100%;
    max-width: 320px;
    padding: 10px 12px;
    border: 1px solid #d0d4dc;
    border-radius: 10px;
    font-size: 15px;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.wpw-bday-input:focus {
    outline: none;
    border-color: var(--fs-color-primary, #185FA5);
    box-shadow: 0 0 0 3px rgba(24,95,165,0.12);
}
.wpw-bday-input.is-locked,
.wpw-bday-input[readonly] {
    background: #f4f4f6;
    color: #555;
    cursor: not-allowed;
}
.wpw-bday-lock-note {
    display: inline-block;
    margin-top: 6px;
    margin-left: 8px;
    font-size: 12px;
    color: #b45309;
    font-weight: 500;
}
.wpw-bday-hint {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #6b7280;
}
