.daysch-otp {
    width: 100%;
}

.daysch-otp form {
    margin: 0;
}

.daysch-otp .daysch-auth-primary:disabled {
    box-shadow: none;
    cursor: not-allowed;
    opacity: .58;
    transform: none;
}

.daysch-otp .btn-link {
    padding: 0;
}

.daysch-auth-code-destination .daysch-auth-masked-phone {
    display: inline-block;
    unicode-bidi: isolate;
    white-space: nowrap;
}

.daysch-auth-request-cooldown {
    background: rgba(7, 94, 232, .08);
    border: 1px solid rgba(7, 94, 232, .24);
    color: var(--daysch-auth-ink, #0a1838);
    text-align: start;
}

.daysch-auth-request-cooldown output {
    align-items: center;
    background: rgba(7, 94, 232, .12);
    border: 1px solid rgba(7, 94, 232, .28);
    border-radius: 999px;
    color: var(--daysch-auth-blue, #075ee8);
    display: inline-flex;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    justify-content: center;
    line-height: 1;
    margin-inline: .25rem;
    min-height: 1.65rem;
    min-width: 2.5rem;
    padding: .18rem .5rem;
    vertical-align: middle;
}

.daysch-auth-request-cooldown.is-ready {
    background: rgba(18, 169, 92, .1);
    border-color: rgba(18, 169, 92, .35);
    color: #148849;
}

[dir='rtl'] .daysch-auth-request-cooldown {
    direction: rtl;
    unicode-bidi: isolate;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-auth-request-cooldown {
    background: rgba(60, 136, 255, .12);
    border-color: rgba(116, 173, 255, .34);
    color: var(--daysch-auth-ink, #f1f5ff);
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-auth-request-cooldown output {
    background: rgba(64, 142, 255, .18);
    border-color: rgba(132, 183, 255, .42);
    color: #a8ccff;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-auth-request-cooldown.is-ready {
    background: rgba(20, 207, 110, .13);
    border-color: rgba(70, 240, 145, .36);
    color: #8affbd;
}

/* The six visual cells share one real input so mobile OTP autofill, paste, keyboard
   navigation and assistive technology keep their native behaviour. */
.daysch-otp-entry {
    direction: ltr;
    isolation: isolate;
    min-height: 60px;
    position: relative;
}

.daysch-otp-entry__input {
    background: transparent;
    border: 0;
    caret-color: transparent;
    cursor: text;
    height: 100%;
    inset: 0;
    opacity: 0;
    outline: 0;
    position: absolute;
    width: 100%;
    z-index: 3;
}

.daysch-otp-entry__input:disabled {
    cursor: not-allowed;
}

.daysch-otp-entry__cells {
    display: grid;
    gap: clamp(5px, 1.8vw, 10px);
    grid-template-columns: repeat(6, minmax(0, 1fr));
    width: 100%;
}

.daysch-otp-entry__cell {
    align-items: center;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(237, 244, 255, .8));
    border: 1px solid var(--daysch-auth-line, #dce5f4);
    border-radius: 14px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .82),
        0 8px 18px rgba(35, 76, 145, .08);
    color: var(--daysch-auth-ink, #0a1838);
    display: flex;
    font-size: clamp(1.05rem, 3vw, 1.35rem);
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    height: 60px;
    justify-content: center;
    line-height: 1;
    min-width: 0;
    overflow: hidden;
    position: relative;
    transform: translateY(0);
    transition:
        border-color .14s ease-out,
        color .14s ease-out,
        transform .14s cubic-bezier(.2, .75, .25, 1);
    will-change: transform;
}

.daysch-otp-entry__cell::after {
    background: var(--daysch-auth-blue, #075ee8);
    border-radius: 999px;
    bottom: 7px;
    content: '';
    height: 3px;
    left: 50%;
    opacity: 0;
    position: absolute;
    transform: translateX(-50%) scaleX(.35);
    transition: opacity .18s ease, transform .18s ease;
    width: 18px;
}

.daysch-otp-entry:focus-within .daysch-otp-entry__cell.is-active {
    border-color: var(--daysch-auth-blue, #075ee8);
    box-shadow:
        0 0 0 3px var(--daysch-auth-focus, rgba(7, 94, 232, .18)),
        0 5px 12px rgba(7, 94, 232, .12);
    transform: translateY(-1px);
}

.daysch-otp-entry:focus-within .daysch-otp-entry__cell.is-active::after {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
}

.daysch-otp-entry__cell.is-filled {
    background:
        linear-gradient(145deg, rgba(237, 246, 255, .98), rgba(224, 236, 255, .9));
    border-color: rgba(7, 94, 232, .48);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .88),
        0 4px 10px rgba(7, 94, 232, .12);
    color: var(--daysch-auth-blue-dark, #073ea5);
    transform: translateY(-1px);
}

.daysch-otp-entry.is-verifying .daysch-otp-entry__cell {
    animation: daysch-otp-verifying .32s cubic-bezier(.2, .75, .25, 1) both;
    background: linear-gradient(145deg, rgba(222, 238, 255, .98), rgba(197, 220, 255, .9));
    border-color: rgba(7, 94, 232, .7);
    box-shadow: 0 0 0 3px rgba(7, 94, 232, .16);
    color: #075ee8;
}

.daysch-otp-entry.is-verifying .daysch-otp-entry__cell:nth-child(2),
.daysch-otp-entry.is-verifying .daysch-otp-entry__cell:nth-child(5) {
    animation-delay: 20ms;
}

.daysch-otp-entry.is-verifying .daysch-otp-entry__cell:nth-child(3),
.daysch-otp-entry.is-verifying .daysch-otp-entry__cell:nth-child(4) {
    animation-delay: 40ms;
}

.daysch-otp-entry.has-error .daysch-otp-entry__cell {
    background: linear-gradient(145deg, rgba(255, 242, 246, .98), rgba(255, 226, 235, .88));
    border-color: rgba(222, 48, 91, .62);
    box-shadow: 0 0 18px rgba(222, 48, 91, .15);
    color: #c92050;
}

.daysch-otp-entry.is-denied {
    animation: daysch-otp-denied .55s ease both;
}

.daysch-otp-entry__status {
    color: var(--daysch-auth-muted, #62708e);
    display: block;
    font-size: .7rem;
    line-height: 1.45;
    min-height: 1.05rem;
    text-align: center;
}

.daysch-otp-entry.has-error + .daysch-otp-entry__status {
    color: #bf264d;
}

.daysch-otp-success {
    align-items: center;
    display: flex;
    flex-direction: column;
    padding: .35rem 0 0;
    text-align: center;
}

/* Particle coordinates are physical, so their visual track must never be
   mirrored by an RTL document. User-facing Persian content remains RTL. */
.daysch-otp-success__visual,
.daysch-otp-success__digits {
    direction: ltr;
    unicode-bidi: isolate;
}

[dir='rtl'] .daysch-otp-success,
[dir='rtl'] .daysch-otp-success .daysch-auth-kicker,
[dir='rtl'] .daysch-otp-success h1,
[dir='rtl'] .daysch-otp-success p,
[dir='rtl'] .daysch-otp-success__continue {
    direction: rtl;
    unicode-bidi: isolate;
}

.daysch-otp-success__visual {
    display: grid;
    height: 108px;
    margin-bottom: .45rem;
    place-items: center;
    width: 100%;
}

.daysch-otp-success__digits {
    animation: daysch-otp-group-merge .3s cubic-bezier(.4, 0, .2, 1) forwards;
    display: flex;
    gap: 7px;
    grid-area: 1 / 1;
    justify-content: center;
    transform-origin: center;
    will-change: opacity, transform;
}

.daysch-otp-success__digits span {
    align-items: center;
    background: linear-gradient(145deg, rgba(226, 255, 239, .98), rgba(184, 244, 211, .92));
    border: 1px solid rgba(22, 180, 97, .56);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(18, 199, 103, .16);
    color: #0f9c55;
    display: flex;
    font-size: .72rem;
    height: 24px;
    justify-content: center;
    line-height: 1;
    width: 24px;
}

.daysch-otp-success__check {
    align-items: center;
    animation: daysch-otp-check-in .3s cubic-bezier(.2, .75, .25, 1) .12s both;
    background:
        radial-gradient(circle at 32% 25%, rgba(255, 255, 255, .68), transparent 32%),
        linear-gradient(145deg, #34d985, #0d9d55);
    border: 1px solid rgba(114, 255, 181, .72);
    border-radius: 50%;
    box-shadow:
        0 0 0 5px rgba(20, 207, 110, .08),
        0 0 20px rgba(20, 207, 110, .28),
        inset 0 1px 0 rgba(255, 255, 255, .55);
    color: #fff;
    display: flex;
    font-size: 1.45rem;
    grid-area: 1 / 1;
    height: 64px;
    justify-content: center;
    line-height: 1;
    width: 64px;
    will-change: opacity, transform;
}

.daysch-otp-success h1 {
    color: var(--daysch-auth-ink, #0a1838);
    font-size: clamp(1.8rem, 4vw, 2.3rem);
    font-weight: 850;
    letter-spacing: -.035em;
    margin: .2rem 0 .5rem;
}

.daysch-otp-success p {
    color: var(--daysch-auth-muted, #62708e);
    line-height: 1.65;
    margin: 0 0 1rem;
}

.daysch-otp-success__continue {
    animation: daysch-otp-content-in .4s ease .45s both;
    text-decoration: none;
}

.daysch-otp-success__continue:hover,
.daysch-otp-success__continue:focus-visible {
    color: #fff;
    text-decoration: none;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-entry__cell {
    background: linear-gradient(145deg, rgba(40, 63, 94, .98), rgba(27, 45, 71, .9));
    border-color: var(--daysch-auth-line, #4b6382);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        0 10px 22px rgba(1, 9, 23, .24);
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-entry__cell.is-filled {
    background: linear-gradient(145deg, rgba(39, 73, 116, .98), rgba(29, 52, 85, .94));
    border-color: rgba(116, 173, 255, .68);
    box-shadow: 0 0 0 2px rgba(55, 139, 255, .14);
    color: #a8ccff;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-entry.is-verifying .daysch-otp-entry__cell {
    background: linear-gradient(145deg, rgba(36, 84, 142, .98), rgba(28, 57, 96, .94));
    border-color: #78adff;
    box-shadow: 0 0 0 3px rgba(77, 151, 255, .24);
    color: #d8e9ff;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-entry.has-error .daysch-otp-entry__cell {
    background: linear-gradient(145deg, rgba(92, 34, 57, .96), rgba(65, 27, 45, .96));
    border-color: rgba(255, 103, 139, .76);
    box-shadow: 0 0 22px rgba(255, 70, 115, .24);
    color: #ffb1c4;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-entry.has-error + .daysch-otp-entry__status {
    color: #ffb1c4;
}

body.pagelayout-login.daysch-login-body.daysch-dark-mode .daysch-otp-success__digits span {
    background: linear-gradient(145deg, rgba(29, 91, 61, .98), rgba(22, 65, 47, .95));
    border-color: rgba(70, 240, 145, .72);
    box-shadow: 0 0 10px rgba(35, 232, 126, .24);
    color: #8affbd;
}

@keyframes daysch-otp-verifying {
    0%, 100% {
        transform: translateY(-1px);
    }
    50% {
        transform: translateY(-3px);
    }
}

@keyframes daysch-otp-denied {
    0%, 100% {
        transform: translateX(0);
    }
    20%, 60% {
        transform: translateX(-7px);
    }
    40%, 80% {
        transform: translateX(7px);
    }
}

@keyframes daysch-otp-group-merge {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    60% {
        opacity: .7;
        transform: translateY(-1px) scale(.94);
    }
    100% {
        opacity: 0;
        transform: translateY(-2px) scale(.86);
    }
}

@keyframes daysch-otp-check-in {
    0% {
        opacity: 0;
        transform: scale(.82);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes daysch-otp-content-in {
    from {
        opacity: 0;
        transform: translateY(7px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 420px) {
    .daysch-otp-entry {
        min-height: 54px;
    }

    .daysch-otp-entry__cell {
        border-radius: 11px;
        height: 54px;
    }

    .daysch-otp-success__digits {
        gap: 4px;
    }

    .daysch-otp-success__digits span {
        height: 22px;
        width: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .daysch-otp-entry,
    .daysch-otp-entry__cell,
    .daysch-otp-entry__cell::after,
    .daysch-otp-success__digits,
    .daysch-otp-success__digits span,
    .daysch-otp-success__check,
    .daysch-otp-success__continue {
        animation: none;
        transition: none;
    }

    .daysch-otp-success__digits {
        display: none;
    }

    .daysch-otp-success__check {
        opacity: 1;
        transform: none;
    }
}
