/* ===== Base ===== */
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter','Segoe UI',Tahoma,Verdana,sans-serif; overflow-x: hidden; height: 100vh; }

/* ===== Hero ===== */
.hero-page{
  height:100vh; background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);
  position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.hero-page::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 50%, rgba(79,172,254,.1) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(118,75,162,.1) 0%, transparent 50%),
    radial-gradient(circle at 40% 80%, rgba(102,126,234,.1) 0%, transparent 50%);
  animation:gradientShift 10s ease-in-out infinite; z-index:-2;
}
.hero-page::after{
  content:""; position:absolute; inset:0;
  background-image:
    radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,.05), transparent),
    radial-gradient(2px 2px at 40px 70px, rgba(255,255,255,.03), transparent),
    radial-gradient(1px 1px at 90px 40px, rgba(255,255,255,.04), transparent),
    radial-gradient(1px 1px at 130px 80px, rgba(255,255,255,.02), transparent);
  background-size:200px 100px; animation:sparkle 20s linear infinite; z-index:-1;
}
@keyframes gradientShift{0%,100%{opacity:1;transform:rotate(0) scale(1)}50%{opacity:.8;transform:rotate(2deg) scale(1.05)}}
@keyframes sparkle{0%{transform:translate(-100px,-100px)}100%{transform:translate(100px,100px)}}

.floating-elements{position:absolute; inset:0; pointer-events:none; z-index:1;}
.floating-circle{position:absolute; border-radius:50%; background:rgba(255,255,255,.1); animation:float 6s ease-in-out infinite;}
.floating-circle:nth-child(1){width:80px;height:80px;top:15%;left:10%;animation-delay:0s;}
.floating-circle:nth-child(2){width:120px;height:120px;top:70%;right:15%;animation-delay:2s;}
.floating-circle:nth-child(3){width:60px;height:60px;bottom:20%;left:20%;animation-delay:4s;}
@keyframes float{0%,100%{transform:translateY(0) rotate(0);opacity:.3}50%{transform:translateY(-20px) rotate(180deg);opacity:.6}}

.hero-content{ text-align:center; color:#fff; z-index:10; max-width:600px; padding:2rem; }
.hero-logo{ width:120px;height:120px;background:rgba(255,255,255,.1);border-radius:30px;display:flex;align-items:center;justify-content:center;margin:0 auto 2rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);animation:logoFloat 6s ease-in-out infinite;}
@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hero-logo-image{width:80%;height:80%;object-fit:contain;filter:drop-shadow(0 4px 20px rgba(0,0,0,.2));background:transparent!important;border:none!important;outline:none!important;}

.hero-title{font-size:3.5rem;font-weight:800;margin-bottom:1rem;text-shadow:0 2px 4px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.2);letter-spacing:-.02em;}
.hero-subtitle{font-size:1.3rem;font-weight:300;margin-bottom:2rem;opacity:.9;text-shadow:0 1px 3px rgba(0,0,0,.3);}

.hero-features{display:flex;justify-content:center;gap:1.5rem;margin-bottom:2.5rem;flex-wrap:wrap;}
.feature-badge{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:50px;padding:.75rem 1.5rem;display:flex;align-items:center;gap:.5rem;transition:.3s;}
.feature-badge:hover{background:rgba(255,255,255,.15);transform:translateY(-2px);}
.feature-badge i{font-size:1.1rem;opacity:.9;}
.feature-badge span{font-size:.9rem;font-weight:500;}

.hero-login-btn{
  background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);
  color:#fff;border:none;padding:1.2rem 3rem;border-radius:25px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:.3s;box-shadow:0 15px 40px rgba(79,172,254,.3);margin:0 auto 2rem;display:flex;align-items:center;gap:.75rem;text-transform:uppercase;letter-spacing:.5px;position:relative;overflow:hidden;
}
.hero-login-btn::before{content:"";position:absolute;inset:0;left:-100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s;}
.hero-login-btn:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(79,172,254,.4);}
.hero-login-btn:hover::before{left:100%;}

/* ===== Modal ===== */
.login-modal{position:fixed;inset:0;background:rgba(51,51,51,.9);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.4s;z-index:1000;}
.login-modal.is-open{opacity:1;visibility:visible;}
.modal-container{
  display:flex;max-width:1000px;width:90%;height:600px;border-radius:24px;overflow:hidden;
  box-shadow:0 0 50px rgba(79,172,254,.3),0 0 100px rgba(102,126,234,.2),0 25px 50px rgba(0,0,0,.15);
  transform:scale(.8);transition:all .6s cubic-bezier(.175,.885,.32,1.275); position:relative;
}
.login-modal.is-open .modal-container{transform:scale(1);}

