/* Calculator OTP form styles — ONE file for BOTH the domestic (srcalc-)
   and international/srx (srxcalc-) calculator OTP forms. Shared class rules
   style both; ID rules are prefix-specific. Deploy to theme root. */

/* ==========================================
   1. Shared Base & Reset Rules
   ========================================== */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] {
    -moz-appearance: textfield;
}

/* ==========================================
   2. Shared Structure & Element Classes
   ========================================== */

/* Form Fields & Typography */
.form-field input {
    border-radius: 6px;
    padding: 11px;
    border: 1px solid #cbcad766;
    outline: none !important;
    color: #141413;
    width: 100%;
    font-size: 14px;
}

.prefixNum {
    border-radius: 6px;
    border: 1px solid #d3d3d3;
    padding: 11px;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
}

.prefixNum span {
    border-right: 1px solid #d3d3d3;
    padding-right: 8px;
    margin-right: 5px;
    font-weight: 500;
}

.prefixNum input,
.prefixNum input:focus {
    border: 0 !important;
    padding: 0 !important;
    outline: none !important;
    border-radius: 0 !important;
    font-size: 15px;
    width: calc(100% - 50px) !important;
    color: #141413;
}

/* OTP Layout */
.otp-input-wrapper {
    gap: 12px;
    margin: 12px 0;
    display: flex;
    justify-content: space-between;
}

/* Shared Components & Tabs */
.divider {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 12px 0;
}

.divider span {
    flex: none;
    padding: 0 12px;
    color: #969696;
    font-weight: 500;
    font-size: 12px;
}

.divider:before, 
.divider:after {
    content: "";
    flex: 1;
    border-bottom: 1px solid #eee;
}

.social-login-row {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 8px;
}

.social-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid gainsboro !important;
    font-size: 14px !important;
    background: #ffffff !important;
    color: #000000e6 !important;
    margin-top: 0 !important;
}

.social-btn img { 
    width: 20px; 
    height: 20px; 
}

.others-icon { 
    font-size: 1.5rem; 
}

/* Messaging states */
.error {
    color: red;
    font-size: 12px;
}

.success {
    color: green;
    font-size: 13px;
    margin-top: 10px;
}

.social-error {
    display: none;
    color: #d32f2f;
    background: #ffebee;
    border: 1px solid #ffcdd2;
    padding: 10px;
    margin: 10px 0;
    border-radius: 4px;
    font-size: 14px;
}

.link-btn {
    background: none;
    border: none;
    color: #735ae5;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
    margin: 10px 0;
    font-size: 14px;
}

.link-btn:hover {
    color: #5a4bc4;
}

/* Track Order Tabs Architecture */
.topContentWrapper ul {
    display: flex;
    margin-bottom: 10px;
    list-style: none;
    gap: 12px;
}

.topContentWrapper ul a {
    color: #4C4C4C !important;
    font-size: 14px;
}

.topContentWrapper ul a span {
    width: 13px;
    height: 13px;
    border-radius: 23.33px;
    display: inline-flex;
    background: #FFFFFF;
    margin-right: 5px;
    border: 0.78px solid #D9D9D9;
    position: relative;
    transition: all ease 0.5s;
}

.topContentWrapper ul li.active a span::after {
    content: "";
    width: 7.77px;
    height: 7.77px;
    border-radius: 23.33px;
    opacity: 1;
    top: 2.4px;
    left: 2.1px;
    background: #745BE7;
    position: absolute;
}

.topContentWrapper ul li.active a span {
    border-color: #745BE7;
}

.tab-pane {
    display: none;
}

.tab-pane.active {
    display: flex;
}

.tab-pane form {
    width: 100%;
}

/* Layout Utilities */
.hidden {
    display: none;
}

.m0 {
    margin: 0;
}


/* ==========================================
   3. Domain-Specific Variants (Domestic vs Int)
   ========================================== */

/* Shared Form Container Properties */
div#srcalc-otp-form,
div#srxcalc-otp-form {
    background: #fff;
    border-radius: 12px;
    max-width: 420px;
    border: 1px solid #0300001a;
}

/* Shared Button Styles */
div#srcalc-otp-form button,
div#srxcalc-otp-form button {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 6px;
    background: #735ae5;
    color: #ffffff;
    cursor: pointer;
    font-weight: 400;
    margin-top: 15px;
    transition: background 0.2s, opacity 0.2s;
}

