:root{--phas-red:#cc0000;--phas-dark:#202125;--phas-border:#e8e8ea;--phas-muted:#777;--phas-bg:#fff}
body.phas-lock{overflow:hidden}
.phas-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:18px;font-family:inherit}
.phas-modal.is-open{display:flex}.phas-backdrop{position:absolute;inset:0;background:rgba(12,13,15,.62);backdrop-filter:blur(8px)}
.phas-dialog{position:relative;width:min(100%,480px);max-height:calc(100vh - 36px);overflow:auto;background:var(--phas-bg);border-radius:24px;padding:32px;box-shadow:0 30px 90px rgba(0,0,0,.24);color:var(--phas-dark)}
.phas-close{position:absolute;left:18px;top:15px;border:0;background:#f2f2f3;width:34px;height:34px;border-radius:50%;font-size:25px;line-height:30px;cursor:pointer;color:#444}
.phas-header{margin-bottom:18px}.phas-branding{display:flex;align-items:center;gap:14px;margin-bottom:6px}.phas-brand-logo{width:58px;height:58px;display:block;flex:0 0 58px}.phas-brand-copy{min-width:0}.phas-brand-title{font-size:16px;font-weight:900;color:var(--phas-red);line-height:1.4}.phas-brand-slogan{font-size:12px;line-height:1.9;color:#6b7280}.phas-dialog h2{font-size:25px;margin:0 0 5px}.phas-dialog h3{font-size:19px;margin:8px 0 8px}.phas-subtitle,.phas-otp-copy{color:var(--phas-muted);font-size:13px;margin:0 0 22px;line-height:1.9}
.phas-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f4f4f5;border-radius:13px;padding:4px;margin:17px 0 20px}.phas-tabs button{border:0;background:transparent;border-radius:10px;padding:11px;cursor:pointer;font:inherit;font-weight:700;color:#777}.phas-tabs button.active{background:#fff;color:var(--phas-dark);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.phas-panel label{display:block;font-size:13px;font-weight:700;margin:0 0 15px}.phas-panel input[type=text],.phas-panel input[type=email],.phas-panel input[type=tel],.phas-panel input[type=password]{box-sizing:border-box;width:100%;height:48px;border:1px solid var(--phas-border);background:#fff;border-radius:12px;padding:0 14px;margin-top:7px;outline:none;font:inherit;font-size:14px;transition:.18s}.phas-panel input:focus{border-color:#aaa;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.phas-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.phas-primary{width:100%;border:0;background:var(--phas-red);color:#fff;min-height:49px;border-radius:13px;font:inherit;font-weight:800;cursor:pointer;margin-top:5px;transition:.18s}.phas-primary:hover{filter:brightness(.92)}
.phas-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px}.phas-check{display:flex!important;align-items:flex-start;gap:8px;font-weight:500!important;margin:0!important;line-height:1.8}.phas-check input{margin-top:5px}.phas-terms{font-size:12px!important;margin:5px 0 15px!important}.phas-terms a{color:var(--phas-red);text-decoration:none}
.phas-link,.phas-back{border:0;background:none;padding:0;color:var(--phas-red);font:inherit;font-size:12px;cursor:pointer}.phas-back{margin-bottom:10px;color:#666}.phas-password{position:relative}.phas-password button{position:absolute;left:8px;top:15px;border:0;background:transparent;color:#777;font:inherit;font-size:11px;cursor:pointer}.phas-password input{padding-left:58px!important}
.phas-alert{border-radius:11px;padding:10px 12px;margin:14px 0;font-size:12px;line-height:1.8;background:#fff2f2;color:#9c0000;border:1px solid #ffd6d6}.phas-alert.success{background:#eefaf2;color:#176c37;border-color:#cdebd7}
.phas-google-wrap{margin-top:18px;font-family:inherit;width:100%;max-width:100%;overflow:visible}.phas-google-wrap>div:first-child{min-height:44px;width:100%!important;max-width:100%!important;font-family:inherit;overflow:visible!important;display:flex;justify-content:center;direction:ltr!important}.phas-google-wrap>div:first-child>div{width:100%!important;max-width:none!important;margin:0!important;overflow:visible!important;direction:ltr!important}.phas-google-wrap iframe{display:block!important;max-width:none!important;color-scheme:light!important}.phas-divider{display:flex;align-items:center;gap:10px;color:#999;font-size:11px;margin:15px 0}.phas-divider:before,.phas-divider:after{content:"";height:1px;background:#eee;flex:1}
.phas-otp{display:flex;gap:10px;justify-content:center;margin:22px 0}.phas-otp input{width:54px!important;height:58px!important;text-align:center;font-size:24px!important;font-weight:800!important;margin:0!important;padding:0!important;border-radius:13px!important}.phas-resend{display:flex;justify-content:center;align-items:center;gap:9px;min-height:28px;margin-bottom:8px;font-size:12px;color:#777}.phas-resend button:disabled{opacity:.4;cursor:not-allowed}.phas-hint{display:block;color:#888;margin:-6px 0 8px;font-size:11px}
.phas-processing{position:absolute;inset:0;background:rgba(255,255,255,.68);display:none;align-items:center;justify-content:center;border-radius:24px;z-index:5}.phas-processing.is-active{display:flex}.phas-processing[hidden]{display:none!important}.phas-processing span{width:34px;height:34px;border:3px solid #ddd;border-top-color:var(--phas-red);border-radius:50%;animation:phas-spin .75s linear infinite}@keyframes phas-spin{to{transform:rotate(360deg)}}
@media(max-width:767px){
    /* Mobile page mode: auth is no longer presented as a popup/sheet. The modal
       container becomes the full viewport and is itself the only scroll area. */
    .phas-modal{
        inset:0;
        padding:0;
        align-items:stretch;
        justify-content:flex-start;
        background:#fff;
        overflow-y:auto;
        overflow-x:hidden;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
        min-height:100vh;
        min-height:100dvh;
    }
    .phas-modal.is-open{display:block}
    .phas-modal .phas-backdrop{display:none!important}
    .phas-dialog{
        box-sizing:border-box;
        width:100%;
        max-width:none;
        min-height:100vh;
        min-height:100dvh;
        max-height:none;
        margin:0;
        overflow:visible;
        border-radius:0;
        box-shadow:none;
        padding:calc(26px + env(safe-area-inset-top,0px)) 20px calc(32px + env(safe-area-inset-bottom,0px));
    }
    .phas-close{
        top:calc(16px + env(safe-area-inset-top,0px));
        left:18px;
        z-index:12;
    }
    .phas-processing{position:fixed;border-radius:0}
    .phas-grid{grid-template-columns:1fr}
    .phas-otp{gap:8px}
    .phas-otp input{width:49px!important;height:55px!important}
}
@media(min-width:768px) and (max-width:820px){
    .phas-dialog{max-height:calc(100vh - 36px)}
}
/* Phone country picker */
.phas-phone-field{display:flex;align-items:stretch;gap:8px;margin-top:7px}
.phas-phone-field .phas-phone-country{box-sizing:border-box;width:128px;min-width:128px;height:48px;border:1px solid var(--phas-border);background:#fff;border-radius:12px;padding:0 10px;outline:none;font:inherit;font-size:13px;cursor:pointer;color:var(--phas-dark)}
.phas-phone-field input[type=tel]{flex:1;min-width:0;margin-top:0!important;text-align:left;letter-spacing:.2px}
.phas-phone-field:focus-within .phas-phone-country{border-color:#aaa}
.phas-phone-hint{display:block;margin-top:6px;color:#888;font-size:10.5px;font-weight:400;line-height:1.8}
@media(max-width:420px){.phas-phone-field{gap:6px}.phas-phone-field .phas-phone-country{width:116px;min-width:116px;padding:0 7px;font-size:12px}}

/* International phone picker (intl-tel-input enhancement) */
.phas-phone-field.phas-phone-enhanced{display:block}
.phas-phone-field.phas-phone-enhanced>.phas-phone-country{display:none!important}
.phas-phone-field.phas-phone-enhanced .iti{width:100%;display:block;direction:ltr;--iti-border-color:var(--phas-border);--iti-country-selector-bg:#fff;--iti-hover-color:rgba(0,0,0,.045);--iti-icon-color:#555}
.phas-phone-field.phas-phone-enhanced .iti input[type=tel]{width:100%!important;height:48px!important;margin:0!important;border:1px solid var(--phas-border)!important;border-radius:12px!important;background:#fff!important;font:inherit!important;font-size:14px!important;direction:ltr!important;text-align:left!important}
.phas-phone-field.phas-phone-enhanced .iti:focus-within input[type=tel]{border-color:#aaa!important;box-shadow:0 0 0 3px rgba(0,0,0,.04)!important}
.phas-modal .iti__selected-country{font-family:inherit}
.phas-modal .iti__selected-dial-code{font-size:13px;font-weight:600;color:#333;direction:ltr}
.phas-modal .iti__country-selector{font-family:inherit;direction:rtl;text-align:right;border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.18);overflow:hidden;z-index:8}
.phas-modal .iti__search-input{font-family:inherit!important;direction:rtl!important;text-align:right!important;border-radius:10px!important}
.phas-modal .iti__country{font-family:inherit;line-height:1.7}
.phas-modal .iti__country-name{font-size:12px}
.phas-modal .iti__dial-code{direction:ltr;font-size:11px}
.phas-modal .iti__country-selector-container{z-index:1000002!important}
@media(max-width:520px){.phas-modal .iti__country-selector{border-radius:22px}.phas-modal .iti__country-name{font-size:13px}}

@media(max-width:520px){.phas-brand-logo{width:52px;height:52px;flex-basis:52px}.phas-brand-title{font-size:15px}.phas-brand-slogan{font-size:11px}}
.phas-otp-confirm{margin:2px 0 14px}


/* Mobile phone country picker: use the operating system's native select.
   This avoids intl-tel-input search focus opening the keyboard and fixes
   dropdown positioning issues inside the modal on iOS/Android. */
.phas-phone-field.phas-phone-native-mobile{display:flex!important;align-items:stretch;gap:8px;direction:ltr}
.phas-phone-field.phas-phone-native-mobile>.phas-phone-country{display:block!important;visibility:visible!important;width:142px;min-width:142px;max-width:46%;height:48px;margin:0!important;padding:0 8px!important;border:1px solid var(--phas-border)!important;border-radius:12px!important;background:#fff!important;color:var(--phas-dark)!important;font:inherit!important;font-size:12px!important;opacity:1!important;position:static!important;pointer-events:auto!important}
.phas-phone-field.phas-phone-native-mobile>.iti{display:block!important;flex:1;min-width:0;width:auto!important;direction:ltr}
.phas-phone-field.phas-phone-native-mobile .iti__country-container,
.phas-phone-field.phas-phone-native-mobile .iti__flag-container{display:none!important}
.phas-phone-field.phas-phone-native-mobile .iti input[type=tel],
.phas-phone-field.phas-phone-native-mobile input[type=tel]{box-sizing:border-box!important;width:100%!important;height:48px!important;margin:0!important;padding:0 14px!important;border:1px solid var(--phas-border)!important;border-radius:12px!important;background:#fff!important;color:var(--phas-dark)!important;font:inherit!important;font-size:14px!important;direction:ltr!important;text-align:left!important}
.phas-phone-field.phas-phone-native-mobile:focus-within>.phas-phone-country,
.phas-phone-field.phas-phone-native-mobile .iti:focus-within input[type=tel]{border-color:#aaa!important;box-shadow:0 0 0 3px rgba(0,0,0,.04)!important}
@media(max-width:420px){.phas-phone-field.phas-phone-native-mobile{gap:6px}.phas-phone-field.phas-phone-native-mobile>.phas-phone-country{width:132px;min-width:132px;max-width:47%;font-size:11px!important;padding:0 6px!important}}

/* v0.3.6: LTR values for credentials, RTL Persian placeholders. */
.phas-panel input.phas-ltr-input{
    direction:ltr!important;
    text-align:left!important;
    unicode-bidi:plaintext;
}
.phas-panel input.phas-ltr-input::placeholder{
    direction:rtl!important;
    text-align:right!important;
    unicode-bidi:plaintext;
}
.phas-password button[data-phas-toggle-password]{
    top:7px!important;
    left:7px!important;
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    color:#70757d;
    font-size:20px!important;
}
.phas-password button[data-phas-toggle-password]:hover{background:#f4f4f5;color:var(--phas-dark)}
.phas-password button[data-phas-toggle-password] .mi{font-size:20px;line-height:1}
.phas-password input{padding-left:52px!important}

/* Desktop doesn't need the custom mobile trigger/sheet. */
.phas-mobile-country-trigger{display:none}
.phas-country-sheet{display:none}

/* v0.3.6 mobile country picker: dedicated sheet outside popup + optional search. */
@media(max-width:767px), (pointer:coarse){
    .phas-phone-field.phas-phone-native-mobile{
        display:flex!important;
        align-items:stretch;
        gap:7px;
        direction:ltr;
    }
    .phas-phone-field.phas-phone-native-mobile>.phas-phone-country{
        display:none!important;
    }
    .phas-mobile-country-trigger{
        display:flex;
        box-sizing:border-box;
        width:116px;
        min-width:116px;
        height:48px;
        margin:0;
        padding:0 10px;
        align-items:center;
        justify-content:center;
        gap:5px;
        border:1px solid var(--phas-border);
        border-radius:12px;
        background:#fff;
        color:var(--phas-dark);
        font:inherit;
        cursor:pointer;
        direction:ltr;
    }
    .phas-mobile-country-trigger .phas-mobile-country-flag{font-size:20px;line-height:1}
    .phas-mobile-country-trigger .phas-mobile-country-dial{font-size:12px;font-weight:700;direction:ltr}
    .phas-mobile-country-trigger .mi{font-size:17px;color:#777}
    .phas-phone-field.phas-phone-native-mobile>.iti{
        display:block!important;
        flex:1;
        min-width:0;
        width:auto!important;
        direction:ltr;
    }
    .phas-phone-field.phas-phone-native-mobile .iti__country-container,
    .phas-phone-field.phas-phone-native-mobile .iti__flag-container{
        display:none!important;
    }
    .phas-phone-field.phas-phone-native-mobile .iti input[type=tel],
    .phas-phone-field.phas-phone-native-mobile input[type=tel]{
        box-sizing:border-box!important;
        width:100%!important;
        height:48px!important;
        margin:0!important;
        padding:0 14px!important;
        border:1px solid var(--phas-border)!important;
        border-radius:12px!important;
        background:#fff!important;
        color:var(--phas-dark)!important;
        font:inherit!important;
        font-size:14px!important;
        direction:ltr!important;
        text-align:left!important;
    }
    .phas-country-sheet{
        position:fixed;
        inset:0;
        z-index:10000020;
        display:none;
        align-items:flex-end;
        justify-content:center;
        font-family:inherit;
    }
    .phas-country-sheet.is-open{display:flex}
    .phas-country-sheet-backdrop{
        position:absolute;
        inset:0;
        background:rgba(12,13,15,.68);
        backdrop-filter:blur(5px);
    }
    .phas-country-sheet-panel{
        position:relative;
        z-index:1;
        width:100%;
        max-height:min(76vh,650px);
        display:flex;
        flex-direction:column;
        background:#fff;
        color:var(--phas-dark);
        border-radius:24px 24px 0 0;
        box-shadow:0 -20px 70px rgba(0,0,0,.22);
        overflow:hidden;
        padding-bottom:max(8px,env(safe-area-inset-bottom));
    }
    .phas-country-sheet-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        padding:17px 18px 14px;
        border-bottom:1px solid #eceef1;
        flex:0 0 auto;
    }
    .phas-country-sheet-head h3{margin:0;font-size:17px;font-weight:800}
    .phas-country-sheet-close{
        width:36px;
        height:36px;
        border:0;
        border-radius:50%;
        background:#f2f3f5;
        color:#555;
        display:flex;
        align-items:center;
        justify-content:center;
        cursor:pointer;
    }
    .phas-country-sheet-close .mi{font-size:20px}
    .phas-country-sheet-search-wrap{
        position:relative;
        display:flex;
        align-items:center;
        gap:8px;
        margin:12px 14px 8px;
        padding:0 12px;
        min-height:46px;
        border:1px solid #e5e7eb;
        border-radius:14px;
        background:#f8f9fb;
        flex:0 0 auto;
        direction:rtl;
    }
    .phas-country-sheet-search-wrap>.mi{font-size:20px;color:#8a9099;flex:0 0 auto}
    .phas-country-search{
        appearance:none;
        -webkit-appearance:none;
        flex:1;
        min-width:0;
        height:44px;
        margin:0!important;
        padding:0!important;
        border:0!important;
        outline:0!important;
        box-shadow:none!important;
        background:transparent!important;
        color:var(--phas-dark)!important;
        font:inherit!important;
        font-size:13px!important;
        direction:rtl!important;
        text-align:right!important;
    }
    .phas-country-search::-webkit-search-cancel-button{display:none}
    .phas-country-search::placeholder{color:#9aa0a8;opacity:1}
    .phas-country-search-clear{
        width:30px;
        height:30px;
        border:0;
        border-radius:50%;
        background:#eceef1;
        color:#666;
        display:flex;
        align-items:center;
        justify-content:center;
        padding:0;
        flex:0 0 auto;
    }
    .phas-country-search-clear[hidden]{display:none!important}
    .phas-country-search-clear .mi{font-size:17px}
    .phas-country-empty{
        padding:18px 16px 20px;
        text-align:center;
        color:#8b929c;
        font-size:13px;
        flex:0 0 auto;
    }
    .phas-country-empty[hidden]{display:none!important}
    .phas-country-sheet-list{
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
        padding:6px 10px 12px;
        flex:1 1 auto;
    }
    .phas-country-option{
        width:100%;
        min-height:50px;
        border:0;
        border-bottom:1px solid #f0f1f3;
        background:#fff;
        color:var(--phas-dark);
        padding:8px 10px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
        font:inherit;
        cursor:pointer;
        text-align:right;
    }
    .phas-country-option[aria-selected="true"]{background:#fff6f6;color:#a60000;font-weight:700;border-radius:12px}
    .phas-country-option-main{display:flex;align-items:center;gap:10px;min-width:0}
    .phas-country-option-flag{font-size:22px;line-height:1;flex:0 0 auto}
    .phas-country-option-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .phas-country-option-dial{font-size:12px;color:#777;direction:ltr;flex:0 0 auto}
}
body.phas-country-lock{overflow:hidden!important}
@media(max-width:767px), (pointer:coarse){
    .phas-phone-field>.phas-phone-country{display:none!important}
}

/* v0.3.7: mobile country search must win over theme display rules. */
.phas-country-option[hidden]{display:none!important}
@media(max-width:767px), (pointer:coarse){
    #phas-phone-input::placeholder{direction:ltr!important;text-align:left!important;color:#9aa0a8;opacity:1}
}

/* v0.3.9 — Google GIS iframe clipping fix.
 * Google deliberately renders the iframe 20px wider than the requested button
 * and applies -10px horizontal margins. Do not cap its width or reset those
 * margins: doing so clips one edge of the real button in RTL layouts. */
#phas-google-button{direction:ltr!important;overflow:visible!important;width:100%!important;max-width:100%!important}
#phas-google-button>.S9gUrf-YoZ4jf{direction:ltr!important;overflow:visible!important;width:100%!important;max-width:none!important}
#phas-google-button iframe{max-width:none!important;color-scheme:light!important}

/* Apply the same non-clipping rule to MyListing's connected-account Google button. */
.cts-google-signin,.cts-google-signin .S9gUrf-YoZ4jf{direction:ltr!important;overflow:visible!important}
.cts-google-signin iframe{max-width:none!important;color-scheme:light!important}
