*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--brand-accent: #4A6CF7;--brand-bg: #F6F4F0;--brand-card: #FFFFFF;--computed-border: rgba(0,0,0,.09);--btn-text: #fff}html{font-size:16px}body{font-family:DM Sans,sans-serif;background:var(--brand-bg);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease}body:before{content:"";position:fixed;inset:0;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.wrapper{position:relative;z-index:1;width:100%;max-width:420px}.logo{text-align:center;margin-bottom:2.5rem}.logo-mark{display:inline-flex;align-items:center;gap:.6rem}.logo-text{font-family:"Instrument Serif",serif;font-size:1.65rem;letter-spacing:-.02em}.card{background:var(--brand-card);border:1px solid var(--computed-border);border-radius:16px;padding:2.25rem 2rem;box-shadow:0 1px 3px #0000000a,0 8px 24px #0000000f;animation:cardIn .5s ease-out;transition:background .3s ease,border-color .3s ease}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card h1{font-family:"Instrument Serif",serif;font-size:1.6rem;font-weight:400;letter-spacing:-.02em;margin-bottom:.3rem}.card p.subtitle{font-size:.875rem;margin-bottom:1.75rem;line-height:1.5;opacity:.55}.idp-group{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}.idp-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.7rem 1rem;background:transparent;border:1px solid var(--computed-border);border-radius:10px;font-family:inherit;font-size:.875rem;font-weight:500;color:inherit;cursor:pointer;transition:all .15s ease}.idp-btn:hover{opacity:.8}.idp-btn:active{transform:scale(.985)}.idp-btn:disabled{opacity:.4;cursor:not-allowed}.idp-btn svg{width:20px;height:20px;flex-shrink:0}.divider{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.4}.divider:before,.divider:after{content:"";flex:1;height:1px;background:currentColor;opacity:.3}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;font-weight:500;margin-bottom:.4rem}.form-group input{width:100%;padding:.7rem .85rem;background:#8080800f;border:1px solid var(--computed-border);border-radius:10px;font-family:inherit;font-size:.875rem;color:inherit;transition:all .15s ease;outline:none}.form-group input:focus{border-color:var(--brand-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 15%,transparent)}.form-group input::placeholder{color:inherit;opacity:.3}.form-group input.error{border-color:#d05a48;box-shadow:0 0 0 3px #d05a4826}.field-password{position:relative}.field-password input{padding-right:40px}.toggle-pw{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:inherit;opacity:.35;padding:4px;transition:opacity .15s}.toggle-pw:hover{opacity:.6}.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.remember{display:flex;align-items:center;gap:.45rem;font-size:.8rem;opacity:.55;cursor:pointer}.remember input[type=checkbox]{accent-color:var(--brand-accent);width:15px;height:15px;cursor:pointer}.forgot{font-size:.8rem;color:var(--brand-accent);text-decoration:none;font-weight:500;transition:color .3s ease}.forgot:hover{text-decoration:underline}.submit-btn{width:100%;padding:.75rem;background:var(--brand-accent);color:var(--btn-text);border:none;border-radius:10px;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.01em}.submit-btn:hover{filter:brightness(1.1)}.submit-btn:active{transform:scale(.985)}.submit-btn:disabled{opacity:.4;cursor:not-allowed}.error-msg{display:none;font-size:.8rem;color:#d05a48;background:#d05a4814;border:1px solid rgba(208,90,72,.2);border-radius:10px;padding:.6rem .85rem;margin-bottom:1rem;text-align:center}.error-msg.visible{display:block}.success-msg{font-size:.8rem;background:#8080800f;border:1px solid var(--computed-border);border-radius:10px;padding:.6rem .85rem;margin-bottom:1rem;text-align:center;opacity:.7}.success-msg.visible{display:block}.footer-text{text-align:center;margin-top:1.75rem;font-size:.825rem;opacity:.55}.footer-text a{color:var(--brand-accent);text-decoration:none;font-weight:500;transition:color .3s ease}.footer-text a:hover{text-decoration:underline}.legal{text-align:center;margin-top:1.5rem;font-size:.72rem;opacity:.35;line-height:1.6}.legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}.view{display:none}.view.active{display:block}.hidden{display:none!important}.loading-skeleton{text-align:center;padding:24px}.loading-skeleton .skeleton-logo{width:32px;height:32px;border-radius:8px;background:#8080801f;margin:0 auto 10px;animation:pulse 1.5s ease-in-out infinite}.loading-skeleton .skeleton-text{width:120px;height:22px;border-radius:4px;background:#8080801f;margin:0 auto;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}.app-not-found,.app-fatal-error{text-align:center;padding:24px}.app-not-found svg,.app-fatal-error svg{margin-bottom:16px}.not-found-heading,.fatal-error-heading{font-size:14px;font-weight:700;margin-bottom:8px}.not-found-body,.fatal-error-body{font-size:13px;opacity:.55}.signing-in-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px}.signing-in-overlay .overlay-text{font-size:14px;opacity:.55}.spinner{width:24px;height:24px;border:2px solid color-mix(in srgb,var(--brand-accent) 20%,transparent);border-top-color:var(--brand-accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.card,.spinner,.loading-skeleton .skeleton-logo,.loading-skeleton .skeleton-text{animation:none}}.env-missing-splash{text-align:center;max-width:420px;position:relative;z-index:1}.splash-logo{display:inline-flex;align-items:center;gap:.6rem}.splash-logo-text{font-family:"Instrument Serif",serif;font-size:1.65rem;letter-spacing:-.02em}.splash-heading{font-size:1.1rem;font-weight:500;margin-top:1.5rem;opacity:.7}.splash-dev-details{margin-top:1.5rem;text-align:left;font-size:.8rem;background:#8080800f;border:1px solid var(--computed-border);border-radius:10px;padding:1rem 1.25rem;opacity:.6}.splash-dev-label{font-weight:500;margin-bottom:.75rem}.splash-dev-var{display:block;font-family:monospace;line-height:1.6}.splash-dev-recovery{margin-top:1rem;line-height:1.5}@media(max-width:440px){body{padding:1rem}.card{padding:1.5rem 1.25rem}}
