/* Match the quiet paper-and-teal creation app; no split panel or nested scroll. */
:root { color-scheme:light; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#203b3d; background:#f6f8f7; }
* { box-sizing:border-box; }
body { margin:0; min-width:280px; line-height:1.5; }
button,input { font:inherit; }
a { color:#147779; text-underline-offset:3px; }
button,a,input { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #177b7d; outline-offset:4px; }
.hidden,[hidden] { display:none !important; }
.auth-wrapper { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:40px 20px; }
.auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; margin:0 0 28px; font-size:21px; font-weight:750; letter-spacing:-.045em; text-decoration:none; color:#187d7f; }
.auth-brand img { display:block; width:38px; height:44px; object-fit:contain; }
.auth-card { width:100%; max-width:440px; padding:36px; border:1px solid #e0e9e5; border-radius:22px; background:#fff; box-shadow:0 8px 32px #173b3b04; }
.auth-header { margin-bottom:28px; }
.auth-title { font-size:30px; line-height:1.15; font-weight:650; letter-spacing:-.045em; margin:0 0 10px; }
.auth-title:focus { outline:none; }
.auth-subtitle { color:#607476; font-size:15px; margin:0; }
.form-group { margin-bottom:20px; }
.form-label { display:block; color:#334e4d; font-size:14px; font-weight:600; margin-bottom:8px; }
.form-input { width:100%; min-width:0; min-height:50px; padding:12px 14px; color:#203b3d; background:#fcfdfd; border:1px solid #bfcfca; border-radius:10px; font-size:16px; line-height:1.5; transition:border-color .15s; }
.form-input:focus { outline:3px solid #177b7d22; outline-offset:1px; border-color:#177b7d; }
.form-input.error { border-color:#a44249; }
.password-input-container { position:relative; }
.password-input-container .form-input { padding-right:70px; }
.password-toggle { position:absolute; inset:3px 4px 3px auto; min-width:56px; min-height:44px; padding:8px; border:0; border-radius:7px; background:transparent; color:#147779; font-size:13px; font-weight:600; cursor:pointer; }
.password-toggle:hover { background:#eef6f3; }
.checkbox-group { display:flex; align-items:center; gap:10px; min-height:44px; margin:4px 0 16px; cursor:pointer; }
.checkbox { width:18px; height:18px; flex-shrink:0; margin:0; accent-color:#177b7d; }
.checkbox-label { font-size:13px; color:#526967; line-height:1.5; }
.login-options { margin-top:-8px; }
.login-options .checkbox-group { margin-bottom:16px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:50px; padding:12px 16px; border:1px solid transparent; border-radius:11px; font-size:15px; line-height:1.5; font-weight:600; cursor:pointer; touch-action:manipulation; text-decoration:none; }
.btn-primary { color:white; background:#177b7d; }
.btn-primary:hover:not(:disabled) { background:#126b6d; }
.btn-secondary { color:#23645e; border-color:#d2e1db; background:#f4f8f6; }
.btn-secondary:hover:not(:disabled) { background:#e9f3ef; }
.btn:disabled { cursor:default; opacity:.7; }
.btn-loading { position:relative; }
.btn-loading::before { content:''; width:16px; height:16px; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:auth-spin .8s linear infinite; }
/* Locally rendered light button from Google's official branding configurator. */
.btn-google { position:relative; justify-content:flex-start; padding:12px; border:1px solid #747775; border-radius:4px; background:#fff; color:#1f1f1f; font-family:'Google Sans','Roboto',Arial,sans-serif; font-size:14px; font-weight:500; line-height:20px; letter-spacing:.25px; }
.btn-google:hover:not(:disabled) { background:#f8f9fa; box-shadow:0 1px 2px #3c40434d; }
.google-button-icon { display:block; flex-shrink:0; width:20px; height:20px; }
.google-button-label { flex:1; text-align:center; margin-right:30px; }
.btn-google.btn-loading::before { display:none; }
.btn-google.btn-loading::after { content:''; position:absolute; right:12px; width:14px; height:14px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:auth-spin .8s linear infinite; }
.auth-google-disclosure { margin:12px 0 0; font-size:12px; line-height:1.6; color:#607476; }
.auth-divider { display:flex; align-items:center; gap:14px; margin:22px 0; color:#607476; font-size:13px; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; flex:1; background:#e5ece8; }
.auth-links { text-align:center; margin-top:16px; font-size:14px; }
.auth-links a { display:inline-flex; align-items:center; min-height:44px; padding:8px 4px; text-decoration:none; }
.auth-links a:hover { text-decoration:underline; }
.auth-alternative { margin-top:24px; padding-top:22px; border-top:1px solid #edf1ef; color:#607476; font-size:14px; text-align:center; }
.auth-alternative a { display:inline-block; padding:8px 0; color:#147779; font-weight:600; text-decoration:none; }
.auth-alternative a:hover { text-decoration:underline; }
.auth-footer { display:flex; gap:20px; margin-top:20px; font-size:12px; }
.auth-footer a { display:inline-flex; align-items:center; min-height:44px; color:#586f69; text-decoration:none; }
.auth-footer a:hover { text-decoration:underline; }
.auth-message:empty { display:none; }
.auth-error,.auth-info,.auth-success { padding:0; margin:0 0 20px; font-size:14px; line-height:1.6; text-align:left; overflow-wrap:anywhere; }
.auth-error { color:#993b43; }
.auth-info,.auth-success { color:#365e56; }
.form-error { display:none; color:#993b43; font-size:13px; margin-top:7px; }
.form-success { display:none; color:#365e56; font-size:13px; margin-top:7px; }
.password-strength { display:none; margin:-8px 0 20px; }
.strength-bar { height:3px; background:#e8efec; border-radius:3px; overflow:hidden; margin-bottom:6px; }
.strength-fill { height:100%; border-radius:3px; }
.strength-weak { background:#a64b51; width:25%; }.strength-fair { background:#98742d; width:50%; }.strength-good { background:#43816f; width:75%; }.strength-strong { background:#177b7d; width:100%; }
.strength-text { font-size:12px; color:#607476; }
.auth-state-icon { display:block; width:48px; height:48px; margin-bottom:22px; color:#43816f; }
.auth-email { font-weight:600; overflow-wrap:anywhere; font-size:15px; margin:12px 0 18px; }
.auth-email-hint { margin-bottom:24px; }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@media (max-width:480px) { .auth-wrapper { padding:28px 16px; justify-content:flex-start; }.auth-brand { margin-bottom:24px; font-size:20px; }.auth-card { padding:28px 24px; border-radius:18px; }.auth-title { font-size:28px; }.auth-header { margin-bottom:24px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
