/* Authentication, verification and public payment structures.
 * Shared canvas, cards, controls, actions and notices live in session/base.css.
 */
body.gk-login-page .gk-login-card{width:min(var(--gk-session-card-width),calc(100vw - (var(--gk-session-screen-gap) * 2)))}
.gk-session-language{display:flex;align-items:center;justify-content:space-between;gap:var(--gk-space-3);margin:0 0 var(--gk-space-4);padding:0 0 var(--gk-space-3);border-bottom:1px solid var(--gk-color-border);font-size:var(--gk-font-size-xs);font-weight:800}
.gk-session-language>span,.gk-session-language>a{display:inline-flex;align-items:center;gap:var(--gk-space-2);min-height:34px}
.gk-session-language>span{color:var(--gk-color-muted)}
.gk-session-language>span svg{width:16px;height:16px}
.gk-session-language>a{padding:0 var(--gk-space-3);border:1px solid var(--gk-color-button-secondary-border);border-radius:var(--gk-radius-sm);background:var(--gk-color-button-secondary-bg);color:var(--gk-color-button-secondary-text);text-decoration:none}
.gk-session-language>a:hover{border-color:var(--gk-color-button-secondary-hover-border);background:var(--gk-color-button-secondary-hover-bg);color:var(--gk-color-button-secondary-hover-text)}
.gk-session-language>a:active{border-color:var(--gk-color-button-secondary-active-border);background:var(--gk-color-button-secondary-active-bg);color:var(--gk-color-button-secondary-active-text);box-shadow:var(--gk-interaction-pressed-shadow);transform:translateY(1px)}
.gk-login-brand{display:flex;align-items:center;gap:var(--gk-space-3);margin:0 0 var(--gk-space-4);padding:0 0 var(--gk-space-4);border-bottom:1px solid var(--gk-color-border)}
.gk-login-brand>div{min-width:0}
.gk-login-brand-icon{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--gk-control-radius);background:var(--gk-color-primary-soft);color:var(--gk-color-primary);box-shadow:inset 0 0 0 1px var(--gk-color-action-border)}
.gk-login-brand-icon svg{width:22px;height:22px}
.gk-login-brand strong{display:block;margin:0;color:var(--gk-color-heading);font-size:var(--gk-font-size-lg);font-weight:800;line-height:1.4;overflow-wrap:anywhere}
.gk-login-brand small{display:block;margin-top:2px;color:var(--gk-color-muted);font-size:var(--gk-font-size-xs);line-height:1.45;overflow-wrap:anywhere}
.gk-login-intro{margin:0 0 var(--gk-space-4)}
.gk-login-kicker{display:block;width:max-content;margin:0 0 var(--gk-space-1);color:var(--gk-color-primary);font-size:var(--gk-font-size-xs);font-weight:800;line-height:1.4}
.gk-login-intro h1,.gk-payment-card>h1{margin:0;color:var(--gk-color-heading);font-size:var(--gk-type-page);font-weight:var(--gk-weight-heading);line-height:var(--gk-heading-line-height);letter-spacing:-.01em}
.gk-login-intro p{max-width:34rem;margin:var(--gk-space-1) 0 0;color:var(--gk-color-muted);font-size:var(--gk-font-size-sm);line-height:var(--gk-line-height-base);overflow-wrap:anywhere}
.gk-login-error,.gk-login-success{margin:0 0 var(--gk-space-3)}
.gk-login-error{border-color:var(--gk-color-button-danger-border);background:var(--gk-color-danger-soft);color:var(--gk-color-danger)}
.gk-login-success{border-color:var(--gk-color-success-border);background:var(--gk-color-success-soft);color:var(--gk-color-success)}
.gk-login-alert-mark,.gk-login-status-mark{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:var(--gk-radius-pill);font-weight:800}
.gk-login-alert-mark{background:var(--gk-color-danger-mark);color:var(--gk-color-danger)}
.gk-login-status-mark{background:var(--gk-color-success-mark);color:var(--gk-color-success)}
.gk-login-status-mark::before{content:"✓"}
.gk-login-form{display:grid;gap:var(--gk-session-inner-gap);margin:0}
.gk-login-form label{display:grid;gap:var(--gk-label-gap);margin:0}
.gk-login-form label>span{color:var(--gk-color-text);font-size:var(--gk-font-size-sm);font-weight:700;line-height:1.5}
.gk-input-shell{position:relative;display:grid;grid-template-columns:var(--gk-form-control-height) minmax(0,1fr) var(--gk-form-control-height);align-items:center;width:100%;height:var(--gk-form-control-height);overflow:hidden;border:var(--gk-control-border-width) solid var(--gk-color-field-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-field-bg);box-shadow:none;transition:var(--gk-transition)}
.gk-input-shell:hover{border-color:var(--gk-color-field-border-hover)}
.gk-input-shell:focus-within{border-color:var(--gk-color-primary);box-shadow:var(--gk-focus-ring)}
.gk-input-icon,.gk-password-toggle{width:var(--gk-form-control-height);height:calc(var(--gk-form-control-height) - 2px);display:grid;place-items:center;color:var(--gk-color-field-placeholder)}
.gk-input-icon{pointer-events:none}
.gk-input-icon svg,.gk-password-toggle svg{width:18px;height:18px}
.gk-input-shell>input{width:100%;height:calc(var(--gk-form-control-height) - 2px);min-width:0;margin:0;padding:0 var(--gk-space-1);border:0;outline:0;background:transparent;color:var(--gk-color-field-text);font-size:var(--gk-font-size-md);font-weight:700;box-shadow:none}
.gk-input-shell>input::placeholder{color:var(--gk-color-field-placeholder);font-weight:400}
.gk-password-toggle{position:relative;min-width:var(--gk-form-control-height);max-width:var(--gk-form-control-height);align-self:stretch;justify-self:stretch;margin:0;padding:0;border:0;background:transparent;line-height:1;cursor:pointer;transition:var(--gk-transition)}
.gk-password-toggle:hover{background:var(--gk-color-primary-soft);color:var(--gk-color-primary)}
.gk-password-toggle:active:not(:disabled){background:var(--gk-color-button-secondary-active-bg);color:var(--gk-color-primary-active);box-shadow:var(--gk-interaction-pressed-shadow);transform:translateY(1px)}
.gk-password-toggle>span{width:100%;height:100%;display:grid;place-items:center;line-height:1}
.gk-password-toggle>span[hidden]{display:none}
.gk-login-button{width:100%;min-width:0;margin:var(--gk-space-1) 0 0}
.gk-button-loading{display:inline-flex;align-items:center;gap:var(--gk-space-2)}
.gk-login-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.42);border-top-color:var(--gk-color-on-primary);border-radius:50%;animation:gk-session-spin .75s linear infinite}
@keyframes gk-session-spin{to{transform:rotate(360deg)}}
.gk-login-secondary-link{display:flex;align-items:center;justify-content:center;min-height:34px;margin:var(--gk-space-2) 0 0;color:var(--gk-color-action-text);font-size:var(--gk-font-size-xs);font-weight:700;text-decoration:none}
.gk-login-secondary-link:hover{color:var(--gk-color-action-hover-text);text-decoration:underline;text-underline-offset:3px}
.gk-login-cancel-form .gk-login-secondary-link{width:100%;padding:0;border:0;background:transparent;font-family:inherit;cursor:pointer}
.gk-login-security{display:flex;align-items:center;justify-content:center;gap:var(--gk-space-2);margin:var(--gk-space-4) 0 0;padding:var(--gk-space-3) 0 0;border-top:1px solid var(--gk-color-border);color:var(--gk-color-muted);font-size:11px;line-height:1.5}
.gk-login-security svg{width:13px;height:13px}

