:root { --ink:#262c25; --muted:#71796e; --line:#dfe5db; --lime:#a2e32a; --canvas:#f3f6ef; --danger:#a33e45; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--canvas); }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; background:radial-gradient(circle at 72% 14%,rgba(162,227,42,.16),transparent 29%),linear-gradient(145deg,#f8faf6 0,#eef3e9 100%); }
button,input { font:inherit; }
.auth-shell { display:grid; min-height:100vh; grid-template-columns:minmax(340px,.92fr) minmax(520px,1.08fr); }
.auth-brand { display:flex; min-height:100vh; flex-direction:column; justify-content:space-between; padding:56px clamp(34px,6vw,92px); background:#252b24; color:#fff; }
.auth-brand img { width:138px; filter:brightness(0) invert(1); }
.brand-copy { max-width:470px; }
.brand-copy span { display:inline-flex; margin-bottom:20px; padding:8px 11px; color:#c8ef89; background:rgba(162,227,42,.1); border:1px solid rgba(162,227,42,.18); border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.brand-copy h1 { margin:0 0 18px; font-size:clamp(43px,5vw,74px); line-height:.94; letter-spacing:-.065em; }
.brand-copy p { max-width:410px; margin:0; color:#bdc7b8; font-size:16px; line-height:1.65; }
.brand-foot { color:#879083; font-size:12px; }
.auth-main { display:grid; place-items:center; padding:40px; }
.auth-card { width:min(100%,460px); padding:42px; background:rgba(255,255,255,.94); border:1px solid rgba(215,224,210,.96); border-radius:28px; box-shadow:0 28px 90px rgba(46,56,41,.12); backdrop-filter:blur(18px); }
.auth-mark { display:grid; width:48px; height:48px; margin-bottom:26px; place-items:center; background:#eef9dc; border:1px solid #d9edb9; border-radius:15px; }
.auth-mark img { width:25px; height:25px; }
.auth-card h2 { margin:0; font-size:34px; letter-spacing:-.045em; }
.auth-intro { margin:10px 0 27px; color:var(--muted); font-size:14px; line-height:1.55; }
.auth-form { display:grid; gap:17px; }
.auth-form label { display:grid; gap:8px; color:#596154; font-size:12px; font-weight:780; }
.auth-form input { width:100%; height:51px; padding:0 15px; color:var(--ink); background:#fbfcfa; border:1px solid #d8dfd4; border-radius:13px; outline:0; transition:.16s ease; }
.auth-form input:focus { background:#fff; border-color:#8bbf39; box-shadow:0 0 0 4px rgba(139,191,57,.13); }
.password-hint { display:flex; justify-content:space-between; margin-top:-8px; color:#899184; font-size:11px; line-height:1.4; }
.auth-submit { height:52px; margin-top:4px; color:#26350f; background:var(--lime); border:1px solid #91cc24; border-radius:13px; font-weight:850; cursor:pointer; box-shadow:0 9px 26px rgba(117,161,37,.18); }
.auth-submit:hover { background:#98d725; }
.auth-submit:disabled { cursor:wait; opacity:.55; }
.auth-error { min-height:20px; margin:0; color:var(--danger); font-size:12px; line-height:1.5; }
.auth-note { margin:23px 0 0; padding-top:18px; color:#81897d; border-top:1px solid #e5e9e2; font-size:11px; line-height:1.55; }
.auth-note a { color:#537914; font-weight:750; }
.invalid-link { padding:15px; color:#7d383e; background:#fbeded; border:1px solid #efd1d3; border-radius:13px; font-size:13px; line-height:1.5; }
.access-actions { display:grid; gap:10px; }
.access-primary { display:grid; place-items:center; margin-top:0; text-align:center; text-decoration:none; }
.access-secondary { min-height:50px; padding:10px 14px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:13px; font-weight:750; cursor:pointer; }
.access-secondary:hover { background:#f5f8f0; }
.access-secondary:disabled { cursor:wait; opacity:.55; }
@media (max-width:860px) { .auth-shell { grid-template-columns:1fr; }.auth-brand { min-height:auto; padding:28px 25px; }.brand-copy,.brand-foot { display:none; }.auth-brand img { width:110px; }.auth-main { padding:34px 18px; }.auth-card { padding:30px 25px; border-radius:22px; }.auth-card h2 { font-size:30px; } }
 .auth-forgot { background:none; border:0; color:#286c3b; font:inherit; cursor:pointer; padding:18px 0; text-decoration:underline; }
 #forgot-form[hidden] { display:none; }
