@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--green:#195b49;--deep:#123f35;--lime:#d8f49b;--ink:#213831;--muted:#7c8983;--line:#e6ebe7;--bg:#f7f9f7;--danger:#a4462f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}
button,input{font:inherit}
button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:10px 15px;background:white;color:var(--ink);font-weight:550;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8cc49a;outline-offset:3px}
button.primary{background:var(--green);border-color:var(--green);color:white}
button.primary:hover{background:var(--deep)}
button:disabled{opacity:.6;cursor:default}
.full{width:100%}
input{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:white;color:var(--ink)}
input::placeholder{color:#a8b2ad}
input[aria-invalid=true]{border-color:#e0b3a5;background:#fffaf8}
h1,h2,p{margin:0}
h1{font:750 30px 'Manrope',sans-serif;letter-spacing:-1.2px}
h2{font:750 34px/1.12 'Manrope',sans-serif;letter-spacing:-1.3px}
p{line-height:1.65}
small{font-size:12px;color:var(--muted)}
.subtitle{color:var(--muted);margin-top:8px;font-size:15px}
.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;margin-bottom:14px}

.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:100vh;min-height:100dvh}
.auth-main{display:flex;flex-direction:column;padding:34px 48px 26px;background:white;border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--deep);font:800 31px 'Manrope';letter-spacing:-1.5px;align-self:flex-start}
.brandmark{background:var(--green);color:var(--lime);border-radius:11px;font-size:32px;width:36px;height:36px;line-height:30px;text-align:center;letter-spacing:-3px;padding-right:3px}
.brandtag{font:600 10px 'DM Sans';letter-spacing:2px;margin-top:12px}

.auth-card{width:100%;max-width:400px;margin:auto;padding:48px 0}
.demo-label{display:inline-block;font-size:11px;color:#8d978d;border:1px solid var(--line);border-radius:20px;padding:6px 10px;margin-bottom:22px}
form{margin-top:28px}
.field{display:grid;gap:8px;margin:0 0 18px}
.field label{font-weight:550;font-size:13px}
.label-row{display:flex;justify-content:space-between;align-items:baseline}
.pin-wrap{position:relative}
.pin-wrap input{padding-right:70px;letter-spacing:6px;font-weight:600}
.pin-wrap input::placeholder{letter-spacing:4px}
.reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;padding:6px 9px;font-size:12px;color:var(--green)}
.reveal:hover{background:#eff5ef}
.auth-error{border:1px solid #efd3c8;background:#fdf4f0;color:var(--danger);border-radius:8px;padding:11px 14px;font-size:13px;line-height:1.5;margin:-4px 0 16px}
#submit{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px 15px;margin-top:6px}
.spinner{display:none;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:white;border-radius:50%;animation:spin .7s linear infinite}
.loading .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.notice{border:1px solid #e2e8de;background:#f2f7ec;border-radius:8px;padding:13px 17px;color:#6c8061;font-size:12px;margin-top:22px;line-height:1.6}
footer{font:700 10px 'DM Sans';letter-spacing:1.6px;color:#a0aaa4;display:flex;gap:14px;flex-wrap:wrap}
footer span{font-weight:450;letter-spacing:.2px;text-transform:none;font-size:11px}

.auth-visual{background:var(--deep);color:white;display:flex;align-items:center;justify-content:center;padding:48px;position:relative;overflow:hidden}
.auth-visual:before{content:'';position:absolute;width:520px;height:520px;right:-180px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(216,244,155,.16),transparent 65%)}
.visual-inner{position:relative;max-width:460px}
.auth-visual .eyebrow{color:var(--lime)}
.auth-visual p{color:#b9cbc3;margin-top:14px;font-size:15px}
.preview{background:white;color:var(--ink);border-radius:11px;padding:16px;margin:30px 0 26px;box-shadow:0 18px 40px rgba(4,25,19,.28)}
.preview-head{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line);margin-bottom:14px}
.preview-head strong{display:block;font-size:13px}
.preview-head small{font-size:11px}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#e5eee8;color:var(--green);font-size:11px;font-weight:700;flex-shrink:0}
.pill{margin-left:auto;font-size:11px;font-weight:600;color:var(--green);background:#eaf2ec;border-radius:20px;padding:4px 9px}
.bubble{font-size:13px;line-height:1.55;padding:10px 13px;border-radius:10px;max-width:86%}
.bubble.in{background:#f2f5f3}
.bubble.out{background:#eaf2ec;margin:10px 0 0 auto}
.bubble small{display:block;margin-top:6px;font-size:11px;color:var(--green)}
.points{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.points li{display:flex;gap:11px;align-items:center;color:#dce8e2;font-size:14px}
.points span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:var(--lime);color:var(--deep);font-size:12px;font-weight:700;flex-shrink:0}

@media (max-width:900px){
  .auth{grid-template-columns:1fr}
  .auth-visual{display:none}
  .auth-main{border-right:0;padding:24px 16px 20px}
  .auth-card{padding:40px 0 32px}
  h1{font-size:27px}
}
