/* Explorer Lab suite: shared look for the explorer pages and the profile button.
   White ground, soft gray pills, bigger rounded controls, coral and sky accents, Geist type.
   Everything is prefixed xl- so apps can't clash with it. */
:root{
  --xl-bg:#FFFFFF;--xl-ink:#262626;--xl-muted:#5F5F5F;--xl-dim:#6E6E6E;
  --xl-panel:#F3F3F3;--xl-panel-2:#E8E8E8;--xl-line:#E3E3E3;
  --xl-accent:#C9473B;--xl-accent-ink:#FFFFFF;--xl-accent-soft:#FBE9E6;
  --xl-sky:#2F7FB8;--xl-sky-soft:#E3EFF8;
  --xl-display:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --xl-body:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --xl-mono:"Geist Mono",ui-monospace,Menlo,Consolas,monospace;
}
.xl-calm *{animation:none!important;transition:none!important}
html.xl-open,html.xl-open body{overflow:hidden}

/* profile button (top right of every app) */
.xl-pbtn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:4px 16px 4px 5px;border-radius:999px;border:0;background:var(--xl-panel);color:var(--xl-ink);font:600 14px var(--xl-body);cursor:pointer;max-width:190px}
.xl-pbtn:hover{background:var(--xl-panel-2)}
.xl-pbtn canvas{width:34px;height:34px;border-radius:50%;flex:none}
.xl-pname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* profile page: a full-screen page drawn over the app */
.xl-page{position:fixed;inset:0;z-index:100;overflow:auto;-webkit-overflow-scrolling:touch;color:var(--xl-ink);font-family:var(--xl-body);font-size:15px;line-height:1.5;background:var(--xl-bg);-webkit-user-select:text;user-select:text}
.xl-page[hidden]{display:none}
.xl-wrap{max-width:960px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 24px) 24px calc(env(safe-area-inset-bottom,0px) + 28px);box-sizing:border-box;min-height:100%;display:flex;flex-direction:column;gap:20px}
.xl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.xl-suite{font:700 12px var(--xl-body);letter-spacing:0.12em;text-transform:uppercase;color:var(--xl-accent)}
.xl-head h1{font:700 clamp(24px,4vw,32px)/1.1 var(--xl-display);letter-spacing:-0.02em;margin:6px 0 4px;text-wrap:balance}
.xl-lede{margin:0;color:var(--xl-muted);max-width:52ch}
.xl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--xl-panel);color:var(--xl-ink);border-radius:999px;height:44px;padding:0 18px;font:600 14px var(--xl-body);cursor:pointer;white-space:nowrap}
.xl-btn:hover{background:var(--xl-panel-2)}
.xl-btn:disabled{opacity:0.45;cursor:default}
.xl-primary{border:0;background:var(--xl-accent);color:var(--xl-accent-ink);border-radius:999px;height:48px;padding:0 26px;font:700 16px var(--xl-body);cursor:pointer}
.xl-primary:hover{background:#B53E33}
.xl-primary:disabled{opacity:0.5;cursor:default}
.xl-page :focus-visible{outline:2px solid var(--xl-sky);outline-offset:2px}
.xl-tabs{display:flex;gap:4px;border-bottom:1px solid var(--xl-line)}
.xl-tabs button{border:0;background:none;color:var(--xl-muted);font:600 15px var(--xl-body);padding:10px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}
.xl-tabs button[aria-selected="true"]{color:var(--xl-ink);border-color:var(--xl-accent)}
.xl-pane[hidden]{display:none}
.xl-grid{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start}
.xl-preview{position:sticky;top:12px;display:grid;justify-items:center;gap:14px;padding:20px 12px;border-radius:24px;background:var(--xl-panel)}
.xl-form{display:grid;gap:18px;min-width:0}
.xl-field{display:grid;gap:6px;min-width:0}
.xl-lbl{font-weight:700;font-size:14px}
.xl-lbl em{font-style:normal;font-weight:400;color:var(--xl-dim);margin-left:4px}
.xl-page input:not([type]),.xl-page select,.xl-page input.xl-pin,.xl-page input[type="email"],.xl-page input.xl-text{font:inherit;color:var(--xl-ink);background:var(--xl-panel);border:0;border-radius:14px;padding:12px 14px;min-width:0}
#xlName{font-size:18px;font-weight:700}
.xl-pick{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
.xl-pick legend{font-weight:700;font-size:14px;padding:0;margin-bottom:8px}
.xl-swatches{display:flex;flex-wrap:wrap;gap:8px}
.xl-sw{width:38px;height:38px;border-radius:50%;border:2px solid rgba(0,0,0,0.08);background:var(--c);cursor:pointer;padding:0}
.xl-sw[aria-pressed="true"]{border-color:#FFFFFF;box-shadow:0 0 0 3px var(--xl-sky)}
.xl-chips{display:flex;flex-wrap:wrap;gap:8px}
.xl-chip{display:grid;justify-items:center;gap:4px;width:78px;padding:8px 4px 7px;border-radius:14px;border:0;background:var(--xl-panel);color:var(--xl-muted);font:600 12px var(--xl-body);cursor:pointer}
.xl-chip canvas{width:46px;height:46px;border-radius:50%}
.xl-chip[aria-pressed="true"]{background:var(--xl-sky-soft);box-shadow:0 0 0 2px var(--xl-sky);color:var(--xl-ink)}
.xl-foot{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:14px 0 calc(env(safe-area-inset-bottom,0px) + 4px);margin-top:auto;
  background:linear-gradient(to bottom,rgba(255,255,255,0),#FFFFFF 35%)}
.xl-foot[hidden]{display:none}
.xl-err{margin:0 auto 0 0;color:#B1392D;font-weight:700}
.xl-ok{margin:0 0 16px;padding:12px 16px;border-radius:14px;background:#E6F4EC;color:#1F6B3F;font-weight:600}
.xl-settings{display:grid;gap:14px;max-width:620px}
.xl-set{display:grid;gap:12px;padding:18px 20px;border-radius:20px;background:var(--xl-panel)}
.xl-set h2{font:700 18px var(--xl-display);letter-spacing:-0.01em;margin:0}
.xl-set .xl-btn,.xl-set .xl-link{justify-self:start}
.xl-set .xl-btn{background:var(--xl-bg)}
.xl-set .xl-btn:hover{background:var(--xl-panel-2)}
.xl-note{margin:0;color:var(--xl-muted);font-size:14px}
.xl-range{display:flex;align-items:center;gap:10px}
.xl-range input{flex:1;accent-color:var(--xl-sky)}
.xl-range small{color:var(--xl-dim);font-size:12px}
.xl-switch{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:600}
.xl-switch input{position:absolute;opacity:0;width:1px;height:1px}
.xl-switch span{position:relative;width:48px;height:28px;border-radius:999px;background:#CFCFCF;flex:none;transition:background .15s}
.xl-switch span::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}
.xl-switch input:checked+span{background:var(--xl-sky)}
.xl-switch input:checked+span::after{transform:translateX(20px)}
.xl-switch input:focus-visible+span{outline:2px solid var(--xl-sky);outline-offset:2px}

/* welcome, explorer cards, the family list */
.xl-fine{margin:0;color:var(--xl-dim);font-size:13px;max-width:62ch}
.xl-link{border:0;background:none;padding:0;color:var(--xl-sky);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.xl-hint{color:var(--xl-dim);font-size:13px}
.xl-narrow{display:grid;gap:14px;max-width:420px}
.xl-narrow>.xl-btn,.xl-narrow>.xl-link,.xl-narrow>.xl-primary{justify-self:start}
.xl-signin{display:grid;gap:10px;max-width:340px}
.xl-apple,.xl-google{display:flex;align-items:center;justify-content:center;gap:10px;height:48px;border-radius:14px;font:600 17px -apple-system,system-ui,"Segoe UI",Roboto,sans-serif;cursor:pointer;padding:0 18px}
.xl-apple{background:#000;color:#fff;border:1px solid #000}
.xl-google{background:#fff;color:#1f1f1f;border:1px solid #DADCE0}
.xl-apple svg{width:19px;height:19px;margin-top:-3px}.xl-google svg{width:20px;height:20px}
.xl-who{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.xl-card{display:grid;justify-items:center;gap:6px;padding:16px 10px 14px;border-radius:20px;border:0;background:var(--xl-panel);color:var(--xl-ink);cursor:pointer;font:inherit}
.xl-card:hover{background:var(--xl-panel-2)}
.xl-card.xl-on{background:var(--xl-sky-soft);box-shadow:0 0 0 2px var(--xl-sky)}
.xl-card canvas{width:76px;height:76px;border-radius:50%}
.xl-card b{font:700 16px var(--xl-display);letter-spacing:-0.01em;overflow-wrap:anywhere}
.xl-card span{color:var(--xl-muted);font-size:13px}
.xl-card .xl-plus{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;border:2px dashed #CFCFCF;font:400 38px/1 var(--xl-body);color:var(--xl-muted)}
.xl-pv{display:grid;justify-items:center;gap:10px}
.xl-family{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.xl-family li{display:grid;grid-template-columns:44px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:16px;background:var(--xl-bg)}
.xl-family canvas{width:44px;height:44px;border-radius:50%}
.xl-family span{display:grid;min-width:0}
.xl-family b{overflow-wrap:anywhere}
.xl-family small{color:var(--xl-muted);font-size:13px}
.xl-family .xl-btn,.xl-family .xl-danger{height:36px;padding:0 14px;font-size:13px}
.xl-family .xl-btn{background:var(--xl-panel)}
.xl-set .xl-primary{justify-self:start}
.xl-danger{border:0;background:var(--xl-accent-soft);color:#A4372C;border-radius:999px;height:44px;padding:0 18px;font:600 14px var(--xl-body);cursor:pointer;justify-self:start}
.xl-danger:hover{background:#F6D9D5}
.xl-danger[hidden]{display:none}
.xl-foot .xl-danger{margin-right:auto}
.xl-foot .xl-err{order:-1}

/* linking a device, the grown-up PIN, removed explorers, the privacy policy */
.xl-code{font:700 clamp(30px,8vw,44px)/1 var(--xl-mono);letter-spacing:0.08em;padding:18px 20px;border-radius:20px;border:2px dashed var(--xl-sky);background:var(--xl-sky-soft);color:var(--xl-ink);text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:all;user-select:all}
.xl-wait{margin:0;color:var(--xl-muted);font-size:14px}
.xl-page input.xl-pin{font-family:var(--xl-mono);font-size:22px;letter-spacing:0.3em;max-width:220px}
.xl-h3{font:700 14px var(--xl-body);color:var(--xl-muted);margin:4px 0 0}
.xl-removed li{grid-template-columns:44px 1fr auto;opacity:0.8}
.xl-prose{max-width:68ch;color:#3A3A3A}
.xl-prose h2{font:700 18px var(--xl-display);letter-spacing:-0.01em;margin:22px 0 6px;color:var(--xl-ink)}
.xl-prose p,.xl-prose li{margin:0 0 8px}
.xl-prose ul{padding-left:20px;margin:0 0 8px}
.xl-draft{border:2px dashed #E09A92;border-radius:14px;padding:10px 14px;color:#A4372C;font-weight:700}

@media (max-width:700px){
  .xl-wrap{padding-left:16px;padding-right:16px;gap:14px}
  .xl-grid{grid-template-columns:1fr;gap:16px}
  .xl-preview{position:static;grid-template-columns:auto 1fr;justify-items:start;align-items:center;padding:12px 16px}
  .xl-chip{width:68px}
  .xl-primary{flex:1}
}
@media (max-width:420px){.xl-pbtn{padding-right:5px}.xl-pname{display:none}}
