/* Shared login modal: the Free workspace and the paid application page open the same dialog.
   Controls come from portal-auth.js renderLoginControls; see portal-login-panel.js createModal. */
.free-auth-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; overflow: auto; padding: 16px; background: rgba(247, 250, 253, .28); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
.free-auth-modal[hidden] { display: none; }
.free-auth-dialog { position: relative; box-sizing: border-box; width: min(100%, 440px); max-height: calc(100vh - 32px); overflow: auto; padding: 30px; background: #fff; border: 1px solid #dbe5ee; border-radius: 16px; box-shadow: 0 20px 70px rgba(0,0,0,.14); }
.free-auth-dialog:focus { outline: none; }
.free-auth-dialog h2 { margin: 0 0 8px; font-size: 22px; color: var(--flapbase-navy); }
.free-auth-dialog p { margin: 0 0 20px; color: var(--saas-text-2); }
.free-auth-dialog input { box-sizing: border-box; width: 100%; }
.free-auth-dialog input[hidden], .free-auth-dialog button[hidden] { display: none; }
.free-auth-dialog button#send, .free-auth-dialog button#verify { min-height: 40px; background: var(--flapbase-navy); border-color: var(--flapbase-navy); color: #fff; }
.free-auth-dialog button#send:hover, .free-auth-dialog button#verify:hover { background: #144b78; border-color: #144b78; color: #fff; }
.free-auth-dialog #otp-sent-message { margin: 4px 0 14px; color: var(--saas-text-2); font-size: 13px; line-height: 1.6; }
.free-auth-dialog .google-signin { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 24px; border: 1px solid #dadce0; border-radius: 4px; background: #fff; color: #1f1f1f; }
.free-auth-dialog .google-signin[hidden], .free-auth-dialog .divide[hidden] { display: none; }
.free-auth-dialog .divide { display: flex; align-items: center; gap: 14px; margin: 20px 0; font-size: 11px; color: var(--saas-text-3); }
.free-auth-dialog .divide::before, .free-auth-dialog .divide::after { content: ''; flex: 1 1 auto; border-top: 1px solid var(--platform-divider); }
.free-auth-close { position: absolute; top: 13px; right: 15px; border: 0; background: none; color: var(--saas-text-2); font-size: 25px; cursor: pointer; }
.free-auth-footer { margin-top: 18px; text-align: center; font-size: 11px; color: #8b9aaa; }
.free-login-toast { position: fixed; right: 24px; bottom: 24px; z-index: 101; max-width: min(360px, calc(100vw - 32px)); padding: 11px 18px; border-radius: 8px; background: #173c5b; color: #fff; box-shadow: 0 8px 24px rgb(16 34 47 / 18%); font-size: 13px; pointer-events: none; }
.free-login-toast[hidden] { display: none; }
@media (max-width: 360px) { .free-auth-dialog { padding: 24px 18px; } }
.free-auth-dialog .google-signin { font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; }
.free-auth-dialog .google-signin:hover { background: #f8f9fa; border-color: #c6c9cc; }
.free-auth-dialog .google-signin:disabled { opacity: .65; cursor: wait; }
.free-auth-dialog .google-signin img { flex-shrink: 0; }
