/* The sign-in screens, lifted from Living (~/considered-personal/public/signin.css, 7 Nov 2026): the least there can
   be. Business's own colours (the page's PCOL business, #7A5AC8, for the mark and the one action), light and dark. */
:root {
  --ground: #F6F5F2; --card: #FFFFFF; --ink: #24212B; --muted: #6B6675; --field: #ECEAF0;
  --act: #5B3FA8; --onact: #FFFFFF; --dot: #7A5AC8; --dothi: #C9B8F2; --dotlo: #4B3290;
  --shadow: 0 1px 2px rgba(30, 24, 48, 0.06), 0 8px 22px rgba(30, 24, 48, 0.08);
  --font: system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme: light;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
  :root { --ground: #151419; --card: #1F1D25; --ink: #ECEAF2; --muted: #A49EB0; --field: #2A2731; --act: #B49CF0; --onact: #17121F; color-scheme: dark; }
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; min-height: 100%; background: var(--ground); color: var(--ink); }
body {
  font: 600 17px/1.45 var(--font);
  -webkit-font-smoothing: antialiased;
  min-height: 100dvh; display: flex; flex-direction: column;
  padding: calc(var(--safe-top) + 16px) 24px calc(var(--safe-bottom) + 24px);
}
.mark { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 22px; letter-spacing: -0.02em; }
.mark .dot { width: 12px; height: 12px; border-radius: 50%; background: radial-gradient(circle at 34% 28%, var(--dothi) 0%, var(--dot) 46%, var(--dotlo) 100%); }
main { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 18px; max-width: 420px; width: 100%; margin: 0 auto; }
main > section, .key { display: flex; flex-direction: column; gap: 18px; }
h1 { font-size: 26px; line-height: 1.2; font-weight: 800; margin: 0; letter-spacing: -0.025em; }
p { margin: 0; color: var(--muted); }
.go {
  appearance: none; border: 0; border-radius: 15px; width: 100%; min-height: 48px;
  padding: 14px 20px; font: inherit; font-size: 15px; font-weight: 600;
  background: var(--act); color: var(--onact); cursor: pointer;
}
.go:disabled { opacity: 0.4; }
.quiet {
  appearance: none; border: 0; background: none; padding: 10px 0; min-height: 40px; font: inherit; font-size: 15px;
  color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; align-self: center;
}
a { color: var(--ink); }
input {
  width: 100%; font: inherit; font-size: 16px; padding: 14px; min-height: 48px; border-radius: 14px;
  border: 1.5px solid transparent; background: var(--field); color: var(--ink);
}
input:focus { outline: none; border-color: var(--act); }
:focus-visible { outline: 2px solid var(--act); outline-offset: 2px; }
.say { min-height: 1.45em; color: var(--ink); text-align: center; }
.qr { background: var(--card); box-shadow: var(--shadow); border-radius: 20px; padding: 18px; align-self: center; width: min(78vw, 300px); }
.qr svg { display: block; width: 100%; height: auto; }
.left { text-align: center; font-variant-numeric: tabular-nums; }
[hidden] { display: none !important; }

/* LIVING-DAY-04-BUILD §3: overlap and spacing at zero. The screen sits between the safe areas (the notch, the home
   indicator and, on its side, the rounded sides); what's under the mark scrolls inside, and keeps the field in focus
   above the keyboard (--kb, set by the page when the keyboard takes the bottom of the screen). */
html, body { height: 100%; overflow: hidden; }
body { min-height: 0; height: 100dvh; padding: calc(var(--safe-top) + 16px) max(24px, env(safe-area-inset-right, 0px)) calc(var(--safe-bottom) + 24px) max(24px, env(safe-area-inset-left, 0px)); }
body.kb { padding-bottom: calc(var(--kb, 0px) + 8px); }
.mark { flex: none; }
main { min-height: 0; overflow-y: auto; overscroll-behavior: contain; justify-content: safe center; padding: 4px 2px; }
main > * { flex-shrink: 0; }
@media (max-height: 520px) { body { padding-top: 12px; padding-bottom: calc(var(--safe-bottom) + 12px); } main { gap: 12px; } main > section, .key { gap: 12px; } }