/* Left form */
.modal-left{
  padding:3rem;background:linear-gradient(135deg,#1e293b 0%,#334155 50%,#475569 100%);
  flex:1;display:flex;flex-direction:column;justify-content:center;color:#fff;transform:translateX(-100px);opacity:0;transition:.5s;
}
.login-modal.is-open .modal-left{transform:translateX(0);opacity:1;transition-delay:.2s;}
.login-header{text-align:center;margin-bottom:2rem;}
.login-header h2{color:#f8fafc;font-size:2rem;font-weight:600;margin-bottom:.75rem;}
.login-header p{color:#cbd5e1;font-size:1.125rem;}

/* Toast (single definition) */
.alert{
  position:fixed; top:2rem; right:2rem; min-width:300px; max-width:400px;
  padding:1rem 1.25rem; border-radius:12px; border-left:4px solid; box-shadow:0 10px 40px rgba(0,0,0,.3);
  animation:slideInRight .4s ease-out; z-index:9999; backdrop-filter:blur(10px);
}
.alert-error{background:rgba(220,38,38,.10); border-color:#dc2626; color:#fca5a5;}
.alert-success{background:rgba(34,197,94,.10); border-color:#22c55e; color:#86efac;}
@keyframes slideInRight{from{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideOutRight{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100px)}}

/* Form */
.input-group{margin-bottom:1.5rem;}
.input-label{display:block;font-size:.9rem;font-weight:600;color:#e2e8f0;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px;}
.input-container{position:relative;}
.input-field{
  width:100%;padding:1rem 1rem 1rem 3rem;border:2px solid #475569;border-radius:12px;
  background:rgba(30,41,59,.5);backdrop-filter:blur(10px);color:#f8fafc;font-size:1rem;transition:.3s;outline:none;
}
.input-field::placeholder{color:#94a3b8;}
.input-field:focus{border-color:#4facfe;background:rgba(30,41,59,.7);box-shadow:0 0 0 3px rgba(79,172,254,.1);}
.input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#64748b;transition:.3s;}
.input-field:focus + .input-icon{color:#4facfe;}

.form-checkbox{display:flex;align-items:center;margin-bottom:1.5rem;}
.checkbox-input{margin-right:.75rem;transform:scale(1.2);accent-color:#4facfe;}
.checkbox-label{color:#cbd5e1;font-size:.95rem;cursor:pointer;transition:.3s;}
.checkbox-label:hover{color:#4facfe;}

.modal-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;}
.forgot-link{color:#cbd5e1;text-decoration:none;font-size:.9rem;transition:.3s;}
.forgot-link:hover{color:#4facfe;}
.login-btn{
  background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%); color:#fff;border:none;padding:.75rem 2rem;border-radius:10px;
  font-size:1rem;font-weight:600;cursor:pointer;transition:.3s;text-transform:uppercase;letter-spacing:.5px;position:relative;overflow:hidden;
}
.login-btn::before{content:"";position:absolute;inset:0;left:-100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s;}
.login-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(79,172,254,.4);}
.login-btn:hover::before{left:100%;}
.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;}

.signup-text{text-align:center;margin-top:2rem;color:#94a3b8;font-size:.9rem;}
.signup-text a{color:#4facfe;text-decoration:none;}
.signup-text a:hover{text-decoration:underline;}
.version-info{text-align:center;margin-top:2rem;color:#94a3b8;font-size:.875rem;line-height:1.5;}

/* Right branding */
.modal-right{
  flex:1.2; background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);
  position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; padding:3rem; color:#fff;
  transform:translateX(100px); opacity:0; transition:.5s;
}
.login-modal.is-open .modal-right{ transform:translateX(0); opacity:1; transition-delay:.3s; }
.modal-right::before{
  content:""; position:absolute; top:-50%; right:-50%; width:200%; height:200%;
  background:radial-gradient(circle at 30% 70%, rgba(255,255,255,.1) 0%, transparent 50%),
             radial-gradient(circle at 70% 30%, rgba(255,255,255,.05) 0%, transparent 50%);
  animation:logoFloatModal 15s linear infinite;
}
@keyframes logoFloatModal{0%{transform:translate(-50px,-50px) rotate(0)}100%{transform:translate(50px,50px) rotate(360deg)}}

.logo-header{display:flex;align-items:center;margin-bottom:3rem;position:relative;z-index:2;justify-content:flex-start;}
.logo-icon{width:120px;height:120px;display:flex;align-items:center;justify-content:center;margin-right:2rem;flex-shrink:0;background:transparent!important;border:none!important;}
.logo-image{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 20px rgba(0,0,0,.2));transition:filter .3s;background:transparent!important;border:none!important;outline:none!important;}
.logo-text{flex:1;display:flex;flex-direction:column;justify-content:center;}
.system-title{font-size:3.5rem;font-weight:800;margin:.0 0 .5rem;letter-spacing:-.02em;text-shadow:0 2px 4px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.2),0 8px 16px rgba(0,0,0,.1);-webkit-text-stroke:1px rgba(0,0,0,.1);line-height:1;}
.system-subtitle{font-size:1.4rem;opacity:.95;font-weight:400;margin:0;display:inline-block;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.2);background:rgba(0,0,0,.1);padding:.25rem .75rem;border-radius:20px;backdrop-filter:blur(5px);}
.features-list{list-style:none;margin:0 0 2rem;padding:0;position:relative;z-index:2;}
.features-list li{margin-bottom:1rem;display:flex;align-items:center;opacity:.95;transition:.3s;padding:.5rem 0;text-shadow:0 1px 3px rgba(0,0,0,.3);}
.features-list li:hover{opacity:1;transform:translateX(5px);}
.features-list li::before{
  content:'✓';margin-right:.75rem;font-weight:bold;background:rgba(255,255,255,.25);width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.875rem;border:2px solid rgba(255,255,255,.4);transition:.3s;box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.features-list li:hover::before{transform:scale(1.1);background:rgba(255,255,255,.35);box-shadow:0 4px 12px rgba(0,0,0,.3);}
.status-indicators{display:flex;justify-content:space-around;padding-top:1.5rem;margin-top:auto;border-top:1px solid rgba(255,255,255,.3);position:relative;z-index:2;}
.status-item{text-align:center;transition:.3s;cursor:pointer;}
.status-item:hover{transform:translateY(-2px);}
.status-value{font-size:1.75rem;font-weight:700;display:block;text-shadow:0 1px 3px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.2);}
.status-label{font-size:.875rem;opacity:.9;margin-top:.25rem;text-shadow:0 1px 2px rgba(0,0,0,.3);}

.close-button{
  position:absolute;top:20px;right:20px;width:40px;height:40px;background:rgba(255,255,255,.1);
  border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.3s;backdrop-filter:blur(10px);z-index:10;
}
.close-button:hover{background:rgba(255,255,255,.2);transform:scale(1.1);}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .modal-container{max-width:800px;}
  .hero-title{font-size:3rem;}
  .hero-features{gap:1rem;}
  .hero-stats{gap:2rem;}
}
@media (max-width:768px){
  .hero-content{padding:1.5rem;}
  .hero-title{font-size:2.5rem;}
  .hero-subtitle{font-size:1.1rem;}
  .hero-features{flex-direction:column;align-items:center;gap:1rem;}
  .hero-login-btn{padding:1rem 2rem;font-size:1rem;}
  .hero-stats{gap:1.5rem;}

  .modal-container{flex-direction:column;height:auto;max-height:95vh;overflow-y:auto;width:95%;scroll-behavior:smooth;}
  .modal-right{order:-1;flex:none;min-height:300px;padding:2rem;}
  .modal-left{padding:2rem;flex:none;}

  .logo-header{flex-direction:column;text-align:center;margin-bottom:2rem;}
  .logo-icon{margin-right:0;margin-bottom:1.5rem;width:100px;height:100px;}
  .system-title{font-size:2.5rem;}
  .system-subtitle{font-size:1.125rem;}

  .features-list{display:none;}
  .modal-buttons{flex-direction:column-reverse;gap:1rem;align-items:stretch;}
  .login-btn{width:100%;justify-content:center;}
  .forgot-link{width:100%;text-align:center;padding:.5rem;}
  .alert{top:1rem;right:1rem;left:1rem;min-width:auto;max-width:none;font-size:.875rem;padding:.875rem 1rem;}
}
@media (max-width:480px){
  .hero-logo{width:100px;height:100px;}
  .hero-title{font-size:2rem;}
  .hero-subtitle{font-size:1rem;}
  .feature-badge{padding:.5rem 1rem;font-size:.85rem;}
  .hero-login-btn{padding:.75rem 1.5rem;font-size:.9rem;}
  .stat-value{font-size:1.5rem;}
  .stat-label{font-size:.8rem;}
  .modal-right{min-height:200px;padding:1.5rem;}
  .modal-left{padding:1.5rem;}
  .system-title{font-size:2rem;}
  .system-subtitle{font-size:1rem;}
  .logo-icon{width:80px;height:80px;}
  .login-header h2{font-size:1.5rem;}
  .login-header p{font-size:.95rem;}
  .input-field{padding:1.125rem 1rem 1.125rem 3rem;font-size:16px;} /* iOS zoom fix */
  .login-btn{padding:1rem 2rem;min-height:48px;}
  .checkbox-input{transform:scale(1.4);margin-right:1rem;}
}
@media (max-width:374px){
  .hero-title{font-size:1.75rem;}
  .hero-subtitle{font-size:.9rem;}
  .modal-container{width:98%;}
  .system-title{font-size:1.75rem;}
  .logo-icon{width:70px;height:70px;}
}
@media (max-width:768px) and (orientation:landscape){
  .modal-container{max-height:98vh;}
  .modal-right{min-height:180px;padding:1.5rem;}
  .logo-header{margin-bottom:1.5rem;}
  .logo-icon{width:70px;height:70px;margin-bottom:1rem;}
  .system-title{font-size:2rem;}
}

/* Accessibility */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}
.input-field:focus-visible,.login-btn:focus-visible,.checkbox-input:focus-visible,.hero-login-btn:focus-visible,.close-button:focus-visible{outline:2px solid #4facfe;outline-offset:2px;}
