:root {
  --ink: #141711;
  --panel: #1b2018;
  --lime: #eaff27;
  --paper: #f5f6ee;
  --muted: #74796d;
  --line: #dfe2d7;
  --danger: #b42318;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, .76fr) minmax(500px, 1.24fr); }
.brand-panel { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 32px clamp(32px, 4vw, 60px); color: white; background: var(--panel); }
.brand-panel::before { content: ""; position: absolute; width: 460px; height: 460px; right: -250px; bottom: -160px; border: 1px solid rgba(234,255,39,.24); border-radius: 50%; box-shadow: 0 0 100px rgba(234,255,39,.09); }
.brand { position: relative; display: inline-flex; align-items: center; gap: 11px; color: white; font-size: 20px; font-weight: 800; text-decoration: none; letter-spacing: -.6px; }
.brand-mark { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; background: var(--lime); transform: rotate(-3deg); }
.brand-mark i { width: 14px; height: 18px; border: 3px solid var(--ink); border-left-width: 6px; border-radius: 3px; transform: rotate(3deg); }
.brand-copy { position: relative; margin: auto 0; max-width: 570px; }
.eyebrow { color: #aab48f; text-transform: uppercase; letter-spacing: .19em; font-size: 11px; font-weight: 800; }
.brand-copy h1 { margin: 14px 0 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(36px, 4.2vw, 58px); line-height: .98; font-weight: 500; letter-spacing: -2.4px; }
.brand-copy h1 em { color: var(--lime); font-weight: 500; }
.brand-copy p { max-width: 450px; color: #c4c9bd; font-size: 14px; line-height: 1.6; }
.brand-copy ul { list-style: none; padding: 8px 0 0; margin: 0; display: grid; gap: 10px; color: #eef0e9; font-size: 14px; }
.brand-copy li { display: flex; align-items: center; gap: 11px; }
.brand-copy li span { color: var(--lime); }
.ownership-note { position: relative; color: #858c7b; font-size: 12px; }

.form-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; background: radial-gradient(circle at 85% 15%, #eef5c7 0, transparent 25%), var(--paper); }
.auth-card { width: min(100%, 420px); padding: clamp(24px, 3vw, 32px); border: 1px solid rgba(24,29,20,.1); border-radius: 20px; background: rgba(255,255,252,.92); box-shadow: 0 18px 55px rgba(29,35,23,.1); backdrop-filter: blur(12px); }
.mobile-brand { display: none; font-size: 20px; font-weight: 850; }
.auth-card h2 { margin: 3px 0 6px; font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 500; letter-spacing: -1.1px; }
.intro { margin: 0 0 18px; color: var(--muted); font-size: 14px; }
.tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 18px; padding: 3px; border-radius: 10px; background: #eceee5; }
.tab { padding: 8px; border: 0; border-radius: 8px; color: #6d7266; background: transparent; cursor: pointer; font-size: 13px; font-weight: 750; }
.tab.active { color: var(--ink); background: white; box-shadow: 0 2px 8px rgba(26,31,22,.08); }
.field { display: grid; gap: 6px; margin: 0 0 12px; color: #3f443a; font-size: 12px; font-weight: 750; }
.field input { width: 100%; height: 43px; padding: 0 13px; border: 1px solid var(--line); border-radius: 9px; outline: none; color: var(--ink); background: white; transition: border-color .18s, box-shadow .18s; }
.field input:focus { border-color: #9aae20; box-shadow: 0 0 0 4px rgba(194,219,30,.15); }
.password-wrap { position: relative; }
.password-wrap input { padding-right: 65px; }
.reveal { position: absolute; right: 7px; top: 5px; height: 33px; padding: 0 8px; border: 0; color: #65704a; background: transparent; cursor: pointer; font-size: 11px; font-weight: 800; }
.terms { display: flex; gap: 9px; margin: 4px 0 16px; color: #62685d; font-size: 12px; line-height: 1.45; }
.terms input { margin-top: 2px; accent-color: #aabd1e; }
.form-error { min-height: 18px; margin: -3px 0 8px; color: var(--danger); font-size: 12px; line-height: 1.4; }
.primary, .secondary, .social { min-height: 43px; width: 100%; border-radius: 9px; cursor: pointer; font-size: 13px; font-weight: 800; }
.primary { border: 1px solid var(--lime); color: var(--ink); background: var(--lime); box-shadow: 0 8px 24px rgba(197,218,26,.2); }
.primary:disabled { cursor: wait; opacity: .65; }
.secondary { margin-top: 10px; border: 1px solid var(--line); background: white; }
.divider { display: flex; align-items: center; gap: 11px; margin: 18px 0 13px; color: #8b9085; font-size: 10px; }
.divider::before, .divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.social-actions { display: grid; gap: 8px; }
.google-slot { min-height: 38px; display: grid; place-items: center; overflow: hidden; color: #7c8276; font-size: 11px; }
.social { display: flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid #cfd3c8; color: #20241d; background: white; }
.social strong { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; color: white; background: #1877f2; font-family: Arial, sans-serif; font-size: 20px; }
.firebase-google strong { color: #4285f4; background: #fff; font-size: 17px; }
.social:disabled { cursor: not-allowed; opacity: .5; }
.provider-note { min-height: 14px; margin: 9px 0 0; color: #858b7f; font-size: 10px; line-height: 1.4; text-align: center; }
.hidden { display: none !important; }
.account-view { text-align: center; }
.account-avatar { width: 78px; height: 78px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 24px; color: var(--ink); background: var(--lime); font-size: 25px; font-weight: 900; }
.account-view p { color: var(--muted); overflow-wrap: anywhere; }
.link-button { display: grid; place-items: center; margin-top: 26px; text-decoration: none; }
.security-copy { width: min(100%, 420px); margin: 12px 0 0; color: #81877b; font-size: 10px; line-height: 1.45; text-align: center; }
.auth-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 10px; color: #8d9387; font-size: 10px; }
.auth-footer span { color: #65704a; font-weight: 850; }
.auth-footer a { color: #737a6d; text-decoration: none; }
.auth-footer a:hover { color: #40473b; text-decoration: underline; }

@media (max-width: 900px) {
  .auth-shell { grid-template-columns: 1fr; }
  .brand-panel { display: none; }
  .form-panel { min-height: 100vh; }
  .mobile-brand { display: block; margin-bottom: 28px; }
}

@media (max-width: 520px) {
  .form-panel { padding: 0; background: white; }
  .auth-card { min-height: 100vh; padding: 28px 21px; border: 0; border-radius: 0; box-shadow: none; }
  .security-copy { display: none; }
}
