:root{--accent-red:#ef3a4b;--accent-red-hover:#d92e3f;--accent-red-light:#ff9eab;--text-dark:#1b1b1f;--text-muted:#8b8579;--bg-cream:#fbf6ee;--font-logo:"Open Sans", sans-serif;--font-handwriting:"Caveat", cursive;--font-body:"Open Sans", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{min-width:320px;min-height:100%;font-family:var(--font-body);overflow-x:hidden}.login-page{background:var(--bg-cream);min-width:0;min-height:100vh;display:flex}.brand-panel{background-color:var(--bg-cream);width:clamp(360px,45%,560px);color:var(--text-dark);border-right:1px solid #8b857938;flex-direction:column;justify-content:space-between;padding:clamp(1.5rem,3vw,2.5rem) clamp(1.25rem,4vw,3rem);display:flex;position:relative;overflow:hidden}.brand-panel:before,.brand-panel:after{content:none}.brand-logo{z-index:1;align-items:center;gap:.8rem;min-width:0;display:flex}a.brand-logo{cursor:pointer;outline:none;text-decoration:none}a.brand-logo:hover .brand-logo-icon{transform:scale(1.05)}.brand-logo-icon{object-fit:contain;filter:drop-shadow(2px 4px #1b1b1f14);width:44px;height:56px;transition:transform .2s}.brand-logo-text{font-family:var(--font-logo);letter-spacing:0;font-size:clamp(1.65rem,2.4vw,2rem);font-weight:800;line-height:1}.brand-logo-text span:first-child{color:var(--accent-red)}.brand-logo-text span:last-child{color:var(--text-dark)}.brand-content{z-index:1}.brand-subtitle{letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem;font-size:.75rem;font-weight:800}.brand-headline{font-family:var(--font-logo);margin-bottom:1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.15}.brand-description{color:var(--text-muted);overflow-wrap:anywhere;font-size:1rem;line-height:1.6}.fibi-mascot{z-index:1;align-items:flex-end;gap:1rem;min-width:0;display:flex}.fibi-avatar{object-fit:contain;filter:drop-shadow(2px 4px #1b1b1f14);flex-shrink:0;width:64px;height:80px}.fibi-bubble{color:var(--text-dark);overflow-wrap:anywhere;background:#fff;border:1px solid #8b85793d;border-radius:16px 16px 16px 4px;padding:1rem 1.25rem;font-size:.9rem;line-height:1.5}.form-panel{background:#fff;flex:1;justify-content:center;align-items:center;min-width:0;padding:clamp(1.5rem,5vw,3rem);display:flex}.form-wrapper{width:100%;min-width:0;max-width:400px}.form-title{color:var(--text-dark);margin-bottom:.5rem;font-size:clamp(1.65rem,3vw,2rem);font-weight:800}.form-subtitle{color:var(--text-muted);margin-bottom:2rem;font-size:.95rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:600}.form-group input{font-family:var(--font-body);color:var(--text-dark);border:1.5px solid #8b857940;border-radius:8px;outline:none;min-width:0;min-height:46px;padding:.85rem 1rem;font-size:1rem;transition:border-color .25s}.form-group input:focus{border-color:var(--accent-red)}.form-group input::placeholder{color:#8b857999}.form-row{justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.checkbox-label{color:var(--text-dark);cursor:pointer;align-items:center;gap:.5rem;min-width:0;font-size:.9rem;display:flex}.checkbox-label input[type=checkbox]{accent-color:var(--accent-red);width:16px;height:16px}.forgot-link{color:var(--accent-red);font-size:.85rem;font-style:italic;font-family:var(--font-handwriting);text-align:right;font-weight:500;text-decoration:none}.forgot-link:hover{text-decoration:underline}.btn-login{background:var(--accent-red);color:#fff;font-family:var(--font-body);cursor:pointer;overflow-wrap:anywhere;border:none;border-radius:8px;min-height:48px;margin-top:.5rem;padding:1rem;font-size:1.05rem;font-weight:700;transition:background .2s,transform .15s}.btn-login:hover{background:var(--accent-red-hover);transform:translateY(-1px)}.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-msg{color:var(--accent-red);text-align:center;opacity:0;min-height:1.2em;font-size:.9rem;transition:opacity .3s}.error-msg.show{opacity:1}.error-msg.success{color:var(--accent-red);font-weight:700}.divider{color:var(--text-muted);letter-spacing:1px;align-items:center;gap:1rem;margin:1.5rem 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:#8b857933;flex:1;height:1px}.btn-google{width:100%;font-family:var(--font-body);color:var(--text-dark);cursor:pointer;overflow-wrap:anywhere;background:#fff;border:1.5px solid #8b857940;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;min-height:48px;padding:.85rem;font-size:.95rem;font-weight:600;transition:border-color .2s,box-shadow .2s;display:flex}.btn-google:hover{border-color:#8b857980;box-shadow:0 2px 8px #0000000f}.google-icon{width:18px;height:18px;display:block}.signup-prompt{text-align:center;color:var(--text-muted);margin-top:1.75rem;font-size:.9rem}.signup-link{color:var(--accent-red);font-weight:600;text-decoration:none}.signup-link:hover{text-decoration:underline}@media (width<=900px){.login-page{flex-direction:column}.brand-panel{gap:1.5rem;width:100%;min-height:auto;padding:1.5rem}.brand-headline{font-size:2rem}.fibi-mascot{display:none}.form-panel{align-items:flex-start;width:100%;padding:2rem 1.5rem}}@media (width<=520px){.brand-panel{padding:1.1rem 1rem}.brand-content{display:none}.brand-logo-icon{width:36px;height:46px}.form-panel{padding:1.5rem 1rem 2rem}.form-row{flex-direction:column;align-items:flex-start}.forgot-link{text-align:left}}@media (width<=380px){.brand-logo-text{font-size:1.45rem}.form-panel{padding-left:.75rem;padding-right:.75rem}.btn-google{gap:.5rem;padding-left:.7rem;padding-right:.7rem}}
