/* QuixDent Pro — Login CSS */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --green:#1D9E75; --green-dark:#085041; --green-deep:#04342C;
  --green-light:#9FE1CB; --green-pale:#E1F5EE;
  --blue:#378ADD; --gray:#888780; --text:#1a1a1a; --text-muted:#6b6b6b;
}
html,body{height:100%;font-family:'DM Sans',sans-serif;background:var(--green-deep);overflow:hidden;}
.bg{position:fixed;inset:0;background:linear-gradient(135deg,#04342C 0%,#085041 50%,#0F6E56 100%);overflow:hidden;}
.bg::before{content:'';position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(29,158,117,.25) 0%,transparent 70%);top:-150px;left:-150px;animation:pulse 8s ease-in-out infinite;}
.bg::after{content:'';position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(55,138,221,.12) 0%,transparent 70%);bottom:-100px;right:-100px;animation:pulse 10s ease-in-out infinite reverse;}
@keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.15) translate(20px,20px);}}
.dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px;}
.layout{position:relative;z-index:10;display:grid;grid-template-columns:1fr 480px;height:100vh;}
/* LEFT */
.left{display:flex;flex-direction:column;justify-content:center;padding:60px 80px;animation:fadeLeft .8s ease both;}
@keyframes fadeLeft{from{opacity:0;transform:translateX(-30px);}to{opacity:1;transform:translateX(0);}}
.brand{display:flex;align-items:center;gap:16px;margin-bottom:60px;}
.brand-icon{width:52px;height:52px;background:var(--green);border-radius:14px;display:flex;align-items:center;justify-content:center;}
.brand-icon svg{width:30px;height:30px;}
.brand-name{font-size:22px;font-weight:600;color:white;}
.brand-name span{color:var(--green-light);font-weight:300;}
.hero-title{font-family:'DM Serif Display',serif;font-size:52px;line-height:1.1;color:white;margin-bottom:20px;}
.hero-title em{font-style:normal;color:var(--green-light);}
.hero-sub{font-size:17px;color:rgba(255,255,255,.55);line-height:1.6;max-width:400px;margin-bottom:48px;}
.features{display:flex;flex-direction:column;gap:16px;}
.feat{display:flex;align-items:center;gap:14px;}
.feat-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;}
.feat span{font-size:14px;color:rgba(255,255,255,.6);}
/* RIGHT */
.right{display:flex;align-items:center;justify-content:center;padding:40px;animation:fadeUp .7s ease .2s both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
.card{background:white;border-radius:24px;padding:48px 44px;width:100%;max-width:400px;box-shadow:0 24px 80px rgba(0,0,0,.25);}
.card-header{margin-bottom:28px;}
.card-title{font-size:24px;font-weight:600;color:var(--green-deep);margin-bottom:6px;letter-spacing:-.3px;}
.card-sub{font-size:14px;color:var(--text-muted);}
/* ALERTS */
.alert{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:10px;font-size:13px;margin-bottom:18px;}
.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;}
.alert-success{background:#f0fdf4;border:1px solid #86efac;color:#16a34a;}
/* FORM */
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:13px;font-weight:500;color:var(--green-dark);margin-bottom:7px;}
.form-group input{width:100%;height:48px;border:1.5px solid rgba(0,0,0,.08);border-radius:12px;padding:0 16px;font-size:15px;font-family:'DM Sans',sans-serif;color:var(--text);background:#fafafa;outline:none;transition:all .2s;}
.form-group input:focus{border-color:var(--green);background:white;box-shadow:0 0 0 4px rgba(29,158,117,.10);}
.input-wrap{position:relative;}
.input-eye{position:absolute;right:14px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--gray);font-size:18px;user-select:none;}
.row-options{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.remember{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-muted);}
.remember input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);}
.forgot{font-size:13px;color:var(--green);text-decoration:none;font-weight:500;}
.forgot:hover{text-decoration:underline;}
.btn-login{width:100%;height:52px;background:var(--green);color:white;border:none;border-radius:14px;font-size:16px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-login:hover:not(:disabled){background:#189966;box-shadow:0 8px 24px rgba(29,158,117,.35);transform:translateY(-1px);}
.btn-login:disabled{opacity:.7;cursor:not-allowed;}
.spin{animation:spinner .7s linear infinite;}
@keyframes spinner{to{transform:rotate(360deg);}}
.card-footer{margin-top:28px;padding-top:20px;border-top:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;}
.version,.copy{font-size:11px;color:#ccc;}
@media(max-width:900px){
  .layout{grid-template-columns:1fr;}
  .left{display:none;}
  .right{padding:20px;}
}
