
.dspc-loyalty-form input{max-width:360px;width:100%;padding:8px}
.dspc-loyalty-form button{padding:10px 18px;cursor:pointer}
.dspc-login-form{width:min(100%,420px);max-width:420px;margin:0 auto;text-align:left}
.dspc-login-form p{width:100%;margin-left:auto;margin-right:auto}
.dspc-login-form label{display:block}
.dspc-login-form input[name="dspc_login"],
.dspc-login-form input[name="dspc_password"],
.dspc-login-form input[type="password"]{display:block;width:100%!important;max-width:420px!important;min-height:48px;box-sizing:border-box}
.dspc-login-form button[type="submit"],
.dspc-login-form button[name="dspc_custom_login_submit"],
.dspc-login-form button[name="dspc_loyalty_login_submit"]{display:inline-flex;align-items:center;justify-content:center;min-width:180px}
.dspc-login-form p:has(button),
.dspc-login-form p:has(.dspc-button-secondary),
.dspc-login-form p:has(a[href*="forgot"]),
.dspc-login-form p:has(a[href*="lostpassword"]){text-align:center}
.dspc-loyalty-profile{border:1px solid #ddd;padding:16px;max-width:420px}
.dspc-member-card{border:1px solid #ddd;border-radius:12px;max-width:560px;overflow:hidden;font-family:Arial,sans-serif}
.dspc-member-card-header{padding:14px 18px;font-size:20px;font-weight:bold;background:#f3f3f3}
.dspc-member-card-body{display:flex;gap:20px;align-items:center;padding:18px}
.dspc-member-card-info{flex:1}
.dspc-member-card-info p{margin:6px 0}
.dspc-member-name{font-size:18px;font-weight:bold}
.dspc-member-card-qr img{width:180px;height:180px}
@media(max-width:600px){.dspc-member-card-body{display:block}.dspc-member-card-qr{margin-top:16px}}

.dspc-document-upload{border:1px solid #ddd;padding:16px;max-width:560px;margin:16px 0}
.dspc-notice-success{border-left:4px solid #46b450;background:#f1fff1;padding:10px 14px;margin:12px 0}

.dspc-privacy-notice{border:1px solid #ddd;padding:16px;max-width:720px;background:#fafafa;margin:16px 0}

.dspc-declaration-assistant{border:1px solid #ddd;border-radius:8px;background:#fafafa;padding:16px;margin:16px 0;max-width:720px;box-sizing:border-box}
.dspc-declaration-assistant h4{margin:0 0 10px}
.dspc-declaration-assistant p{margin:0 0 12px}
.dspc-declaration-assistant-text{display:block;width:100%;max-width:100%;box-sizing:border-box;min-height:160px;resize:vertical}
.dspc-declaration-assistant-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.dspc-declaration-copy-button,
.dspc-declaration-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border:1px solid #0B1F3A;border-radius:6px;background:#0B1F3A;color:#fff;text-decoration:none;cursor:pointer;box-sizing:border-box}
.dspc-declaration-link-button{background:#fff;color:#0B1F3A}
.dspc-declaration-copy-status{display:inline-block;min-height:20px;color:#22543d}

.dspc-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:16px 0 24px}
.dspc-report-card{background:#fff;border:1px solid #ccd0d4;border-radius:8px;padding:16px}
.dspc-report-value{font-size:24px;font-weight:700;margin-bottom:6px}
.dspc-report-label{color:#555}

.dspc-member-card-barcode{border-top:1px solid #eee;padding:14px 18px;text-align:center;background:#fff}
.dspc-loyalty-barcode{max-width:520px;overflow:auto;padding:12px;border:1px solid #ddd;background:#fff}
.dspc-barcode-svg{max-width:100%;height:auto}

.dspc-card-download{display:inline-block;margin-top:14px;padding:10px 14px;background:#0B1F3A;color:#fff;text-decoration:none;border-radius:6px}

.dspc-ocr-confirm{border:1px solid #ddd;padding:18px;max-width:720px;background:#fff;margin:16px 0}
.dspc-ocr-confirm details{margin:12px 0}

.dspc-rewards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin:20px 0}
.dspc-reward-card{background:#fff;border:1px solid #ddd;border-radius:12px;padding:18px;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.dspc-reward-card h3{margin-top:0}
.dspc-reward-disabled{color:#9a3412;background:#fff7ed;padding:8px;border-radius:6px}

.dspc-merchant-portal{background:#fff;border:1px solid #ddd;border-radius:12px;padding:18px;margin:18px 0}
.dspc-merchant-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:18px 0}
.dspc-merchant-widget{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:14px}
.dspc-merchant-widget span{display:block;font-size:24px;font-weight:700;margin-top:8px}
.dspc-table{width:100%;border-collapse:collapse;margin-top:12px}
.dspc-table th,.dspc-table td{border:1px solid #e5e7eb;padding:8px;text-align:left}

.dspc-mobile-card{max-width:430px;margin:18px auto;background:#fff;border-radius:22px;box-shadow:0 12px 32px rgba(0,0,0,.12);overflow:hidden;text-align:center;border:1px solid #e5e7eb}
.dspc-mobile-card-header{background:#0B1F3A;color:#fff;padding:22px}
.dspc-mobile-card-header h2{margin:0 0 6px}
.dspc-mobile-card-points{font-size:42px;font-weight:800;padding:18px;color:#0B1F3A}
.dspc-mobile-card-points span{display:block;font-size:13px;font-weight:400;color:#555}
.dspc-mobile-card-qr img{width:230px;height:230px}
.dspc-mobile-card-barcode{padding:14px;overflow:auto}
.dspc-mobile-card-code{font-weight:700;letter-spacing:1px}
.dspc-install-pwa{margin:16px;padding:12px 16px;background:#C9A227;color:#0B1F3A;border:0;border-radius:8px;font-weight:700}
@media(max-width:480px){.dspc-mobile-card{margin:8px}.dspc-mobile-card-qr img{width:210px;height:210px}}

.dspc-delete-request-form{border-top:1px solid #ddd;margin-top:18px;padding-top:18px;background:#fff7ed;padding:14px;border-radius:8px}

.dspc-profile-tabs{background:#fff;border:1px solid #ddd;border-radius:12px;padding:16px;margin:18px 0}
.dspc-tabs-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.dspc-tabs-nav button{padding:10px 12px;border:1px solid #ddd;background:#f8fafc;border-radius:8px;cursor:pointer}
.dspc-profile-photo-preview{width:120px;height:120px;object-fit:cover;border-radius:12px;border:1px solid #ddd}
.dspc-flip-card{width:340px;height:520px;perspective:1000px;margin:20px auto;cursor:pointer}
.dspc-flip-card-inner{position:relative;width:100%;height:100%;transition:transform .7s;transform-style:preserve-3d}
.dspc-flip-card.is-flipped .dspc-flip-card-inner{transform:rotateY(180deg)}
.dspc-flip-card-front,.dspc-flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;background:#fff;border:1px solid #ddd;border-radius:22px;box-shadow:0 12px 30px rgba(0,0,0,.12);padding:20px;text-align:center;box-sizing:border-box}
.dspc-flip-card-front{background:linear-gradient(160deg,#0B1F3A,#173a67);color:#fff}
.dspc-flip-card-back{transform:rotateY(180deg);background:#fff;color:#0B1F3A}
.dspc-card-photo,.dspc-card-photo-placeholder{width:120px;height:120px;border-radius:50%;object-fit:cover;margin:12px auto;border:3px solid #C9A227;background:#e5e7eb;display:flex;align-items:center;justify-content:center;color:#0B1F3A}
.dspc-card-qr{width:160px;height:160px;background:#fff;padding:8px;border-radius:12px}
.dspc-card-barcode{overflow:auto;background:#f8fafc;padding:10px;border-radius:10px;margin:14px 0}
.dspc-points-transfer-form{background:#f8fafc;border:1px solid #e5e7eb;padding:14px;border-radius:10px}
@media(max-width:420px){.dspc-flip-card{width:300px;height:500px}}

.dspc-family-dashboard{background:#fff;border:1px solid #ddd;border-radius:12px;padding:18px;margin:18px 0}
.dspc-family-dashboard h3,.dspc-family-dashboard h4{margin-top:12px}
.dspc-family-transfer-form{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:14px}
.dspc-family-offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:14px 0}
.dspc-family-offer-card{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:14px}

/* v3.1.4 responsive safety layer */
.dspc-loyalty-profile,
.dspc-document-upload,
.dspc-ocr-confirm,
.dspc-privacy-notice,
.dspc-declaration-assistant,
.dspc-merchant-portal,
.dspc-profile-tabs,
.dspc-family-dashboard,
.dspc-member-card,
.dspc-card-platform-240{
    max-width:100%;
    box-sizing:border-box;
}

.dspc-table-wrap,
.dspc-table,
.dspc-member-card-barcode,
.dspc-mobile-card-barcode,
.dspc-card-barcode,
.dspc-loyalty-barcode{
    max-width:100%;
    overflow-x:auto;
}

.dspc-table{
    min-width:640px;
}

.dspc-loyalty-form input,
.dspc-loyalty-form select,
.dspc-loyalty-form textarea,
.dspc-document-upload input,
.dspc-document-upload select,
.dspc-document-upload textarea,
.dspc-declaration-assistant textarea,
.dspc-profile-tabs input,
.dspc-profile-tabs select,
.dspc-profile-tabs textarea,
.dspc-merchant-portal input,
.dspc-merchant-portal select,
.dspc-merchant-portal textarea,
.dspc-family-dashboard input,
.dspc-family-dashboard select,
.dspc-family-dashboard textarea{
    max-width:100%;
    box-sizing:border-box;
}

.dspc-member-card-body,
.dspc-merchant-widgets,
.dspc-report-grid,
.dspc-rewards-grid,
.dspc-family-offers{
    min-width:0;
}

.dspc-card-platform-240 .dspc-card-frame{
    width:min(100%,900px);
    max-width:100%;
    aspect-ratio:760/479;
    position:relative;
}

.dspc-card-platform-240 .dspc-card-flip{
    width:760px;
    height:479px;
    max-width:none;
    transform-origin:top left;
}

.dspc-card-platform-240 .dspc-member-card-actions{
    max-width:100%;
}

@media(max-width:900px){
    .dspc-member-card-body{
        align-items:flex-start;
    }
    .dspc-tabs-nav{
        overflow-x:auto;
        flex-wrap:nowrap;
        padding-bottom:4px;
    }
    .dspc-tabs-nav button{
        flex:0 0 auto;
        white-space:nowrap;
    }
}

@media(max-width:640px){
    .dspc-loyalty-profile,
    .dspc-document-upload,
    .dspc-ocr-confirm,
    .dspc-privacy-notice,
    .dspc-declaration-assistant,
    .dspc-merchant-portal,
    .dspc-profile-tabs,
    .dspc-family-dashboard{
        padding:12px;
        margin-left:0;
        margin-right:0;
    }
    .dspc-member-card-body{
        display:block;
    }
    .dspc-member-card-qr img,
    .dspc-mobile-card-qr img{
        width:min(220px,80vw);
        height:min(220px,80vw);
    }
    .dspc-flip-card{
        width:min(340px,92vw);
        height:500px;
    }
    .dspc-card-platform-240 .dspc-member-card-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .dspc-card-platform-240 .dspc-member-card-actions a,
    .dspc-card-platform-240 .dspc-member-card-actions button{
        text-align:center;
        width:100%;
    }
}

/* v3.1.5 responsive hardening across platform forms, cards and dashboards */
.dspc-loyalty-form,
.dspc-loyalty-profile,
.dspc-member-card,
.dspc-document-upload,
.dspc-ocr-confirm,
.dspc-privacy-notice,
.dspc-card-platform-240,
.dspc-family-dashboard,
.dspc-merchant-portal,
.dspc-rewards,
.dspc-delete-request-form{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

.dspc-loyalty-form input,
.dspc-loyalty-form select,
.dspc-loyalty-form textarea,
.dspc-document-upload input,
.dspc-ocr-confirm input,
.dspc-ocr-confirm select,
.dspc-ocr-confirm textarea{
    max-width:100%;
    box-sizing:border-box;
}

.dspc-member-card-body,
.dspc-profile-grid,
.dspc-family-grid,
.dspc-rewards-grid,
.dspc-merchant-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:14px;
    align-items:start;
}

.dspc-table-scroll,
.dspc-merchant-portal table,
.dspc-family-dashboard table,
.dspc-loyalty-profile table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
}

.dspc-card-platform-240 .dspc-member-card-actions a,
.dspc-card-platform-240 .dspc-member-card-actions button{
    white-space:normal;
    text-align:center;
}

.dspc-loyalty-form input[name="dspc_login"]{
    width:min(100%,420px);
    max-width:420px;
}

.dspc-login-form input[name="dspc_login"],
.dspc-login-form input[name="dspc_password"],
.dspc-login-form input[type="password"]{
    width:100%!important;
    max-width:420px!important;
}

.dspc-card-platform-240{
    overflow:visible;
}

@media(max-width:640px){
    .dspc-loyalty-form input,
    .dspc-loyalty-form select,
    .dspc-loyalty-form textarea,
    .dspc-document-upload input,
    .dspc-declaration-assistant textarea,
    .dspc-ocr-confirm input,
    .dspc-ocr-confirm select,
    .dspc-ocr-confirm textarea{
        width:100%;
    }
    .dspc-member-card,
    .dspc-loyalty-profile,
    .dspc-document-upload,
    .dspc-declaration-assistant,
    .dspc-ocr-confirm{
        padding-left:10px;
        padding-right:10px;
    }
    .dspc-declaration-assistant-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .dspc-declaration-copy-button,
    .dspc-declaration-link-button{
        width:100%;
    }
}

@media(max-width:640px){
    .dspc-loyalty-form input[name="dspc_login"]{
        width:100%;
        max-width:420px;
    }
}
