.te-google-box{margin:4px 0 8px;text-align:center;min-width:0}
.te-google-slot{display:flex;justify-content:center;min-height:44px;width:100%;min-width:0}
.te-google-divider{display:flex;align-items:center;gap:12px;color:var(--muted,#6b7280);font-size:12px;margin:4px 0 14px}
.te-google-divider:before,.te-google-divider:after{content:"";height:1px;background:var(--line,#dce2e9);flex:1}
.te-google-message{font-size:13px;line-height:1.5;color:var(--danger,#b42318);margin:8px 0 0;overflow-wrap:anywhere}
.te-google-message[data-state=status]{color:var(--slate,#526276)}
.te-google-message:empty,.te-google-error:empty{display:none}
.te-google-hint{font-size:12px;line-height:1.5;color:var(--slate,#526276);margin:8px 0 0}
.te-google-retry{border:0;background:none;color:#1d3557;text-decoration:underline;cursor:pointer;min-height:44px;padding:8px;font:inherit;font-size:13px}
.te-google-box [hidden]{display:none!important}
.te-google-dialog{width:min(500px,calc(100vw - 28px));max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);margin:auto;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;border:1px solid #dbe2ea;border-radius:20px;padding:26px;background:#fff;color:#172b46;color-scheme:light;box-shadow:0 24px 80px #0005;font:15px/1.5 system-ui,-apple-system,sans-serif}
.te-google-dialog::backdrop{background:#06152cb3;backdrop-filter:blur(4px)}
.te-google-dialog h2{font-size:23px;line-height:1.25;margin:0 38px 8px 0;color:#132a47}
.te-google-dialog p{margin:0 0 15px;color:#526276;overflow-wrap:anywhere}
.te-google-dialog label{display:block;margin:12px 0;font-size:14px;font-weight:600}
.te-google-dialog input:not([type=checkbox]):not([type=radio]),.te-google-dialog select{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin-top:5px;padding:9px 12px;font:400 16px/1.5 system-ui,-apple-system,sans-serif;border:1px solid #c9d4e1;border-radius:10px;background:#fff;color:#142a44}
.te-google-dialog input:focus,.te-google-dialog select:focus{outline:2px solid #c4a250;outline-offset:2px}
.te-google-dialog select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,#526276 50%),linear-gradient(135deg,#526276 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.te-google-dialog .te-google-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:#eff3f7;color:#254563;font:24px/1 sans-serif;cursor:pointer}
.te-google-dialog .te-google-primary{display:block;min-height:46px;width:100%;margin-top:18px;padding:10px 15px;border:0;border-radius:12px;background:#173754;color:#fff;font:600 15px/1.4 system-ui;cursor:pointer}
.te-google-dialog .te-google-primary:disabled{opacity:.6;cursor:wait}
.te-google-dialog .te-google-terms{display:flex;gap:9px;align-items:flex-start;font-weight:400;font-size:13px}
.te-google-dialog .te-google-terms input{flex:none;margin:4px 0;width:16px;height:16px;accent-color:#173754}
.te-google-dialog .te-google-link{display:inline;min-height:0;padding:0;border:0;background:none;text-decoration:underline;text-underline-offset:3px;color:#173754;font:inherit;cursor:pointer;white-space:normal;text-align:left;overflow-wrap:anywhere}
.te-google-dialog form>.te-google-link{display:block;min-height:44px;padding:8px 0;line-height:1.5}
.te-google-dialog .te-google-back{margin-bottom:8px}
.te-google-dialog .te-google-field-help{font-size:12px;line-height:1.5;margin:-6px 0 10px;color:#65748a}
.te-google-dialog button:focus-visible,.te-google-retry:focus-visible{outline:2px solid #9b7838;outline-offset:3px}
.te-google-dialog .te-google-policy{font-size:12px;color:#65748a;margin:12px 0 0}
.te-google-dialog .te-google-error{font-size:13px;line-height:1.5;color:#b42318;margin:10px 0 0}
.te-google-dialog [hidden]{display:none!important}
/* Keep the existing two-column design, but let the active form size the card.
   The old absolute panels and role-specific fixed heights clipped longer forms. */
body[data-theme] .gate .gate-card.slider,
body[data-theme] .gate .gate-card.slider.signup-active,
body[data-theme] .gate .gate-card.slider.signup-active:has(.role-opt.on[data-role]){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:640px;transition:none}
.gate .form-box{position:relative;top:auto;left:auto;width:100%;height:auto;min-width:0;grid-row:1;grid-column:1;overflow:visible;transform:none!important;transition:none}
.gate .form-box--signup,.gate .signup-active .form-box--signin{display:none}
.gate .signup-active .form-box--signup{display:block;grid-column:2}
.gate .auth-form{min-width:0}
.gate .auth-head>div:last-child{min-width:0}
.gate .auth-head span{display:block;margin-top:4px;line-height:1.5}
.gate .overlay-left,.gate .signup-active .overlay-right{visibility:hidden;pointer-events:none}
.gate .overlay-right,.gate .signup-active .overlay-left{visibility:visible;pointer-events:auto}
.gate .fld input,.gate .fld select,.gate .fld textarea{min-width:0;max-width:100%}
.gate .pw-field input{padding-right:50px!important}
/* Grid handles final layout; gateMode animates movement without fixed form heights. */
.gate .form-box{opacity:1!important}
.gate .overlay-box{position:relative;grid-row:1;grid-column:2;left:auto;top:auto;width:100%;height:auto;transform:none;transition:none}
.gate .signup-active .overlay-box{grid-column:1;transform:none}
.gate .overlay-inner{left:0;width:100%;height:100%;transform:none!important;transition:none}
.gate .overlay-panel{left:0;right:auto;width:100%;transform:none!important;transition:none}
.gate .overlay-left,.gate .signup-active .overlay-right{display:none}
.gate .overlay-right,.gate .signup-active .overlay-left{display:flex}
@media(max-width:1000px){
  body[data-theme] .gate .gate-card.slider,
  body[data-theme] .gate .gate-card.slider.signup-active,
  body[data-theme] .gate .gate-card.slider.signup-active:has(.role-opt.on[data-role]){grid-template-columns:minmax(0,1fr);min-height:0}
  .gate .signup-active .form-box--signup{grid-column:1}
  .gate .gate-stack{max-width:560px}
  .gate .fld input,.gate .fld select,.gate .fld textarea{font-size:16px}
}
@media(max-width:480px){
  .gate{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
  .gate .auth-form{padding:26px 20px;gap:12px}
  .gate .role-pick{gap:8px}
  .gate .role-opt{padding:10px;min-width:0}
  .te-google-dialog{padding:24px 20px}
  .te-google-dialog h2{font-size:21px}
}
@media(prefers-reduced-motion:reduce){.gate .overlay-box,.gate .overlay-inner,.gate .overlay-panel{transition:none}}

.te-google-dialog .te-google-step,.te-google-dialog .te-google-roles{min-width:0;margin:0;padding:0;border:0}
.te-google-dialog .te-google-roles{margin:20px 0 12px}
.te-google-dialog .te-google-roles legend{padding:0;font-size:16px;font-weight:700}
.te-google-dialog .te-google-role{display:flex;align-items:center;gap:12px;min-height:54px;box-sizing:border-box;padding:12px;border:1px solid #d1dae5;border-radius:12px;cursor:pointer;line-height:1.5;font-weight:500}
.te-google-dialog .te-google-role:has(input:checked){background:#f1f5fa;border-color:#254563;box-shadow:0 0 0 1px #254563}
.te-google-dialog .te-google-role input{flex:none;width:18px;height:18px;margin:0;accent-color:#173754}
.te-google-dialog .te-google-role span{min-width:0}
.te-google-dialog .te-google-progress,.te-google-dialog .te-google-summary{margin:12px 0;font-size:13px;color:#526276}
.te-google-dialog .te-google-summary{padding:10px 12px;background:#f1f5fa;border-radius:10px}
.te-google-dialog .te-google-identity{font-size:13px;margin-bottom:16px}
.te-google-dialog .te-google-existing{display:block;min-height:44px;padding:8px 0;font-size:13px}
.te-google-dialog input[type=date]{appearance:none;-webkit-appearance:none;max-width:100%}
.te-google-dialog .te-profile-claim{margin:14px 0 18px;padding:16px;border:1px solid #c9d4e1;border-radius:12px;background:#f6f8fb;min-width:0}
.te-google-dialog .te-profile-claim h3{font-size:16px;line-height:1.4;margin:0 0 8px}
.te-google-dialog .te-profile-claim p{font-size:13px;margin:8px 0;line-height:1.55}
.te-google-dialog .te-claim-button{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;background:#fff;color:#173754;border:1px solid #9cacc0;border-radius:9px;font:600 14px/1.4 system-ui;white-space:normal;cursor:pointer}
.te-google-dialog .te-claim-button:disabled{opacity:.6;cursor:default}
.te-google-dialog .te-claim-card{background:#fff;border:1px solid #c9d4e1;padding:12px;border-radius:10px;margin-top:10px;overflow-wrap:anywhere}
.te-google-dialog .te-claim-card.selected{border-color:#28734c;box-shadow:0 0 0 1px #28734c}
.te-google-dialog .te-claim-skip{display:block;padding:12px 0;min-height:44px;font-size:13px}
.te-google-dialog .te-claim-status:empty{display:none}
.te-google-dialog .te-claim-countdown{font-variant-numeric:tabular-nums}
.te-google-dialog input[readonly]{background:#eef2f6;color:#526276}
.te-phone-panel{box-sizing:border-box;min-width:0;padding:14px;border:1px solid #ccd6e2;border-radius:12px;background:#f6f8fb;color:#173754;font:14px/1.5 system-ui}
.te-phone-panel h3{margin:0 0 8px;font-size:16px}.te-phone-panel p{font-size:13px!important;line-height:1.55;margin:8px 0!important;color:#526276;overflow-wrap:anywhere}
.te-phone-panel input{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin:6px 0;padding:10px 12px;border:1px solid #b8c6d6;border-radius:9px;font:16px/1.4 system-ui;background:#fff;color:#173754}
.te-phone-button{display:block;box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #9cacc0;border-radius:9px;background:#fff;color:#173754;font:600 14px/1.4 system-ui;white-space:normal;cursor:pointer}.te-phone-button:disabled{opacity:.6;cursor:default}
.te-phone-panel [hidden],#te-phone-reset [hidden]{display:none!important}.te-phone-panel label{display:block;font-size:14px}.te-phone-panel input:focus,.te-phone-button:focus-visible,.te-phone-forgot:focus-visible{outline:2px solid #b39750;outline-offset:2px}
.te-phone-forgot{align-self:flex-end;min-height:40px;padding:6px 0;border:0;background:none;color:var(--em,#1d3557);text-decoration:underline;text-underline-offset:3px;font:14px/1.5 system-ui;cursor:pointer}

/* Required tutor profile inside Google signup, with optional details collapsed. */
.te-google-professional{margin-top:22px;padding-top:18px;border-top:1px solid #dbe2ea}
.te-google-professional h3{font-size:18px;margin:0 0 8px;color:#132a47}
.te-google-dialog .te-google-checks{min-width:0;margin:16px 0;padding:10px;border:1px solid #dbe2ea;border-radius:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.te-google-dialog .te-google-checks legend{font-size:14px;font-weight:600;padding:0 4px}
.te-google-dialog .te-google-checks label{display:flex;gap:7px;align-items:flex-start;font-size:13px;font-weight:400;margin:0;min-width:0;overflow-wrap:anywhere}
.te-google-checks input{flex:none;width:16px;height:16px;margin:3px 0 0;accent-color:#173754}
.te-google-dialog textarea{box-sizing:border-box;width:100%;padding:9px 12px;margin-top:5px;border:1px solid #c9d4e1;border-radius:10px;background:#fff;color:#142a44;font:400 16px/1.5 system-ui;resize:vertical}
.te-google-optional{margin:18px 0;padding:12px;border:1px solid #dbe2ea;border-radius:10px}
.te-google-optional summary{cursor:pointer;font-size:14px;font-weight:600;min-height:28px}
@media(max-width:380px){.te-google-dialog .te-google-checks{grid-template-columns:minmax(0,1fr)}}

/* Do not show verification controls until their provider template is usable. */
.te-phone-panel[hidden],.te-phone-forgot[hidden],#regForm>div[hidden]{display:none!important}
