:root{--bg-main:#f8fafc;--bg-surface:#fff;--bg-card:#ffffffeb;--bg-input:#fff;--bg-input-focus:#fff;--border-subtle:#e2e8f0;--border-focus:#0284c7;--border-error:#ef4444;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-cyan:#0284c7;--accent-blue:#0369a1;--accent-glow:#0284c72e;--status-error:#e11d48;--status-success:#059669;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--transition-fast:.18s cubic-bezier(.4, 0, .2, 1);--transition-normal:.28s cubic-bezier(.4, 0, .2, 1);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100vh;font-family:var(--font-family);background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}@media (width>=861px){html,body{height:100vh;max-height:100vh;overflow:hidden}}.auth-wrapper{background:radial-gradient(circle at 15% 25%,#0ea5e914 0%,#0000 45%),radial-gradient(circle at 85% 75%,#0284c70f 0%,#0000 50%),#f1f5f9;justify-content:center;align-items:stretch;height:100vh;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-container{grid-template-columns:1.15fr 1fr;width:100%;height:100vh;max-height:100vh;margin:0;display:grid;overflow:hidden}.auth-hero-panel{background:#f8fafc;justify-content:flex-start;align-items:center;width:100%;height:100vh;max-height:100vh;padding:0;display:flex;position:relative;overflow:hidden}.hero-full-image{object-fit:contain;object-position:left center;width:100%;height:100%;max-height:100vh;display:block}.hero-image-overlay{pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffff0a 75%,#f1f5f959 100%);position:absolute;inset:0}.auth-form-panel{z-index:2;background:#fff;flex-direction:column;justify-content:flex-start;align-items:center;height:100vh;max-height:100vh;padding:3.5rem 2.5rem;display:flex;position:relative;overflow:hidden auto}.auth-form-panel::-webkit-scrollbar{width:6px}.auth-form-panel::-webkit-scrollbar-track{background:0 0}.auth-form-panel::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:4px}.form-box{width:100%;max-width:440px;margin:auto 0}.form-header{margin-bottom:2.25rem}.brand-inline{transition:opacity var(--transition-fast), transform var(--transition-fast);align-items:center;margin-bottom:1.75rem;text-decoration:none;display:inline-flex}.brand-inline:hover{opacity:.9;transform:translateY(-1px)}.brand-logo-img{object-fit:contain;width:auto;max-width:220px;height:40px;display:block}.form-header h1{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.5rem;font-size:1.95rem;font-weight:700}.form-header p{color:var(--text-secondary);font-size:.95rem}.auth-form{flex-direction:column;gap:1.35rem;display:flex}.input-group{flex-direction:column;gap:.45rem;display:flex}.input-group label{color:#334155;justify-content:space-between;align-items:center;font-size:.86rem;font-weight:600;display:flex}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;left:1rem}.input-field{background:var(--bg-input);border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:.82rem 1rem .82rem 2.85rem;font-family:inherit;font-size:.95rem;box-shadow:0 1px 2px #0000000a}.input-field::placeholder{color:#94a3b8}.input-field:hover{border-color:#cbd5e1}.input-field:focus{background:var(--bg-input-focus);border-color:var(--border-focus);box-shadow:0 0 0 3.5px var(--accent-glow)}.input-wrapper:focus-within .input-icon{color:var(--accent-cyan)}.input-group.has-error .input-field{border-color:var(--border-error)!important;box-shadow:0 0 0 3.5px #ef444426!important}.input-group.has-error .input-icon{color:var(--status-error)!important}.error-message{color:var(--status-error);align-items:center;gap:.35rem;margin-top:.2rem;font-size:.8rem;font-weight:500;animation:.2s ease-in-out fadeIn;display:none}.input-group.has-error .error-message{display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.shake-animation{animation:.35s ease-in-out shake}.password-toggle-btn{cursor:pointer;color:var(--text-muted);transition:color var(--transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.25rem;display:flex;position:absolute;right:.85rem}.password-toggle-btn:hover{color:var(--text-primary)}.form-options-row{justify-content:space-between;align-items:center;font-size:.85rem;display:flex}.checkbox-container{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-secondary);align-items:center;gap:.55rem;font-weight:500;display:inline-flex}.checkbox-container input[type=checkbox]{appearance:none;cursor:pointer;width:18px;height:18px;transition:all var(--transition-fast);background:#fff;border:1.5px solid #cbd5e1;border-radius:5px;place-content:center;display:grid}.checkbox-container input[type=checkbox]:checked{background:var(--accent-blue);border-color:var(--accent-blue)}.checkbox-container input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;transform:rotate(45deg)translate(-.5px,-1px)}.link-highlight{color:#0284c7;transition:all var(--transition-fast);font-weight:600;text-decoration:none}.link-highlight:hover{color:#0369a1;text-underline-offset:3px;text-decoration:underline}.submit-btn{border-radius:var(--radius-md);color:#fff;cursor:pointer;width:100%;transition:all var(--transition-fast);background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:none;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.85rem 1.25rem;font-family:inherit;font-size:.98rem;font-weight:600;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 14px #0284c759}.submit-btn:hover{filter:brightness(1.04);transform:translateY(-1.5px);box-shadow:0 6px 20px #0284c773}.submit-btn:active{transform:translateY(0)}.submit-btn.is-loading{pointer-events:none;opacity:.85}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:none}.is-loading .spinner{display:inline-block}.is-loading .btn-text{display:none}@keyframes spin{to{transform:rotate(360deg)}}.form-footer-action{text-align:center;color:var(--text-secondary);margin-top:2rem;font-size:.88rem}.success-banner{border:1px solid #bbf7d0;border-left:4px solid var(--status-success);border-radius:var(--radius-md);color:#065f46;background:#f0fdf4;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding:.9rem 1.1rem;font-size:.88rem;line-height:1.45;animation:.28s cubic-bezier(.16,1,.3,1) bannerSlideIn;display:none;position:relative;box-shadow:0 4px 14px -4px #10b98126}.success-banner.visible{display:flex}.success-banner-icon{color:#059669;background:#dcfce7;border:1px solid #86efac;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.success-banner-body{flex-direction:column;flex:1;gap:.15rem;display:flex}.success-banner-title{color:#064e3b;letter-spacing:-.01em;font-size:.88rem;font-weight:600}.success-banner-desc{color:#047857;font-size:.82rem}.success-banner-close{color:#059669;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-left:.25rem;padding:.25rem;display:flex}.success-banner-close:hover{color:#064e3b;background:#dcfce7}.error-banner{border:1px solid #fecdd3;border-left:4px solid var(--border-error);border-radius:var(--radius-md);color:#9f1239;background:#fff1f2;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding:.9rem 1.1rem;font-size:.88rem;line-height:1.45;animation:.28s cubic-bezier(.16,1,.3,1) bannerSlideIn;display:none;position:relative;box-shadow:0 4px 14px -4px #f43f5e26}.error-banner.visible{display:flex}.error-banner-icon{color:#e11d48;background:#ffe4e6;border:1px solid #fca5a5;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.error-banner-body{flex-direction:column;flex:1;gap:.15rem;display:flex}.error-banner-title{color:#881337;letter-spacing:-.01em;font-size:.88rem;font-weight:600}.error-banner-desc{color:#be123c;font-size:.82rem}.error-banner-close{color:#e11d48;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-left:.25rem;padding:.25rem;display:flex}.error-banner-close:hover{color:#881337;background:#ffe4e6}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.form-row-2col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=540px){.form-row-2col{grid-template-columns:1fr}}.optional-fields-container{flex-direction:column;gap:1.25rem;transition:max-height .35s,opacity .35s;display:flex;overflow:hidden}.optional-fields-container.is-hidden{display:none}.manual-entry-toggle{color:#0284c7;cursor:pointer;text-underline-offset:3px;transition:color var(--transition-fast);background:0 0;border:none;align-items:center;gap:.35rem;margin-top:.15rem;padding:0;font-family:inherit;font-size:.82rem;font-weight:600;text-decoration:underline;display:inline-flex}.manual-entry-toggle:hover{color:#0369a1}.selected-place-badge{border-radius:var(--radius-sm);color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;justify-content:space-between;align-items:center;margin-top:.35rem;padding:.5rem .75rem;font-size:.82rem;display:none}.selected-place-badge.visible{display:flex}.selected-place-name{align-items:center;gap:.4rem;font-weight:600;display:flex}.clear-place-btn{color:#15803d;cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}.recaptcha-wrapper{flex-direction:column;justify-content:center;align-items:center;margin:.5rem 0 .25rem;display:flex}.recaptcha-wrapper .error-message{align-self:center}.pac-container{border-radius:var(--radius-md);font-family:var(--font-family);background-color:#fff;border:1px solid #e2e8f0;margin-top:4px;box-shadow:0 10px 25px -5px #0f172a1a,0 8px 10px -6px #0f172a0d;z-index:99999!important}.pac-item{cursor:pointer;color:#334155;border-top:1px solid #f1f5f9;padding:8px 12px;font-size:.88rem;line-height:1.4}.pac-item:first-child{border-top:none}.pac-item:hover,.pac-item-selected{background-color:#f8fafc}.pac-item-query{color:#0f172a;font-size:.9rem;font-weight:600}.pac-matched{color:#0284c7;font-weight:700}@media (width<=1024px){.auth-container{grid-template-columns:1fr 1fr;height:100vh;max-height:100vh}.auth-hero-panel{height:100vh;max-height:100vh}.auth-form-panel{height:100vh;max-height:100vh;padding:3.5rem 1.75rem}}@media (width<=860px){html,body{height:auto;min-height:100%;overflow-y:auto}.auth-wrapper{height:auto;min-height:100dvh;overflow:visible}.auth-container{background-image:var(--brand-bg-image,url(/auth-v2.png));background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;grid-template-columns:1fr;height:auto;min-height:100dvh;max-height:none;position:relative}.auth-hero-panel{display:none}.auth-form-panel{z-index:2;-webkit-backdrop-filter:blur(12px);background:radial-gradient(circle at 50% 30%,#ffffffb8 0%,#f1f5f9e0 100%);justify-content:flex-start;align-items:center;height:auto;min-height:100dvh;max-height:none;padding:2.5rem 1.25rem 3.5rem;position:relative;overflow-y:visible}.form-box{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #fffc;max-width:440px;margin:auto 0;padding:2.25rem 1.75rem;box-shadow:0 20px 45px #0f172a1f,0 0 25px #0284c71a}.form-header{margin-bottom:1.75rem}.form-header h1{font-size:1.75rem}}@media (width<=480px){.auth-form-panel{padding:1.75rem .9rem 2.5rem}.form-box{border-radius:var(--radius-lg);padding:1.75rem 1.25rem}.form-header h1{font-size:1.5rem}.brand-inline{margin-bottom:1.25rem}.brand-logo-img{max-width:180px;height:34px}}
