/* Signup and console sign-in pages (ADR 0041 section 12).
   No colour literal lives here: every colour is a --ks-* token from theme.css,
   which follows the OS light/dark preference with no script. */
*, *::before, *::after { box-sizing: border-box; }
html { font-family: var(--ks-font-sans); font-size: 16px; line-height: var(--ks-leading-normal); }
body {
  margin: 0; min-height: 100vh; display: flex; flex-direction: column; align-items: center;
  background: var(--ks-bg); color: var(--ks-text); font-size: var(--ks-text-md);
}
header.brand { width: 100%; max-width: 30rem; padding: var(--ks-space-5) var(--ks-space-4) 0; font-weight: 600; font-size: var(--ks-text-lg); }
main {
  width: 100%; max-width: 30rem; margin: var(--ks-space-4); padding: var(--ks-space-5);
  background: var(--ks-surface); border: 1px solid var(--ks-border);
  border-radius: var(--ks-radius-lg); box-shadow: var(--ks-shadow-md);
}
h1 { margin: 0 0 var(--ks-space-4); font-size: var(--ks-text-xl); line-height: var(--ks-leading-tight); }
p { margin: 0 0 var(--ks-space-4); }
p.muted, .hint { color: var(--ks-text-muted); font-size: var(--ks-text-sm); }
label { display: block; margin: 0 0 var(--ks-space-1); font-weight: 600; font-size: var(--ks-text-sm); }
.field { margin-bottom: var(--ks-space-4); }
input[type=text], input[type=email], input[type=password], textarea {
  width: 100%; padding: var(--ks-space-2) var(--ks-space-3); font: inherit;
  color: var(--ks-text); background: var(--ks-surface);
  border: 1px solid var(--ks-border); border-radius: var(--ks-radius-md);
}
textarea { min-height: 5rem; resize: vertical; }
input:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible {
  outline: 2px solid var(--ks-focus-ring); outline-offset: 2px;
}
.check { display: flex; gap: var(--ks-space-2); align-items: flex-start; margin-bottom: var(--ks-space-4); }
.check label { margin: 0; font-weight: 400; }
button {
  font: inherit; font-weight: 600; cursor: pointer; padding: var(--ks-space-2) var(--ks-space-5);
  color: var(--ks-accent-contrast); background: var(--ks-accent);
  border: 1px solid var(--ks-accent); border-radius: var(--ks-radius-md);
}
button.quiet { color: var(--ks-text); background: transparent; border-color: var(--ks-border); }
.notice { padding: var(--ks-space-3); margin-bottom: var(--ks-space-4); border-radius: var(--ks-radius-md);
  border: 1px solid var(--ks-border); background: var(--ks-surface-raised); }
.notice.error { border-color: var(--ks-danger); color: var(--ks-danger); }
.notice.ok { border-color: var(--ks-success); color: var(--ks-success); }
a { color: var(--ks-accent); }
dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--ks-space-2) var(--ks-space-4); margin: 0 0 var(--ks-space-4); }
dt { color: var(--ks-text-muted); } dd { margin: 0; font-family: var(--ks-font-mono); }
.codes { columns: 2; padding-left: var(--ks-space-5); margin: 0 0 var(--ks-space-4); }
.codes code { font-family: var(--ks-font-mono); font-size: 1.05em; }
table { width: 100%; border-collapse: collapse; margin-bottom: var(--ks-space-4); }
th, td { text-align: left; padding: var(--ks-space-2); border-bottom: 1px solid var(--ks-border); }
h2 { font-size: 1.1rem; margin: var(--ks-space-5) 0 var(--ks-space-2); }
[hidden] { display: none; }
.console-nav { display: flex; flex-wrap: wrap; gap: var(--ks-space-3); align-items: center;
  margin: 0 0 var(--ks-space-5); padding-bottom: var(--ks-space-3); border-bottom: 1px solid var(--ks-border); }
.console-nav a[aria-current=page] { font-weight: 700; text-decoration: none; color: var(--ks-text); }
.console-nav form { margin: 0 0 0 auto; }
.console-nav button { padding: var(--ks-space-1) var(--ks-space-3); }
.soon { color: var(--ks-text-muted); }
ul.menu { padding-left: var(--ks-space-5); margin: 0 0 var(--ks-space-4); }
ul.menu li { margin-bottom: var(--ks-space-2); }
