:root {
  --ground:#FFFFFF; --surface:#F6F8F4; --line:#DCE3D6; --line-soft:#E8EDE3;
  --ink:#0F1A13; --ink-2:#4A5A4F; --ink-3:#74847A;
  --green:#1C6B43; --green-mid:#2C8B58; --green-soft:#E4F0E8;
  --clay:#A6442D; --clay-soft:#FBEAE5;
  --f-disp:"Familjen Grotesk","Helvetica Neue",Arial,sans-serif;
  --f-body:"IBM Plex Sans","Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",Consolas,monospace;
}
* { box-sizing:border-box; }
body {
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column; min-height:100vh;
}
a { color:var(--green); text-underline-offset:3px; }
a:focus-visible, button:focus-visible, input:focus-visible {
  outline:2px solid var(--green-mid); outline-offset:2px; border-radius:2px;
}

/* header */
.ah {
  border-bottom:1px solid var(--line);
  padding:.85rem clamp(1.15rem,5vw,3rem);
  display:flex; align-items:center; gap:1rem;
}
.logo {
  font-family:var(--f-disp); font-weight:700; font-size:1.02rem; letter-spacing:-.012em;
  color:var(--ink); text-decoration:none; margin-right:auto;
  display:flex; align-items:center; gap:.55rem;
}
.logo b { color:var(--green); }
.back { font-size:.88rem; color:var(--ink-2); text-decoration:none; }
.back:hover { color:var(--ink); }

/* card */
.ac {
  flex:1; display:flex; align-items:flex-start; justify-content:center;
  padding:clamp(2rem,7vw,4.5rem) clamp(1.15rem,5vw,3rem);
}
.card { width:100%; max-width:430px; }
.card h1 {
  font-family:var(--f-disp); font-weight:700; font-size:clamp(1.6rem,4vw,2rem);
  letter-spacing:-.025em; line-height:1.15; margin:0 0 .55rem;
}
.card .lede { color:var(--ink-2); font-size:.96rem; margin:0 0 1.9rem; }

/* google */
.gbtn {
  display:flex; align-items:center; justify-content:center; gap:.6rem;
  width:100%; padding:.7rem 1rem; border:1px solid var(--line); border-radius:4px;
  font-family:var(--f-disp); font-weight:600; font-size:.94rem;
  color:var(--ink); text-decoration:none; background:var(--ground);
  transition:border-color .15s, background .15s;
}
.gbtn:hover { border-color:var(--ink-3); background:var(--surface); }
.sep {
  display:flex; align-items:center; gap:.9rem; margin:1.3rem 0;
  color:var(--ink-3); font-family:var(--f-mono); font-size:.7rem;
  text-transform:uppercase; letter-spacing:.1em;
}
.sep::before, .sep::after { content:""; height:1px; background:var(--line); flex:1; }

/* form */
form { display:flex; flex-direction:column; gap:1.05rem; }
.fg { display:flex; flex-direction:column; gap:.32rem; }
.fg label {
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-3);
}
.fg label i { font-style:normal; color:var(--clay); }
.fg input {
  font-family:var(--f-body); font-size:.95rem; color:var(--ink);
  padding:.62rem .7rem; border:1px solid var(--line); border-radius:4px;
  background:var(--ground); width:100%;
  transition:border-color .15s;
}
.fg input:hover { border-color:var(--ink-3); }
.fg input:focus { border-color:var(--green-mid); }
.fg small { font-size:.76rem; color:var(--ink-3); }

.submit {
  font-family:var(--f-disp); font-weight:600; font-size:.96rem;
  background:var(--green); color:#fff; border:0; border-radius:4px;
  padding:.72rem 1rem; cursor:pointer; margin-top:.25rem;
  transition:background .15s;
}
.submit:hover { background:#175736; }

.alt { font-size:.9rem; color:var(--ink-2); margin:1.6rem 0 0; text-align:center; }

.err {
  background:var(--clay-soft); border:1px solid #F0CFC5; border-left:3px solid var(--clay);
  color:#7E3423; border-radius:3px; padding:.7rem .85rem; margin:0 0 1.4rem; font-size:.9rem;
}

/* dashboard */
.kv { border-top:1px solid var(--line); margin:1.8rem 0 0; }
.kv div {
  display:flex; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--line-soft); font-size:.92rem;
}
.kv dt {
  font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); margin:0; min-width:120px;
}
.kv dd { margin:0; color:var(--ink-2); }
.note {
  background:var(--surface); border:1px solid var(--line); border-radius:4px;
  padding:1rem 1.05rem; font-size:.92rem; color:var(--ink-2); margin:1.6rem 0 0;
}
.signout {
  display:inline-block; margin-top:1.6rem; font-size:.9rem; color:var(--ink-2);
}

/* footer */
.af {
  border-top:1px solid var(--line); padding:1.3rem clamp(1.15rem,5vw,3rem);
  display:flex; align-items:center; gap:1rem;
  font-family:var(--f-mono); font-size:.72rem; color:var(--ink-3);
}
.langs { margin-left:auto; display:flex; gap:.75rem; }
.langs a { color:var(--ink-3); text-decoration:none; }
.langs a:hover { color:var(--green); }
.langs a.on { color:var(--green); font-weight:500; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration:.001ms !important; }
}
