.ts-page-container {
    color: var(--text-primary);
    font-size: 16px;
    line-height: 1.6;
}
.ts-page-container .ts-hero {
    background: linear-gradient(180deg, rgba(99,102,241,0.06), rgba(6,182,212,0.03));
    padding: 2.5rem 1.25rem;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(2,6,23,0.04);
    margin-bottom: 1.5rem;
    text-align: left;
}
.ts-page-container .ts-hero h1 {
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 0.35rem;
}
.ts-page-container .ts-hero p { color: var(--text-secondary); font-size: 1.05rem; }
.ts-account,
.ts-page-container > .ts-card,
.ts-card {
    background: #ffffff;
    padding: 1.25rem;
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(15,23,42,0.04);
    margin-bottom: 1rem;
}
.account-fallback { display: block; }
.account-fallback label,
.wpcf7-form label { font-weight: 600; display:block; margin-bottom:0.35rem; color:var(--text-primary); }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea,
.account-fallback input[type="text"],
.account-fallback input[type="email"],
.account-fallback textarea {
    width: 100%;
    padding: 0.75rem 0.9rem;
    border: 1px solid #e9eef7;
    border-radius: 10px;
    box-sizing: border-box;
    font-size: 0.98rem;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    margin-top: 0.4rem;
}
.wpcf7-form textarea, .account-fallback textarea { min-height: 140px; resize: vertical; }
.wpcf7-form .wpcf7-submit,
.account-fallback .ts-button,
.ts-card .wpcf7-submit {
    display: inline-block;
    background: linear-gradient(90deg, var(--primary-color), var(--primary-dark));
    color: #fff;
    padding: 0.72rem 1.1rem;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(79,70,229,0.12);
}
.wpcf7-form .wpcf7-submit:active { transform: translateY(1px); }
.wpcf7-form .wpcf7-submit:hover, .account-fallback .ts-button:hover { opacity: 0.95; }
@media (max-width: 900px) {
    .ts-page-container .ts-hero { text-align: center; }
    .wpcf7-form .wpcf7-submit, .account-fallback .ts-button { width: 100%; text-align: center; }
}
*:focus { outline: none; }
*:focus-visible { outline: 3px solid rgba(99,102,241,0.12); outline-offset: 2px; }
.password-input { position: relative; display: inline-block; width:100%; }
.password-input input[type="password"], .password-input input[type="text"] { padding-right: 2.6rem; }
.show-password-input {
    position: absolute;
    right: 0.45rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    background: transparent;
    border: none;
    color: var(--text-primary);
    cursor: pointer;
    padding: 0;
}
.show-password-input:focus { outline: none; }
.show-password-input .eye-off { display: none; }
.show-password-input.visible .eye { display: none; }
.show-password-input.visible .eye-off { display: inline; }