.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px;background:#0614248a;-webkit-backdrop-filter:blur(8px) saturate(1.05);backdrop-filter:blur(8px) saturate(1.05)}.auth-modal-content{box-sizing:border-box;width:min(410px,100%);max-height:min(92svh,720px);overflow-y:auto;padding:32px 34px;border:1px solid rgba(255,255,255,.9);border-radius:22px;background:#fff;color:#07172f;text-align:center;animation:authPop .24s ease-out}.auth-modal-content::-webkit-scrollbar{width:0}.auth-loading{display:flex;min-height:128px;align-items:center;justify-content:center}.auth-spinner{width:30px;height:30px;border:3px solid rgba(65,105,225,.18);border-top-color:#0b5cff;border-radius:999px;animation:authSpin .8s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}@keyframes authPop{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.auth-title{margin:0;color:#07172f;font-size:31px;font-weight:900;line-height:1.1;letter-spacing:0}.auth-description{margin:12px 0 24px;color:#4d5870;font-size:14px;font-weight:700;line-height:1.55;letter-spacing:0}.auth-browser-alert{margin-bottom:18px;padding:12px 14px;border:1px solid rgba(239,68,68,.25);border-radius:12px;background:#ef444414;color:#b42318;font-size:12px;font-weight:700;line-height:1.45;text-align:left}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-bottom:20px;overflow:hidden;border:1px solid #d7dde8;border-radius:12px;background:#f6f8fcd6}.auth-tab{position:relative;min-height:44px;border:0;border-radius:0;background:transparent;color:#5d687d;font-size:14px;font-weight:900;letter-spacing:0;cursor:pointer;transition:color .18s ease,background-color .18s ease}.auth-tab+.auth-tab{border-left:1px solid #e2e6ef}.auth-tab.active{color:#0b5cff;background:#fff}.auth-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#0b5cff}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-field{display:flex;align-items:center;min-height:52px;padding:0 16px;border:1px solid #d8dee9;border-radius:12px;background:#fffffff0;transition:border-color .18s ease,background-color .18s ease}.auth-field:focus-within{border-color:#0b5cffb8;background:#fff;outline:2px solid rgba(11,92,255,.12);outline-offset:0}.auth-field-icon{flex:0 0 auto;margin-right:11px;color:#6b7487}.auth-input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#142033;font-size:14px;font-weight:800;letter-spacing:0}.auth-input::placeholder{color:#8d96a8;opacity:1}.auth-input:disabled{cursor:not-allowed}.auth-password-toggle{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:36px;height:36px;margin-right:-9px;border:0;border-radius:999px;background:transparent;color:#697488;cursor:pointer;transition:background-color .18s ease,color .18s ease}.auth-password-toggle:hover:not(:disabled){background:#0b5cff14;color:#0b5cff}.auth-password-toggle:disabled{cursor:not-allowed;opacity:.55}.auth-error{margin:0;padding:9px 12px;border:1px solid rgba(220,38,38,.18);border-radius:10px;background:#ef444414;color:#b42318;font-size:12px;font-weight:800;line-height:1.4;text-align:left}.auth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:0 18px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:900;letter-spacing:0;cursor:pointer;transition:transform .18s ease,background-color .18s ease,color .18s ease}.auth-btn:disabled{cursor:not-allowed;opacity:.65}.auth-btn:hover:not(:disabled){transform:translateY(-1px)}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn.email{margin-top:6px;background:#0b5cff;color:#fff}.auth-btn.email:hover:not(:disabled){background:#0053ee}.auth-btn.google,.auth-btn.guest{background:#fffffff2;border-color:#d8dee9;color:#202633}.auth-btn.google:hover:not(:disabled),.auth-btn.guest:hover:not(:disabled){background:#fff;border-color:#0b5cff73}.auth-btn.google{margin-bottom:12px}.divider{display:flex;align-items:center;gap:14px;margin:20px 0;color:#9aa3b5;font-size:13px;font-weight:800;letter-spacing:0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#dfe4ec}.auth-warning{display:flex;align-items:center;gap:11px;margin-top:20px;padding:14px 16px;border:1px solid #dfe5ee;border-radius:12px;background:#f8fafce6;color:#576176;font-size:12px;font-weight:700;line-height:1.45;text-align:left}.auth-warning svg{flex:0 0 auto;color:#0b5cff}@media(max-width:460px){.auth-modal-overlay{padding:14px}.auth-modal-content{padding:24px 20px;border-radius:20px}.auth-title{font-size:29px}.auth-description{margin:10px 0 20px;font-size:13px}.auth-tab{min-height:42px;font-size:13px}.auth-field,.auth-btn{min-height:50px}.auth-field{padding:0 14px}.auth-input{font-size:13px}.auth-btn{font-size:14px}.divider{margin:16px 0;font-size:12px}.auth-warning{align-items:flex-start;margin-top:16px;padding:12px 13px;font-size:11px}}.session-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;justify-content:center;align-items:center;z-index:2000}.session-modal-content{background-color:#1a1a2e;color:#fff;padding:2rem;border-radius:12px;width:90%;max-width:400px;text-align:center;border:1px solid #4a4e69;box-shadow:0 10px 30px #00000080}.warning-icon{font-size:3rem;margin-bottom:1rem}.session-modal-content h2{margin-bottom:1rem;color:gold}.session-modal-content p{color:#b8b8d0;line-height:1.6;margin-bottom:1.5rem}.warning-text{font-size:.9rem;color:#ff6b6b;background-color:#ff6b6b1a;padding:.8rem;border-radius:6px;margin-bottom:1.5rem;white-space:nowrap}.button-group{display:flex;gap:10px;justify-content:center}.button-group button{flex:1;padding:12px;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:filter .2s;white-space:nowrap}.button-group button:hover{filter:brightness(1.1)}.btn-logout{background-color:#4a4e69;color:#fff}.btn-resolve{background-color:#e63946;color:#fff}.breeding-mode .koi-in-pond:hover{outline:3px solid #c084fc;cursor:pointer}.breeding-mode .koi-in-pond.selected{outline:4px solid #a855f7}@keyframes float-up{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(1.2);opacity:0}}.animate-float-up{animation:float-up 1.5s ease-out forwards;pointer-events:none;text-shadow:0 0 8px rgba(0,0,0,.2)}.animate-feed-up{animation:float-up 1.2s ease-out forwards;pointer-events:none;text-shadow:0 0 6px rgba(0,0,0,.2)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .5s ease-out forwards}@keyframes caustics{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.caustics-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(ellipse 40% 40% at 20% 20%,rgba(200,220,255,.08),transparent),radial-gradient(ellipse 30% 30% at 70% 80%,rgba(200,220,255,.06),transparent);background-size:200% 200%;animation:none;mix-blend-mode:overlay;pointer-events:none}@keyframes swim-tail{0%{transform:rotate(10deg)}50%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}.koi-fin,.koi-tail{position:absolute;opacity:.9;filter:brightness(.95);z-index:-1}.koi-tail{width:40%;height:120%;left:-30%;top:-10%;clip-path:polygon(100% 40%,100% 60%,0 0,0 100%);transform-origin:100% 50%;animation:swim-tail 1.5s ease-in-out infinite;border-radius:50% 0 0 50%}.static-koi .koi-tail{animation:none;transform:rotate(-5deg)}.koi-fin-pectoral-left,.koi-fin-pectoral-right{width:50%;height:80%;left:40%;clip-path:polygon(0 50%,100% 0,80% 100%);z-index:-1;border-radius:50%}.koi-fin-pectoral-left{top:-15%;transform:rotate(45deg)}.koi-fin-pectoral-right{bottom:-15%;transform:rotate(-45deg)}.koi-eye{position:absolute;width:8px;height:8px;background-color:#fff;border-radius:50%;right:15%;z-index:20;box-shadow:0 0 2px #0000004d}.koi-eye:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;background-color:#000;border-radius:50%}.koi-eye.left{top:25%}.koi-eye.right{bottom:25%}@keyframes drop-fade{0%{transform:translateY(-10px) scale(1.2);opacity:0}20%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(20px) scale(.5);opacity:0}}.food-pellet{position:absolute;width:6px;height:6px;background-color:#78350f;border-radius:50%;box-shadow:0 0 4px #0006;animation:drop-fade 1s ease-out forwards}.pellet1{top:-5px;left:0}.pellet2{top:0;left:8px;animation-delay:.1s}.pellet3{top:5px;left:-3px;animation-delay:.2s}@keyframes float{0%,to{transform:translate(-50%,-50%) translate(0) rotate(0)}25%{transform:translate(-50%,-50%) translate(10px,-15px) rotate(2deg)}50%{transform:translate(-50%,-50%) translate(-5px,10px) rotate(-1deg)}75%{transform:translate(-50%,-50%) translate(-15px,-5px) rotate(1deg)}to{transform:translate(-50%,-50%) translate(0) rotate(0)}}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.5) rgba(15,23,42,.35);scrollbar-gutter:stable}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#0f172a59;border-radius:999px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#94a3b87a;border:2px solid rgba(15,23,42,.35);border-radius:999px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#cbd5e1a6}.custom-scrollbar::-webkit-scrollbar-button{display:none;width:0;height:0}
