
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg-dark:#0a1f2d;--bg-darker:#060f16;--bg-black:#000;
  --green:#00c853;--green-light:#00e676;--green-dark:#009624;
  --gold:#d4a843;--gold-light:#f0c75e;--orange:#ff9800;
  --white:#fff;--gray-50:#fafbfc;--gray-100:#f8f9fa;--gray-200:#e9ecef;
  --gray-300:#dee2e6;--gray-400:#b0bec5;--gray-500:#78909c;
  --gray-600:#546e7a;--gray-700:#37474f;--gray-800:#263238;
  --purple:#7c4dff;--blue:#2979ff;--pink:#ff4081;--red:#ff5252;
  --font:'Plus Jakarta Sans',sans-serif;
  --radius:12px;--radius-sm:8px;--radius-lg:16px;
  --shadow:0 4px 24px rgba(0,0,0,.08);
  --shadow-lg:0 8px 40px rgba(0,0,0,.14);
}
html{height:100%}
body{font-family:var(--font);color:var(--gray-800);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;background:var(--bg-dark)}
a{text-decoration:none;color:inherit}

/* === LAYOUT === */
.auth-page{display:flex;min-height:100vh;width:100%}
.left-panel{flex:0 0 45%;background:linear-gradient(135deg,var(--bg-dark) 0%,#051520 50%,var(--bg-black) 100%);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:48px}
.right-panel{flex:1;background:var(--gray-50);display:flex;align-items:center;justify-content:center;padding:40px;overflow-y:auto}

/* === LEFT BRANDING PANEL === */
.brand-top{position:relative;z-index:2}
.brand-logo{display:flex;align-items:center;gap:14px;margin-bottom:0}
.brand-mark{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-light));display:grid;place-items:center;font-weight:800;font-size:18px;color:var(--bg-dark)}
.brand-text{display:flex;flex-direction:column}
.brand-name{color:var(--gold);font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.brand-sub{color:rgba(255,255,255,.5);font-size:12px;letter-spacing:.5px}

.brand-middle{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0}
.brand-title{font-size:42px;font-weight:800;color:var(--white);line-height:1.2;margin-bottom:16px;letter-spacing:-.5px}
.brand-title span{color:var(--green);display:inline}
.brand-desc{color:rgba(255,255,255,.6);font-size:16px;line-height:1.7;margin-bottom:32px;max-width:420px}

.brand-features{display:flex;flex-direction:column;gap:16px}
.brand-feature{display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.8);font-size:14px;font-weight:500}
.brand-feature-icon{width:40px;height:40px;border-radius:10px;background:rgba(0,200,83,.12);display:grid;place-items:center;color:var(--green);flex-shrink:0}

.brand-bottom{position:relative;z-index:2}
.brand-quote{border-left:3px solid var(--green);padding-left:16px;margin-bottom:20px}
.brand-quote p{color:rgba(255,255,255,.5);font-size:13px;font-style:italic;line-height:1.6}
.brand-quote cite{color:rgba(255,255,255,.4);font-size:12px;font-style:normal;margin-top:6px;display:block}

.brand-stats{display:flex;gap:32px}
.brand-stat{text-align:left}
.brand-stat-num{color:var(--green);font-size:28px;font-weight:800;line-height:1}
.brand-stat-label{color:rgba(255,255,255,.4);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}

/* Decorative elements */
.deco-grid{position:absolute;inset:0;opacity:.03;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:60px 60px}
.deco-circle1{position:absolute;top:20%;right:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,200,83,.08),transparent 70%)}
.deco-circle2{position:absolute;bottom:10%;left:-60px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(41,121,255,.06),transparent 70%)}
.deco-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(0,200,83,.04),transparent 60%);pointer-events:none}
/* === RIGHT FORM PANEL === */
.auth-container{width:100%;max-width:440px}
.auth-header{text-align:center;margin-bottom:36px}
.auth-header h1{font-size:28px;font-weight:800;color:var(--gray-800);margin-bottom:8px}
.auth-header p{color:var(--gray-500);font-size:14px}

.auth-tabs{display:flex;gap:4px;background:var(--gray-200);padding:4px;border-radius:var(--radius);margin-bottom:32px}
.auth-tab{flex:1;padding:12px 20px;border:none;background:transparent;font-family:var(--font);font-size:14px;font-weight:600;color:var(--gray-600);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s}
.auth-tab:hover{color:var(--gray-800)}
.auth-tab.active{background:var(--white);color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.06)}

.auth-form{display:none}
.auth-form.active{display:block;animation:fadeIn .4s ease}

/* === FORM ELEMENTS === */
.form-group{margin-bottom:20px}
.form-label{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:8px}
.form-label a{color:var(--green);font-size:12px;font-weight:600}
.form-label a:hover{text-decoration:underline}

