:root{--surface-backdrop:#242b34;--surface-card:#fff;--surface-hover:#f9fafb;--surface-hover-strong:#f3f4f6;--text-strong:#0a0a0b;--text:#111827;--text-input:#121826;--text-label:#2e3033;--text-muted:#4b5563;--text-subtle:#737373;--text-faint:#9ca3af;--text-on-dark:#fff;--border:#d1d5db;--border-subtle:#e5e5e5;--border-faint:#f0f0f0;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--danger-border:#ef4444;--required:#b91c1c;--provider-apple:#000;--provider-apple-hover:#1f2937;--provider-google-text:#374151;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-input:0 1px 2px #0000000a;--shadow-button:0 1px 2px #00000014;--shadow-button-secondary:0 1px 2px #0000000d;--shadow-card:0 5px 10px #00000040;--control-height:44px;--card-width:400px;--frame-width:440px;--logo-height:64px;--logo-mark-height:36px;--gap-field:6px;--gap-fields:12px;--gap-card:16px;--gap-frame:28px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, system-ui, sans-serif;--text-title:20px;--text-title-mobile:22px;--text-control:15px;--text-body:14px;--text-label-size:13px;--text-caption:12px;--transition:.15s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);font-size:var(--text-body);color:var(--text);background:var(--surface-backdrop);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;margin:0;line-height:1.5}#root{min-height:100%}h1,h2{font-size:var(--text-title);color:var(--text);margin:0;font-weight:700}a{color:var(--accent);transition:color var(--transition);font-weight:500;text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-shell{background:var(--surface-backdrop);justify-content:center;align-items:center;min-height:100dvh;padding:48px 20px;display:flex}.auth-frame{width:100%;max-width:var(--frame-width);align-items:center;gap:var(--gap-frame);flex-direction:column;display:flex}.auth-logo{line-height:0}.auth-logo img{width:auto;height:var(--logo-height);display:block}.card{width:100%;max-width:var(--card-width);background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);gap:var(--gap-card);flex-direction:column;padding:24px;display:flex}.card--settings{gap:20px}.card__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.separator{background:var(--border-faint);height:1px}.card__title{font-size:var(--text-title);color:var(--text);font-weight:700}.card--notfound{padding:32px 24px}.card__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-label-size);color:var(--text-faint);white-space:nowrap;font-weight:400}.actions{flex-direction:column;gap:10px;display:flex}.support-note{color:var(--text-subtle)}.card__footer{border-top:1px solid var(--border-faint);font-size:var(--text-body);justify-content:center;align-items:center;gap:12px;margin-top:4px;padding-top:12px;display:flex}.card__footer--split{justify-content:space-between}.lang-select{appearance:none;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface-card);height:30px;font-family:inherit;font-size:var(--text-body);color:var(--text);transition:background-color var(--transition);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;flex:none;padding:0 30px 0 10px;font-weight:500}.lang-select:hover{background-color:var(--surface-hover)}.button{width:100%;min-height:var(--control-height);border-radius:var(--radius);font-family:inherit;font-size:var(--text-control);text-align:center;transition:background-color var(--transition), border-color var(--transition);justify-content:center;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.button:hover{text-decoration:none}.button:disabled{opacity:.6}.button--primary{background:var(--accent);color:var(--text-on-dark);box-shadow:var(--shadow-button);border:none;font-weight:600}.button--primary:hover:not(:disabled){background:var(--accent-hover)}.button--secondary{border:1px solid var(--border);background:var(--surface-card);color:var(--text);box-shadow:var(--shadow-button-secondary);font-weight:500}.button--secondary:hover:not(:disabled){background:var(--surface-hover-strong)}.button-compact{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);min-height:30px;font-family:inherit;font-size:var(--text-body);color:var(--text);white-space:nowrap;transition:background-color var(--transition);align-items:center;gap:4px;padding:0 12px;font-weight:500;display:inline-flex}.button-compact:hover:not(:disabled){background:var(--surface-hover-strong)}.button-compact:disabled{opacity:.6}.button-link{font:inherit;color:var(--accent);transition:color var(--transition);background:0 0;border:none;padding:0;font-weight:500}.button-link:hover{color:var(--accent-hover);text-decoration:underline}.providers{flex-direction:column;gap:8px;display:flex}.provider-button{width:100%;min-height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);color:var(--provider-google-text);font-family:inherit;font-size:var(--text-body);transition:background-color var(--transition), border-color var(--transition);justify-content:center;align-items:center;gap:8px;font-weight:500;display:flex}.provider-button:hover:not(:disabled){background:var(--surface-hover)}.provider-button:disabled{opacity:.6}.provider-button--apple{border-color:var(--provider-apple);background:var(--provider-apple);color:var(--text-on-dark)}.provider-button--apple:hover:not(:disabled){background:var(--provider-apple-hover);border-color:var(--provider-apple-hover)}.divider{font-size:var(--text-caption);color:var(--text-faint);align-items:center;gap:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.hint{font-size:var(--text-body);color:var(--text-muted);text-wrap:pretty;margin:0;line-height:1.5}.section-label{font-size:var(--text-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.field{gap:var(--gap-field);flex-direction:column;display:flex}.field__label{font-size:var(--text-label-size);color:var(--text-label);font-weight:500}.field__required{color:var(--required)}.field__control{align-items:center;display:flex;position:relative}.field__input{width:100%;height:var(--control-height);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card);font-family:inherit;font-size:var(--text-control);color:var(--text-input);box-shadow:var(--shadow-input);transition:border-color var(--transition), box-shadow var(--transition);flex:1;padding:0 12px}.field__input[aria-invalid=true]{border-color:var(--danger-border)}.field__input:disabled{background:var(--surface-hover-strong);color:var(--text-muted)}.field__input--with-toggle{padding-right:42px}.field__toggle{border-radius:var(--radius-sm);color:var(--text-faint);transition:background-color var(--transition), color var(--transition);background:0 0;border:none;padding:6px;line-height:0;position:absolute;right:6px}.field__toggle:hover{background:var(--surface-hover-strong);color:var(--text-muted)}.flow-message{border-radius:var(--radius);font-size:var(--text-label-size);overflow-wrap:anywhere;margin:0;padding:10px 12px;line-height:1.45}.flow-message--error{color:var(--danger);background:#fef2f2;border:1px solid #fee2e2}.flow-message--success{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.flow-message--info{font-size:var(--text-body);color:var(--text-muted);text-wrap:pretty;background:0 0;border:none;padding:0}.field .flow-message{font-size:var(--text-caption);background:0 0;border:none;padding:0}.flow-form{gap:var(--gap-card);flex-direction:column;display:flex}.flow-section{gap:var(--gap-fields);flex-direction:column;display:flex}.flow-section--tight{gap:10px}.provider-row{border:1px solid var(--border-subtle);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 12px;display:flex}.provider-row__name,.provider-row__actions{align-items:center;gap:10px;display:flex}.provider-row__name{font-size:var(--text-body);color:var(--text);font-weight:500}.badge{border-radius:var(--radius-sm);font-size:var(--text-caption);white-space:nowrap;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.badge--success{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.notice{border-radius:var(--radius);font-size:var(--text-body);color:#991b1b;background:#fee2e2;border:1px solid #fecaca;align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.45;display:flex}.notice__icon{color:var(--required);flex:none;margin-top:1px}.error-details{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-hover);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.error-details__text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-label-size);color:var(--text-muted);word-break:break-word}.error-details__copy{border-radius:var(--radius-sm);color:var(--text-faint);transition:background-color var(--transition), color var(--transition);background:0 0;border:none;flex:none;padding:4px;line-height:0}.error-details__copy:hover{background:var(--border-faint);color:var(--text-muted)}.loading{flex-direction:column;align-items:center;gap:24px;display:flex}.loading__spinner{color:var(--accent);animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading__note{font-size:var(--text-body);color:var(--text-faint);text-align:center;margin:0}.code-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-hover);max-height:300px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-caption);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:12px;overflow:auto}@media (width<=480px){body{background:var(--surface-card)}.auth-shell{background:var(--surface-card);align-items:flex-start;padding:24px 20px 48px}.auth-frame{align-items:stretch;gap:var(--gap-card)}.auth-logo{align-self:flex-start}.auth-logo img{height:var(--logo-mark-height)}.card{max-width:100%;box-shadow:none;border-radius:0;padding:8px 0 28px}.card__title{font-size:var(--text-title-mobile)}}