/* Six masked visual slots around one stable one-time-code input. */
.gk-pin-step-form{gap:var(--gk-session-inner-gap)}
.gk-pin-field{display:grid!important;gap:var(--gk-space-2)!important;width:100%;margin:0}
.gk-pin-field>span{display:block;color:var(--gk-color-text);font-size:var(--gk-font-size-sm);font-weight:700;line-height:1.5}
.gk-pin-boxes{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gk-space-2);width:100%;margin:0;direction:ltr}
.gk-pin-code-input{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0!important;outline:0!important;background:transparent!important;color:transparent!important;caret-color:transparent!important;opacity:.01;font-size:16px;direction:ltr;text-align:left;box-shadow:none!important}
.gk-pin-box{pointer-events:none;display:grid;place-items:center;width:100%;min-width:0;height:52px;margin:0;padding:0;border:1px solid var(--gk-color-field-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-field-bg);color:var(--gk-color-field-text);direction:ltr;text-align:center;font-size:20px;font-weight:800;line-height:1;outline:0;box-shadow:none;transition:var(--gk-transition)}
.gk-pin-boxes:hover .gk-pin-box{border-color:var(--gk-color-field-border-hover)}
.gk-pin-box.is-current{border-color:var(--gk-color-primary);box-shadow:var(--gk-focus-ring)}