/* Shared Interactive States */
input.srcalc-otp-digit:focus,
input.srxcalc-otp-digit:focus {
    border-color: #735ae5;
    outline: none !important;
    box-shadow: 0 0 8px #735ae569;
    transform: scale(1.1);
}

div#srcalc-user-mobile-wrapper,
div#srxcalc-user-mobile-wrapper {
    margin: 0;
    color: #735ae5;
}

button#srcalc-resend-otp,
button#srxcalc-resend-otp {
    padding: 0 !important;
    background: transparent !important;
    color: #735ae5 !important;
    text-align: left;
    margin-top: 5px !important;
}

/* --- Domestic Unique Properties --- */
div#srcalc-otp-form {
    padding: 20px;
    background-size: auto;
    background-position: bottom left;
}

div#srcalc-mobile-section p.m0 {
    font-size: 12px;
    line-height: 18px;
}

input.srcalc-otp-digit {
    width: 34px;
    height: 36px;
    text-align: center;
    border-radius: 8px;
    border: 1px solid #d3d3d3;
}

#srcalc-calc-request-otp-btn:disabled,
#srcalc-calc-verify-otp-btn:disabled {
    opacity: 0.7;
    background: #735ae594;
    color: #ffffff;
    cursor: not-allowed;
}

div#srcalc-otp-form .divider, 
div#srcalc-otp-form .social-login-row {
    display: none !important;
}

div#srcalc-otp-form .trackOrderWrapper {
    display: none;
    margin-top: 30px;
}

div#srcalc-otp-form .trackOrderContentWrapper {
    border-radius: 12px;
    padding: 15px;
    background: linear-gradient(134.16deg, #775CFF -61.15%, rgba(255, 255, 255, 0) 74.11%);
    border: 1px solid #F2F3F4;
}

/* --- International / SRX Unique Properties --- */
div#srxcalc-otp-form {
    padding: 22px;
    box-shadow: 0px 4px 64px 0px #0000000d;
}

div#srxcalc-otp-form h2 {
    font-weight: 500;
    margin-bottom: 12px;
    font-size: 18px;
}

.loginApp {
    color: #7f7f7f;
    font-size: 14px;
    margin: 4px 0 0;
    display: inline-flex;
    gap: 5px;
    width: 100%;
    justify-content: center;
}

div#srxcalc-mobile-section p.m0 {
    font-size: 12px;
    color: #7f7f7f;
	line-height:19px;
}

#srxcalc-request-otp-btn:disabled,
#srxcalc-verify-otp-btn:disabled {
    opacity: 0.7;
    background: #f0edfd;
    color: #b0aee0;
    cursor: not-allowed;
}

input.srxcalc-otp-digit {
    width: 50px;
    height: 50px;
    text-align: center;
    border-radius: 8px;
    border: 1px solid #d3d3d3;
}

div#srxcalc-otp-form .error {
    font-size: 14px;
    margin-top: 7px;
}

.topContentWrapper p.colorAmethystSmoke {
    font-size: 14px;
}

div#srxcalc-otp-form .trackOrderContentWrapper {
    border-radius: 12px;
    padding: 15px;
    background: url(https://www.shiprocket.in/wp-content/uploads/2025/07/image.webp);
    border: 1px solid #f2f3f4;
    background-size: cover;
    background-position: center;
}

div#srxcalc-otp-form .trackOrderWrapper {
    margin-top: 30px;
    display: none;
    opacity: 0;
    visibility: hidden;
}

section.topHeader {
    display: none;
}


/* ==========================================
   4. Media Queries & Responsiveness
   ========================================== */

@media only screen and (min-width: 768px) {
    div#srcalc-otp-form h3 {
        margin-bottom: 12px;
        font-size: 18px;
        line-height: 22px;
    }
}

@media only screen and (max-width: 767px) {
	div#srcalc-otp-form h3{
		font-size: 18px;
        line-height: 22px;
	}
    .btnWrapperBottoms {
        display: none !important;
    }
    
    .otp-input-wrapper {
        gap: 0;
        justify-content: space-between;
    }
    
    .trackOrderWrapper {
        margin-top: 20px;
    }
    
    div#srcalc-otp-form,
    div#srxcalc-otp-form {
        padding: 15px;
    }
    
    .social-login-row {
        flex-direction: column;
        gap: 8px;
    }
}