/* A&Co. Control Center shell: sign-in, client picker, admin, and the frame the maps run in. */
:root{
 --bg:#f5f3ef;--panel:#ffffff;--ink:#14181f;--muted:#5e6672;--line:#dcd8d0;--accent:#1f3a5f;--accent-ink:#ffffff;--bar:#14181f;--bar-ink:#f5f3ef;--ok:#2f7d4f;--warn:#a5462b;
 --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--label:ui-monospace,"SFMono-Regular",Menlo,monospace;
 color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#0f1318;--panel:#171c23;--ink:#eef1f5;--muted:#a3acb8;--line:#2a313b;--accent:#8fb3e8;--accent-ink:#0f1318;--bar:#0a0d11;--bar-ink:#eef1f5;--ok:#6fcf97;--warn:#f0907a;color-scheme:dark}}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.screen{min-height:100%}
.center{display:grid;place-items:center;padding:24px 16px}
.card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);padding:32px 28px;display:grid;gap:12px}
.eyebrow{margin:0;font:600 11px/1 var(--label);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
h1{margin:0;font-size:26px;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
h2{margin:36px 0 10px;font-size:13px;font-family:var(--label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
p{margin:0}.muted{color:var(--muted)}.small{font-size:13px;margin-top:8px}
label{font:600 11px/1.2 var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
input,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:10px 12px;width:100%}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;cursor:pointer;border:0;padding:10px 16px}
button.primary{background:var(--accent);color:var(--accent-ink);font-weight:600}
button.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor;padding:6px 12px;font-size:13px;opacity:.85}
button.link{background:none;padding:0;color:var(--accent);text-decoration:underline}
button:disabled{opacity:.5;cursor:default}
.msg{min-height:1.5em;font-size:14px}.msg.ok{color:var(--ok)}.msg.err{color:var(--warn)}
code{font-family:var(--label);font-size:.92em}

#app{display:flex;flex-direction:column;height:100%}
.top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--bar);color:var(--bar-ink);padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px))}
.brand{color:inherit;text-decoration:none;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.brand span{font-weight:400;opacity:.7}
.top select{width:auto;max-width:260px;padding:6px 10px;background:transparent;color:inherit;border-color:rgba(255,255,255,.3)}
.top select option{color:#14181f}
.role{font:600 10px/1 var(--label);letter-spacing:.14em;text-transform:uppercase;padding:5px 8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.who{font-size:13px;opacity:.7;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow{flex:1}
#frame{flex:1;width:100%;border:0;background:#fff;min-height:0}
.pane{flex:1;overflow:auto}
.wrap{max-width:1040px;margin:0 auto;padding:32px max(16px,env(safe-area-inset-right,0px)) 64px max(16px,env(safe-area-inset-left,0px))}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:20px}
.org{display:grid;gap:4px;text-align:left;background:var(--panel);border:1px solid var(--line);padding:20px;color:var(--ink)}
.org:hover{border-color:var(--accent)}
.org b{font-size:17px}.org span{color:var(--muted);font-size:13px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font:600 10px/1 var(--label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px;border-bottom:1px solid var(--line)}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td select{width:auto;padding:6px 8px}
td.num{font-variant-numeric:tabular-nums}
.pill{font:600 10px/1 var(--label);letter-spacing:.12em;text-transform:uppercase;padding:4px 7px;border:1px solid currentColor}
.pill.on{color:var(--ok)}.pill.off{color:var(--warn)}
.acts{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.row{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:12px}
.row>div{display:grid;gap:6px;flex:1 1 220px;min-width:0}
.row button{flex:none}
@media (max-width:640px){.who{display:none}}
