*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-family:'Google Sans',Roboto,-apple-system,sans-serif}
img,svg{-webkit-user-drag:none;user-drag:none;pointer-events:none}
input,textarea{-webkit-user-select:text;user-select:text}

.g-page{
  min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  background:#f0f4f9;padding:24px;
}
.g-card{
  background:#fff;border-radius:8px;border:1px solid #dadce0;
  padding:48px 40px 36px;width:100%;max-width:420px;
  position:relative;overflow:hidden;
}

/* blue loading progress bar */
.g-progress{
  position:absolute;top:0;left:0;width:100%;height:3px;
  background:transparent;overflow:hidden;z-index:10;display:none;
}
.g-progress.active{display:block}
.g-progress::after{
  content:'';position:absolute;top:0;left:0;width:40%;height:100%;
  background:#1a73e8;animation:gProgressSlide 1.5s ease-in-out infinite;
}
@keyframes gProgressSlide{
  0%{left:-40%}
  100%{left:100%}
}

.g-footer{margin-top:24px;width:100%;max-width:420px}
.g-footer-links{display:flex;align-items:center;gap:16px;font-size:12px;color:#5f6368;flex-wrap:wrap}
.g-footer-links a{color:#5f6368;text-decoration:none}
.g-footer-links a:hover{text-decoration:underline}

.g-view{display:none;flex-direction:column;align-items:center}
.g-view.show{display:flex}

.g-card.is-loading .g-view{opacity:.4;pointer-events:none;transition:opacity .2s ease}
.g-card .g-view{transition:opacity .2s ease}

.g-logo{margin-bottom:16px;text-align:center}
.g-title{font-size:24px;font-weight:400;color:#202124;margin-bottom:4px;text-align:center}
.g-subtitle-main{font-size:16px;color:#202124;margin-bottom:24px;text-align:center}
.g-subtitle{font-size:14px;color:#5f6368;text-align:center;line-height:1.5;margin-bottom:24px;max-width:340px}

.g-email-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 12px 4px 4px;border:1px solid #dadce0;border-radius:16px;
  background:none;cursor:pointer;font-size:14px;color:#3c4043;
  margin-bottom:20px;max-width:100%;transition:background .2s;
}
.g-email-chip:hover{background:#f1f3f4}
.g-email-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.g-form{width:100%;display:flex;flex-direction:column;gap:8px}
.g-row{display:flex;gap:12px}
.g-row .g-input-wrap{flex:1}
.g-input-wrap{position:relative;margin-bottom:4px}
.g-input-wrap input{
  width:100%;padding:13px 15px;border:1px solid #dadce0;border-radius:4px;
  font-size:16px;color:#202124;outline:none;background:#fff;
  transition:border-color .15s;font-family:'Google Sans',Roboto,sans-serif;
}
.g-input-wrap input:focus{border-color:#1a73e8;border-width:2px;padding:12px 14px}
.g-input-wrap label{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  font-size:16px;color:#5f6368;pointer-events:none;
  transition:all .15s;background:#fff;padding:0 4px;
}
.g-input-wrap input:focus+label,.g-input-wrap input:not(:placeholder-shown)+label{
  top:0;font-size:12px;color:#1a73e8;
}
.g-input-wrap input:not(:focus):not(:placeholder-shown)+label{color:#5f6368}
.g-input-wrap input:disabled{background:#f8f9fa;color:#80868b}

.g-input-wrap.has-error input{border-color:#d93025}
.g-input-wrap.has-error input:focus{border-color:#d93025}
.g-input-wrap.has-error input:focus+label,
.g-input-wrap.has-error input:not(:placeholder-shown)+label{color:#d93025}

.g-inline-error{display:flex;align-items:flex-start;gap:8px;margin-top:-2px;margin-bottom:4px}
.g-inline-error svg{flex-shrink:0;margin-top:1px}
.g-inline-error span{font-size:12px;color:#d93025;line-height:1.4}

.g-link{font-size:14px;color:#1a73e8;text-decoration:none;font-weight:500;cursor:pointer}
.g-link:hover{text-decoration:underline}

.g-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:#202124;cursor:pointer;margin:4px 0}
.g-checkbox input[type="checkbox"]{width:18px;height:18px;accent-color:#1a73e8;cursor:pointer}

.g-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px}

.g-btn-next{
  height:36px;padding:0 24px;background:#1a73e8;color:#fff;border:none;border-radius:4px;
  font-size:14px;font-weight:500;cursor:pointer;min-width:90px;letter-spacing:.25px;
  transition:background .2s,box-shadow .2s;
}
.g-btn-next:hover:not(:disabled){background:#1765cc;box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15)}
.g-btn-next:disabled{background:#dadce0;color:#80868b;cursor:not-allowed}

.g-btn-main{
  height:36px;padding:0 24px;background:#1a73e8;color:#fff;border:none;border-radius:4px;
  font-size:14px;font-weight:500;cursor:pointer;letter-spacing:.25px;transition:background .2s,box-shadow .2s;
}
.g-btn-main:hover{background:#1765cc;box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15)}

.g-type-icon{margin:8px 0 24px;text-align:center}
.g-attempt{font-size:12px;color:#d93025;margin-bottom:16px;text-align:center}

.g-prompt-number{width:100%;text-align:center;padding:24px;background:#e8f0fe;border-radius:8px;margin-bottom:24px}
.g-prompt-label{font-size:14px;color:#5f6368;margin-bottom:12px}
.g-prompt-value{font-size:56px;font-weight:500;color:#202124;letter-spacing:8px}

.g-spinner-row{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;color:#5f6368}
.g-spinner-sm{width:24px;height:24px;border:3px solid #e8eaed;border-top:3px solid #1a73e8;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.g-success-check{margin-bottom:24px}
.g-error-svg{margin-bottom:16px}
.g-error-text{font-size:14px;color:#5f6368;margin-bottom:24px;line-height:1.5;text-align:center}

@media(max-width:520px){
  .g-card{padding:32px 20px 28px;border:none;border-radius:0;box-shadow:none}
  .g-page{padding:0;background:#fff}
  .g-row{flex-direction:column;gap:8px}
}
