/* The front door: the overview and the sign-in, in the family's tokens. */
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5}
.portal{max-width:72rem;margin:0 auto;padding:1.5rem 1.6rem 5rem}
.portal h1{font-size:2rem;font-weight:800;letter-spacing:-.025rem;line-height:1.15;margin:0 0 .5rem}
.portal h2{font-size:1.25rem;font-weight:700;margin:2.4rem 0 .6rem}
.lead{color:var(--ink2);max-width:62rem;font-size:1.05rem;margin:0 0 1rem}
.muted{color:var(--ink3)}
.hint{font-size:.8rem;color:var(--ink3)}
.p-nav--strong{border:1px solid var(--accent);color:var(--accent)}
.who{color:var(--ink);font-weight:600}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;margin-top:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl,14px);padding:1.2rem 1.4rem}
.card h3{margin:0 0 .35rem;font-size:1.05rem}
.card p{margin:.3rem 0;color:var(--ink2);font-size:.92rem}
.card .eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.09rem;text-transform:uppercase;color:var(--accent);margin:0 0 .4rem}
.card a.go{display:inline-block;margin-top:.6rem;font-weight:600;color:var(--accent);text-decoration:none}
.card a.go:hover{text-decoration:underline}
.diagram{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl,14px);padding:1rem 1.2rem;margin:.6rem 0 0;overflow-x:auto}
.diagram svg{width:100%;height:auto;display:block;font-family:var(--sans)}
.diagram .box{fill:var(--sunk);stroke:var(--line);stroke-width:1}
.diagram .box--app{fill:color-mix(in srgb,var(--accent) 14%,var(--panel));stroke:var(--accent)}
.diagram .box--ext{fill:var(--panel);stroke:var(--ink3);stroke-dasharray:4 3}
.diagram .box--warn{stroke:var(--warn)}
.diagram .t{fill:var(--ink);font-size:13px;font-weight:600}
.diagram .s{fill:var(--ink2);font-size:11px}
.diagram .k{fill:var(--accent);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.diagram .arrow{stroke:var(--ink3);stroke-width:1.4;fill:none;marker-end:url(#head)}
.diagram .arrow--strong{stroke:var(--accent);stroke-width:1.8;marker-end:url(#head-accent)}
.diagram .arrow--dash{stroke-dasharray:4 3}
.diagram .lbl{fill:var(--ink3);font-size:10.5px}
.diagram .lbl--accent{fill:var(--accent);font-weight:600}
.diagram .lane{fill:none;stroke:var(--line2,var(--line));stroke-dasharray:2 4}
.diagram .lane-t{fill:var(--ink3);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.caption{font-size:.84rem;color:var(--ink2);margin:.5rem 0 0;max-width:62rem}
table.flows{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:.9rem}
table.flows th,table.flows td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
table.flows th{font-size:.72rem;letter-spacing:.06rem;text-transform:uppercase;color:var(--ink3)}
table.flows td b{color:var(--ink)}
.ok{color:var(--ok)}.warn{color:var(--warn)}
.login{max-width:34rem;margin:3rem auto 0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl,14px);padding:2rem 2.2rem}
.button{display:inline-block;background:var(--accent);color:#fff;font-weight:700;padding:.7rem 1.2rem;border-radius:999px;text-decoration:none}
:root[data-theme="dark"] .button{color:#23004C}
.button--quiet{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.notice{background:var(--sunk);border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;font-size:.9rem;color:var(--ink2)}
.notice--bad{border-color:var(--bad);color:var(--ink)}
.status{display:flex;gap:.6rem;flex-wrap:wrap;margin:.6rem 0 0}
.chip{font-size:.78rem;border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;color:var(--ink2)}
.chip--ok{border-color:var(--ok);color:var(--ok)}.chip--warn{border-color:var(--warn);color:var(--warn)}
@media (max-width:40rem){.portal{padding:1rem 1rem 4rem}.portal h1{font-size:1.5rem}}
.login-form{display:flex;flex-direction:column;gap:.9rem;margin:1rem 0}
.login-form .field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--ink2)}
.login-form input{font:inherit;padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--sunk);color:var(--ink)}
.login-form input:focus{outline:2px solid var(--accent);outline-offset:1px}
.login-form .button{align-self:flex-start;border:0;cursor:pointer;font:inherit;font-weight:700}
.or{text-align:center;color:var(--ink3);margin:.4rem 0}
