/* The family website: calm and simple, the SYRNOS colours */
:root { --ink: #074F69; --ink2: #285A6E; --act: #0F9ED5; --act-dk: #0B7FAD; --line: #B4DCEC; --warn: #B3541E; --good: #2E7D32; color-scheme: light;
  --font: Calibri, Carlito, "Source Sans 3", "Segoe UI", Arial, sans-serif }
* { box-sizing: border-box }
body { margin: 0; min-height: 100vh; color: var(--ink); font: 17px/1.45 var(--font);
  background: radial-gradient(ellipse at 0% 0%, #94C6F9, rgba(148,198,249,0) 60%), radial-gradient(ellipse at 100% 100%, #88D6EE, rgba(136,214,238,0) 60%) #C2E0FC; background-attachment: fixed }
button, input { font: inherit; color: inherit }
h1, h2 { margin: 0 0 10px; line-height: 1.2 }
h1 { font-size: 26px } h2 { font-size: 20px }
.testbar { background: #FFF4D6; color: #6B4A00; text-align: center; font-size: 14px; padding: 6px 16px }
header.band { display: flex; align-items: center; gap: 8px; padding: 12px max(16px, env(safe-area-inset-left, 0px)); background: rgba(255,255,255,.6);
  border-bottom: 2px solid rgba(255,255,255,.9) }
header .logo { height: 30px; width: auto }
header .fam { font-weight: 700; font-size: 20px; letter-spacing: .5px }
header .who { margin-left: auto; font-size: 15px; color: var(--ink2) }
main { max-width: 560px; margin: 0 auto; padding: 20px 16px 48px }
.panel { background: rgba(255,255,255,.92); border-radius: 14px; padding: 20px; box-shadow: 0 4px 14px rgba(31,133,200,.15); margin-bottom: 16px }
.status { margin: 0; color: var(--ink2) }
label.f { display: block; font-weight: 700; margin: 12px 0 0 }
label.f span.hint { display: block; font-weight: 400; color: var(--ink2); font-size: 14px }
input[type=text], input[type=email], input[type=password], input[type=tel] { display: block; width: 100%; margin-top: 4px; padding: 11px 12px; font-size: 18px;
  border: 1px solid var(--line); border-radius: 10px; background: #fff }
input:focus-visible, button:focus-visible { outline: 3px solid #7CC7EA; outline-offset: 2px }
input.code { letter-spacing: 6px; text-align: center; font-size: 26px; font-variant-numeric: tabular-nums }
label.tick { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0 0; font-weight: 400 }
label.tick input { width: 22px; height: 22px; margin-top: 1px; flex: none }
.btn { display: block; width: 100%; margin-top: 18px; padding: 13px 16px; border: 0; border-radius: 10px; background: var(--act); color: #fff; font-weight: 700;
  font-size: 18px; cursor: pointer } .btn:hover { background: var(--act-dk) }
.btn:disabled { opacity: .6; cursor: default }
.btn.light { background: #EAF4FA; color: var(--ink) } .btn.light:hover { background: #D6E9F4 }
.btn.warn { background: #FCEBDD; color: var(--warn) }
.linkbtn { background: none; border: 0; padding: 0; margin-top: 14px; color: var(--act-dk); text-decoration: underline; cursor: pointer; font-size: 16px }
.err { color: #9C0006; background: #FDECEC; border-radius: 10px; padding: 10px 12px; margin: 14px 0 0 }
.ok { color: #1F5E25; background: #E6F4E6; border-radius: 10px; padding: 10px 12px; margin: 14px 0 0 }
.testcode { background: #FFF4D6; color: #6B4A00; border-radius: 10px; padding: 10px 12px; margin: 14px 0 0; font-size: 15px }
.child { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #E3F0F7 }
.child:first-of-type { border-top: 0 }
.child .av { width: 48px; height: 48px; border-radius: 50%; background: #DDF0FB; display: flex; align-items: center; justify-content: center; font-weight: 700;
  font-size: 22px; flex: none }
.child .nm { font-weight: 700; font-size: 19px }
.child .sub { color: var(--ink2); font-size: 15px }
.soon { color: var(--ink2); font-size: 15px; margin: 10px 0 0 }
.muted { color: var(--ink2); font-size: 15px }
#toastRoot { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 10; width: min(520px, calc(100% - 32px)) }
.toast { background: #074F69; color: #fff; border-radius: 10px; padding: 12px 16px; box-shadow: 0 6px 18px rgba(0,0,0,.2) }
