/* Account entry, recovery and partner onboarding. Loaded after the shared theme. */
body[data-ty-page] :is(.login-main,.page-wrapper):has(.login-card,.signup-card,.verify-card) { min-height:calc(100vh - 144px); padding:48px 20px 64px; background:radial-gradient(ellipse at top left,#dff3e9,transparent 55%),#f8fafc; overflow:visible; }
body[data-ty-page] :is(.login-card,.signup-card,.verify-card,.request-card),body[data-ty-page="update-password"] .card { position:relative; width:100%; max-width:520px; margin:0 auto; padding:32px; border:1px solid #dce7e1; border-radius:20px; background:white; box-shadow:0 12px 36px #0f153508; }
body[data-ty-page] .signup-card { max-width:680px; }
body[data-ty-page] :is(.top-accent-bar,.top-accent,.card-top-bar,.bg-glow) { display:none; }
.ty-auth-home { display:flex; align-items:center; gap:9px; width:max-content; margin:0 0 26px; color:#0f1535; font-size:15px; font-weight:800; text-decoration:none; }
.ty-auth-home img { width:32px; height:32px; object-fit:contain; }
body[data-ty-page] :is(.login-header,.sc-header) { text-align:left; margin-bottom:24px; }
body[data-ty-page] :is(.login-title,.sc-title,.status-title),body[data-ty-page="update-password"] h1,body[data-ty-page="expert-request"] h1 { font-size:clamp(26px,4vw,32px); font-weight:800; line-height:1.2; letter-spacing:-.035em; text-transform:none; color:#0f1535; margin:0; }
body[data-ty-page] :is(.login-subtitle,.sc-subtitle,.status-message),body[data-ty-page="update-password"] .intro,body[data-ty-page="expert-request"] #request-desc { color:#52645d; font-size:14px; line-height:1.65; margin:10px 0 24px; }
body[data-ty-page] :is(.role-icon,.sc-icon,.status-icon-container),body[data-ty-page="update-password"] .icon,body[data-ty-page="expert-request"] .icon { width:48px; height:48px; border-radius:14px; background:#ecf7f0; border:1px solid #d6eadf; box-shadow:none; font-size:24px; margin:0 0 16px; }
body[data-ty-page] :is(.role-grid-container,.role-box) { background:#f3f7f5; border:1px solid #e2ebe5; border-radius:12px; padding:8px; margin-bottom:24px; }
body[data-ty-page] .role-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
body[data-ty-page] .role-btn { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px; border:1px solid transparent; border-radius:9px; font:inherit; font-size:13px; font-weight:650; cursor:pointer; text-align:center; background:transparent; color:#52645d; box-shadow:none; }
body[data-ty-page] .role-btn.active { background:white; color:#047857; border-color:#b9dcc9; box-shadow:0 2px 5px #0f153508; }
body[data-ty-page] :is(.form-label,.fg-label,.role-lbl),body[data-ty-page="update-password"] label { font-size:13px; font-weight:650; text-transform:none; letter-spacing:0; color:#33483d; }
body[data-ty-page] :is(.form-input,.fg-input),body[data-ty-page="update-password"] input { min-height:48px; border:1px solid #d4e1d9; border-radius:10px; padding:12px 14px; background:#fbfdfc; color:#0f172a; font-size:16px; box-shadow:none; width:100%; }
body[data-ty-page] :is(.form-input,.fg-input):focus,body[data-ty-page="update-password"] input:focus { outline:2px solid #047857; outline-offset:2px; border-color:#047857; box-shadow:none; }
body[data-ty-page] :is(.btn-submit,.btn-action),body[data-ty-page="update-password"] #submit-button,body[data-ty-page="expert-request"] .btn { min-height:48px; padding:13px 18px; border:0; border-radius:10px; background:#047857; color:white; font-size:15px; font-weight:700; text-transform:none; box-shadow:none; }
body[data-ty-page] :is(.btn-submit,.btn-action):hover { background:#065f46; transform:none; }
body[data-ty-page] :is(.info-msg-box,.verification-panel,.error-msg,.success-msg,.alert-error,.alert-success,.notice) { padding:14px; border-radius:10px; box-shadow:none; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
body[data-ty-page] .info-msg-box { background:#f2f8f5; border:1px solid #dcebe2; }
body[data-ty-page] :is(.login-footer,.form-footer) { margin-top:24px; padding-top:20px; border-top:1px solid #e5ece7; font-size:14px; }
body[data-ty-page] :is(.file-box,.loc-box,.agreements-box) { border-radius:12px; box-shadow:none; background:#f6f9f7; border:1px solid #e1eae4; }
body[data-ty-page] .loc-box { flex-wrap:wrap; gap:12px; }
body[data-ty-page] .form-grid { gap:18px; }
body[data-ty-page] .form-group { min-width:0; }
body[data-ty-page] .file-input { max-width:100%; }
body[data-ty-page] .verify-card { text-align:left; }
body[data-ty-page] .verify-card .btn-action { width:100%; }
body[data-ty-page="update-password"],body[data-ty-page="expert-request"] { background:radial-gradient(ellipse at top left,#dff3e9,transparent 60%),#f8fafc; padding:32px 20px; }
body[data-ty-page="update-password"] :is(h1,.intro) { text-align:left; }
body[data-ty-page="signup"] .sc-subtitle { max-width:460px; }
body[data-ty-page="signup"] .t-footer { background:#0a302b; }
body[data-ty-page="signup"] :is(.t-footer-glow,.t-paw-bg) { display:none; }
@media(max-width:560px) {
 body[data-ty-page] :is(.login-main,.page-wrapper):has(.login-card,.signup-card,.verify-card) { padding:28px 16px 40px; }
 body[data-ty-page] :is(.login-card,.signup-card,.verify-card,.request-card),body[data-ty-page="update-password"] .card { padding:24px 20px; border-radius:16px; }
 body[data-ty-page] .form-grid { grid-template-columns:minmax(0,1fr); }
 body[data-ty-page] .form-label-row { flex-wrap:wrap; gap:8px; }
 body[data-ty-page] .btn-loc { width:100%; }
}
@media(prefers-reduced-motion:reduce) { body[data-ty-page] :is(.animate-pop-in,.animate-slide-up,.animate-bounce,.animate-pulse) { animation:none; } }
body[data-ty-page="signup"] :is(.t-brand-desc,.t-news-desc,.t-nav-link,.t-copyright,.t-legal-link) { color:#d1e5db; }
body[data-ty-page="signup"] .t-news-inner { background:transparent; }
body[data-ty-page="signup"] .t-news-glow { display:none; }
body[data-ty-page="signup"] .t-input { background:white; color:#0f172a; border-color:#b7d4c3; }
body[data-ty-page="signup"] .t-input::placeholder { color:#52645d; }
body[data-ty-page="signup"] .t-legal-links { flex-wrap:wrap; }

/* Validation text occupies its own row; visibility controls stay with the input. */
body:is([data-ty-page="signup"],[data-ty-page="login"]) .input-wrapper { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; }
body:is([data-ty-page="signup"],[data-ty-page="login"]) .input-wrapper > input { grid-area:1 / 1; min-width:0; padding-right:52px; }
body:is([data-ty-page="signup"],[data-ty-page="login"]) .input-wrapper > :is(.btn-eye,.input-icon-btn) { position:static; grid-area:1 / 1; justify-self:end; align-self:center; width:44px; height:44px; margin-right:4px; padding:0; display:grid; place-items:center; transform:none; z-index:1; line-height:1; }
body:is([data-ty-page="signup"],[data-ty-page="login"]) .input-wrapper > .ty-err { grid-column:1; grid-row:2; margin-top:8px; }
body[data-ty-page="login"] #forgot-form .form-label { display:block; margin-bottom:10px; }
body[data-ty-page="login"] #forgot-form .form-group { margin-bottom:24px; }
body[data-ty-page="login"] #forgot-form .form-actions { display:flex; flex-direction:column; gap:14px; }
body[data-ty-page="login"] #forgot-form .text-button { min-height:44px; padding:10px 14px; }
body[data-ty-page="update-password"] .field { margin-bottom:24px; }
body[data-ty-page="update-password"] label { margin-bottom:10px; }
@media(max-width:767px) {
  body[data-ty-page] :is(.form-label,.fg-label,.role-lbl,.role-btn) { font-size:14px; }
  body[data-ty-page] :is(.form-input,.fg-input,.login-input,.sc-input),body[data-ty-page="update-password"] input { font-size:16px; }
  body[data-ty-page] :is(.login-subtitle,.sc-subtitle,.status-message,.info-msg-box,.verification-panel,.error-msg,.success-msg,.alert-error,.alert-success,.notice) { font-size:14px; line-height:1.65; }
}
/* Labels and input wrappers share the same spacing in normal and error states. */
body[data-ty-page] .form-group { gap:10px; }
body[data-ty-page] .form-group > :is(.form-label,.fg-label) { margin-bottom:0; }
body[data-ty-page] .form-label-row { margin-bottom:0; }
body[data-ty-page] .form-label-row .form-label { margin-bottom:0; }
body[data-ty-page] .form-grid { gap:24px; }
body[data-ty-page="login"] .form-group { margin-bottom:24px; }
body[data-ty-page="login"] #forgot-form .form-label { margin-bottom:0; }
body[data-ty-page="login"] .info-msg-box { margin-bottom:28px; }
body[data-ty-page="login"] .info-msg-box strong { display:block; margin-bottom:6px; }
body[data-ty-page="update-password"] .field { display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
body[data-ty-page="update-password"] .field label { margin-bottom:0; }
body[data-ty-page="update-password"] .field > .ty-err { margin-top:0; }
body:is([data-ty-page="login"],[data-ty-page="signup"]) input:-webkit-autofill { -webkit-text-fill-color:#0f172a; box-shadow:0 0 0 1000px #f6faf8 inset; }