/* Human verification. */
body.gk-human-check-page .gk-login-card{width:min(var(--gk-session-card-width),calc(100vw - (var(--gk-session-screen-gap) * 2)))}
.gk-human-code-text{margin:0 0 var(--gk-space-3);padding:var(--gk-space-3) var(--gk-space-4);border:1px solid var(--gk-color-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-surface-subtle);text-align:center;color:var(--gk-color-primary);font-size:21px;font-weight:800;letter-spacing:.08em}
.gk-human-code-input{text-align:center;font-size:18px;font-weight:800}

/* Public payment session. */
body.gk-payment-page .gk-login-card{width:min(var(--gk-session-card-width-wide),calc(100vw - (var(--gk-session-screen-gap) * 2)))}
.gk-payment-card>h1{text-align:center;margin-bottom:var(--gk-space-4)}
.gk-payment-card :is(input:not([type="radio"]),select){width:100%;height:var(--gk-form-control-height);padding:0 var(--gk-control-padding-inline);border:1px solid var(--gk-color-field-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-field-bg);color:var(--gk-color-field-text);outline:0}
.gk-payment-card :is(input,select):focus{border-color:var(--gk-color-primary);box-shadow:var(--gk-focus-ring)}
.gk-payment-empty{padding:var(--gk-space-4);border:1px dashed var(--gk-color-border-strong);border-radius:var(--gk-form-control-radius);background:var(--gk-color-surface-subtle);color:var(--gk-color-muted);text-align:center;font-size:var(--gk-font-size-sm);overflow-wrap:anywhere}
.gk-payment-success{display:grid;gap:var(--gk-space-1);padding:var(--gk-space-5);border:1px solid var(--gk-color-success-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-success-soft);text-align:center}
.gk-payment-success strong{font-size:24px;color:var(--gk-color-success)}
.gk-payment-success span{font-size:var(--gk-font-size-xs);color:var(--gk-color-muted)}
.gk-payment-invoice{display:grid;gap:0;margin-bottom:var(--gk-space-3);border:1px solid var(--gk-color-border);border-radius:var(--gk-form-control-radius);overflow:hidden;background:var(--gk-color-surface)}
.gk-payment-invoice>div{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);align-items:center;gap:var(--gk-space-3);min-height:48px;padding:var(--gk-space-2) var(--gk-space-3);border-bottom:1px solid var(--gk-color-border)}
.gk-payment-invoice>div:last-child{border-bottom:0}
.gk-payment-invoice span{display:flex;align-items:center;gap:var(--gk-space-2);color:var(--gk-color-muted);font-size:var(--gk-font-size-xs)}
.gk-payment-invoice strong,.gk-payment-invoice code{min-width:0;color:var(--gk-color-text);font-size:var(--gk-font-size-sm);text-align:end;overflow-wrap:anywhere}
.gk-payment-invoice code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.gk-payment-data-icon{flex:0 0 22px;width:22px;height:22px;display:grid!important;place-items:center;border-radius:var(--gk-radius-sm);background:var(--gk-color-primary-soft);color:var(--gk-color-primary)}
.gk-payment-data-icon svg{width:13px;height:13px}
.gk-payment-methods{display:grid;gap:var(--gk-space-2)}
.gk-payment-method{display:flex!important;align-items:center;gap:var(--gk-space-2)!important;min-height:var(--gk-form-control-height);padding:var(--gk-space-2) var(--gk-space-3);border:1px solid var(--gk-color-border);border-radius:var(--gk-form-control-radius);background:var(--gk-color-surface);transition:var(--gk-transition)}
.gk-payment-method input{width:17px!important;height:17px!important;margin:0}
.gk-payment-method span{font-size:var(--gk-font-size-sm);font-weight:700}
.gk-payment-method:has(input:checked){border-color:var(--gk-color-action-border);background:var(--gk-color-primary-soft)}

