/* Weight Loss Blueprint - isolated frontend styles */
.wlb-modal[hidden] { display:none !important; }
.wlb-modal {
    display:none !important;
    position:fixed !important;
    inset:0 !important;
    z-index:999999 !important;
    align-items:center !important;
    justify-content:center !important;
    padding:20px !important;
    box-sizing:border-box !important;
}
.wlb-modal.wlb-is-open { display:flex !important; }
.wlb-overlay {
    position:absolute !important;
    inset:0 !important;
    background:rgba(0,0,0,.68) !important;
}
.wlb-dialog {
    position:relative !important;
    z-index:2 !important;
    width:min(100%, 520px) !important;
    max-height:90vh !important;
    overflow:auto !important;
    background:#fff !important;
    color:#1d2327 !important;
    border-radius:12px !important;
    padding:32px !important;
    box-sizing:border-box !important;
    box-shadow:0 20px 70px rgba(0,0,0,.28) !important;
    font-family:inherit !important;
}
.wlb-dialog * { box-sizing:border-box; }
.wlb-dialog h2 {
    margin:0 35px 10px 0 !important;
    color:#1d2327 !important;
    font-size:28px !important;
    line-height:1.2 !important;
}
.wlb-description {
    margin:0 0 22px !important;
    color:#50575e !important;
    font-size:15px !important;
    line-height:1.55 !important;
}
.wlb-close {
    position:absolute !important;
    right:12px !important;
    top:8px !important;
    width:auto !important;
    min-width:0 !important;
    padding:4px 8px !important;
    border:0 !important;
    background:transparent !important;
    color:#333 !important;
    font-size:30px !important;
    line-height:1 !important;
    cursor:pointer !important;
    box-shadow:none !important;
}
.wlb-field { margin:0 0 16px !important; }
.wlb-field label {
    display:block !important;
    margin:0 0 7px !important;
    color:#1d2327 !important;
    font-size:15px !important;
    line-height:1.4 !important;
    font-weight:600 !important;
}
.wlb-field input {
    display:block !important;
    width:100% !important;
    min-height:48px !important;
    margin:0 !important;
    padding:10px 12px !important;
    border:1px solid #c7c9cc !important;
    border-radius:6px !important;
    background:#fff !important;
    color:#1d2327 !important;
    font-size:16px !important;
    line-height:1.4 !important;
    box-shadow:none !important;
}
.wlb-field input:focus {
    outline:2px solid #2271b1 !important;
    outline-offset:1px !important;
    border-color:#2271b1 !important;
}
.wlb-submit, .wlb-success-close {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:48px !important;
    border:0 !important;
    border-radius:6px !important;
    padding:11px 20px !important;
    cursor:pointer !important;
    font-size:16px !important;
    line-height:1.3 !important;
    font-weight:600 !important;
    text-decoration:none !important;
}
.wlb-submit {
    width:100% !important;
    background:#2271b1 !important;
    color:#fff !important;
}
.wlb-submit:hover { opacity:.92 !important; }
.wlb-submit[disabled] { opacity:.65 !important; cursor:wait !important; }
.wlb-message { margin-top:14px !important; font-size:14px !important; line-height:1.45 !important; }
.wlb-message.error { color:#b42318 !important; }
.wlb-message.success { color:#067647 !important; }
.wlb-success-view { text-align:center !important; padding:20px 5px 5px !important; }
.wlb-success-icon {
    width:58px !important;
    height:58px !important;
    border-radius:50% !important;
    margin:0 auto 16px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#e8f7ee !important;
    color:#137333 !important;
    font-size:30px !important;
    font-weight:700 !important;
}
.wlb-success-text { color:#1d2327 !important; font-size:18px !important; line-height:1.5 !important; margin:0 0 20px !important; }
.wlb-success-close { background:#2271b1 !important; color:#fff !important; }
.wlb-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
body.wlb-open { overflow:hidden !important; }
@media(max-width:600px) {
    .wlb-modal { padding:12px !important; }
    .wlb-dialog { padding:25px 20px !important; border-radius:10px !important; }
    .wlb-dialog h2 { font-size:23px !important; }
}