.input-wrap{position:relative}
.input-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}
.input-wrap input{width:100%;padding:13px 14px 13px 44px;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);font-family:var(--font);font-size:14px;color:var(--gray-800);background:var(--white);transition:all .2s;outline:none}
.input-wrap input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,200,83,.1)}
.input-wrap input::placeholder{color:var(--gray-400)}

.input-wrap .toggle-pass{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gray-400);cursor:pointer;padding:4px;transition:color .2s}
.input-wrap .toggle-pass:hover{color:var(--green)}

.form-check{display:flex;align-items:center;gap:10px;margin-bottom:24px}
.form-check input[type="checkbox"]{width:18px;height:18px;accent-color:var(--green);cursor:pointer}
.form-check label{font-size:13px;color:var(--gray-600);cursor:pointer}
.form-check label a{color:var(--green);font-weight:600}

.btn-submit{width:100%;padding:14px 24px;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .25s;letter-spacing:.2px}
.btn-submit.primary{background:linear-gradient(135deg,var(--green),var(--green-light));color:var(--white);box-shadow:0 4px 16px rgba(0,200,83,.3)}
.btn-submit.primary:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,200,83,.4)}

/* === SOCIAL BUTTONS === */
.divider{display:flex;align-items:center;gap:16px;margin:28px 0}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--gray-300)}
.divider span{color:var(--gray-500);font-size:13px;font-weight:500;white-space:nowrap}

.social-buttons{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);font-family:var(--font);font-size:13px;font-weight:600;color:var(--gray-700);cursor:pointer;transition:all .2s}
.social-btn:hover{border-color:var(--gray-400);background:var(--gray-100);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.06)}
.social-btn svg{width:20px;height:20px;flex-shrink:0}
.social-btn.full{grid-column:1/-1}

.auth-footer{text-align:center;margin-top:32px;padding-top:24px;border-top:1px solid var(--gray-200)}
.auth-footer p{color:var(--gray-500);font-size:13px}
.auth-footer a{color:var(--green);font-weight:600;cursor:pointer}
.auth-footer a:hover{text-decoration:underline}
/* === ANIMATIONS === */
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.auth-form.active .form-group,.auth-form.active .social-buttons,.auth-form.active .divider,.auth-form.active .btn-submit{animation:slideUp .4s ease backwards}
.auth-form.active .form-group:nth-child(1){animation-delay:.05s}
.auth-form.active .form-group:nth-child(2){animation-delay:.1s}
.auth-form.active .form-group:nth-child(3){animation-delay:.15s}
.auth-form.active .form-group:nth-child(4){animation-delay:.2s}

/* === RESPONSIVE === */
@media(max-width:1024px){
  .left-panel{flex:0 0 40%;padding:32px}
  .brand-title{font-size:36px}
  .brand-stats{gap:24px}
}
@media(max-width:768px){
  .auth-page{flex-direction:column}
  .left-panel{flex:none;padding:32px 24px}
  .brand-middle{padding:20px 0}
  .brand-title{font-size:30px}
  .brand-desc{font-size:14px}
  .brand-features{display:none}
  .right-panel{padding:24px}
  .auth-container{max-width:100%}
  .social-buttons{grid-template-columns:1fr}
}
@media(max-width:480px){
  .left-panel{padding:24px 20px}
  .brand-title{font-size:26px}
  .brand-stats{flex-wrap:wrap;gap:16px}
  .auth-header h1{font-size:24px}
}
.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.htmx-request .normal-text {
    display: none;
}
/* Alerts */
.alert{
    padding:14px 18px;
    border-radius:8px;
    margin-bottom:12px;
    border:1px solid transparent;
    opacity:1;
    transition:opacity .5s ease, transform .5s ease;
}
.alert.fade-out{
    opacity:0;
    transform:translateY(-8px);
}
.alert-content{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
}

.alert-text{
    display:flex;
    align-items:center;
    gap:10px;
    flex:1;
}

.alert-close{
    border:none;
    background:transparent;
    cursor:pointer;
    padding:0;
    color:inherit;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:.7;
    transition:.2s;
}

.alert-close:hover{
    opacity:1;
    transform:scale(1.1);
}

.alert-success{
    background:#d1fae5;
    border-color:#10b981;
    color:#065f46;
}

.alert-error{
    background:#fee2e2;
    border-color:#ef4444;
    color:#991b1b;
}

.alert-warning{
    background:#fef3c7;
    border-color:#f59e0b;
    color:#92400e;
}

.alert-info{
    background:#dbeafe;
    border-color:#3b82f6;
    color:#1e40af;
}