/* Browser autofill keeps the same field surface. */
.gk-input-shell>input:-webkit-autofill,.gk-input-shell>input:-webkit-autofill:hover,.gk-input-shell>input:-webkit-autofill:focus,.gk-input-shell>input:-webkit-autofill:active{-webkit-text-fill-color:var(--gk-color-field-text)!important;caret-color:var(--gk-color-field-text)!important;-webkit-box-shadow:0 0 0 1000px var(--gk-color-field-bg) inset!important;box-shadow:0 0 0 1000px var(--gk-color-field-bg) inset!important;background-color:var(--gk-color-field-bg)!important;transition:background-color 9999s ease-out 0s!important}
.gk-input-shell>input:autofill{background:var(--gk-color-field-bg)!important;color:var(--gk-color-field-text)!important;box-shadow:0 0 0 1000px var(--gk-color-field-bg) inset!important}
.gk-login-button[aria-busy="true"]{cursor:wait}

@media(max-width:760px){
  .gk-payment-card>h1{text-align:start}
  .gk-input-shell{grid-template-columns:var(--gk-ui-control-height-mobile) minmax(0,1fr) var(--gk-ui-control-height-mobile);height:var(--gk-ui-control-height-mobile)}
  .gk-input-shell>input{height:calc(var(--gk-ui-control-height-mobile) - 2px);font-size:16px}
  .gk-password-toggle{min-width:var(--gk-ui-control-height-mobile);max-width:var(--gk-ui-control-height-mobile)}
  .gk-payment-card :is(input:not([type="radio"]),select){height:var(--gk-ui-control-height-mobile);min-height:var(--gk-ui-control-height-mobile);font-size:16px}
  .gk-payment-method{min-height:var(--gk-ui-control-height-mobile)}
}
@media(max-width:460px){
  .gk-login-form{gap:var(--gk-space-3)}
  .gk-login-brand{margin-bottom:var(--gk-space-3);padding-bottom:var(--gk-space-3)}
  .gk-pin-box{height:49px;font-size:18px}
  .gk-pin-boxes{gap:7px}
  .gk-payment-invoice>div{grid-template-columns:minmax(0,1fr);gap:var(--gk-space-1);align-items:start}
  .gk-payment-invoice strong,.gk-payment-invoice code{text-align:inherit}
  html[dir="rtl"] .gk-payment-invoice :is(strong[dir="ltr"],code[dir="ltr"]){text-align:right}
}
@media(max-width:340px){
  .gk-login-brand-icon{flex-basis:40px;width:40px;height:40px}
  .gk-pin-box{height:46px;font-size:17px}
  .gk-pin-boxes{gap:6px}
}

/* Login password reveal matches the in-field Account Security eye. */
.gk-input-shell>button[data-password-toggle]{appearance:none;-webkit-appearance:none;border:0;outline:0;box-shadow:none;background:transparent;color:var(--gk-color-muted-strong);padding:0;display:grid;place-items:center}
.gk-input-shell>button[data-password-toggle] :is(svg,.gk-icon){display:block;width:19px;height:19px}
.gk-input-shell>button[data-password-toggle]:focus-visible{outline:2px solid var(--gk-color-primary);outline-offset:-3px}
.gk-input-shell>button[data-password-toggle]:hover{color:var(--gk-color-primary);background:var(--gk-color-primary-soft)}
