:root{--bg: #0f1220;--card: #1a1f35;--fg: #f2f4ff;--muted: #9aa3c7;--good: #4ade80;--bad: #f87171;--accent: #7c9cff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:ui-rounded,-apple-system,BlinkMacSystemFont,SF Pro Rounded,Segoe UI,system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.shell{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:max(1.5rem,env(safe-area-inset-top)) 1.5rem;text-align:center}.clock{font-size:clamp(4rem,14vw,9rem);font-weight:700;margin:0;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.date{font-size:clamp(1.25rem,3.5vw,2rem);color:var(--muted);margin:0 0 2rem}.card{background:var(--card);border-radius:1.25rem;padding:1.5rem 2rem;min-width:min(34rem,92vw);text-align:left;box-shadow:0 10px 40px #00000059}.card h2{margin:0 0 .25rem;font-size:1.5rem}.muted{color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.kv{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin:1rem 0 0;font-size:1.05rem}.kv dt{color:var(--muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}@media (prefers-color-scheme: light){:root{--bg: #f5f6fb;--card: #ffffff;--fg: #14182b;--muted: #5b6488}.card{box-shadow:0 8px 30px #14182b14}}.setup{justify-content:flex-start;padding-top:3vh;overflow-y:auto}.setup-title{font-size:clamp(2rem,6vw,3.5rem);margin:0 0 .5rem}.steps{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:center}.step{font-size:.95rem;color:var(--muted);padding:.35rem .85rem;border-radius:999px;border:1px solid transparent}.step.on{color:var(--fg);border-color:var(--accent);background:#7c9cff1f}.step.done{color:var(--good)}.card.wide{min-width:min(46rem,94vw);max-width:46rem}.field{display:block;width:100%;margin:.5rem 0;padding:.85rem 1rem;font-size:1.15rem;background:#ffffff0f;border:1px solid rgb(255 255 255 / .14);border-radius:.75rem;color:var(--fg);-webkit-user-select:text;user-select:text}.field:focus{outline:2px solid var(--accent);outline-offset:1px}.field.pin{letter-spacing:.5em;font-size:1.4rem}.field.grow{flex:1;margin:0}.lbl{display:block;margin-top:1rem;font-size:.95rem;color:var(--muted)}.btn{min-height:3rem;padding:.75rem 1.4rem;font-size:1.05rem;border-radius:.75rem;border:1px solid rgb(255 255 255 / .16);background:#ffffff0f;color:var(--fg);cursor:pointer;font-family:inherit}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0b1020;font-weight:600}.btn.ghost{background:transparent}.actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.member-row{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;flex-wrap:wrap}.swatches{display:flex;gap:.3rem}.swatch{width:2rem;height:2rem;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.swatch.on{border-color:var(--fg);transform:scale(1.12)}.roles{display:flex;gap:.35rem}.chip{padding:.5rem .9rem;border-radius:999px;font-size:.95rem;border:1px solid rgb(255 255 255 / .16);background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;min-height:2.5rem}.chip.on{background:var(--accent);border-color:var(--accent);color:#0b1020;font-weight:600}.geo-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.75rem}.geo{text-align:left;padding:.7rem 1rem;border-radius:.6rem;border:1px solid rgb(255 255 255 / .14);background:transparent;color:var(--fg);cursor:pointer;font-family:inherit;font-size:1rem}.geo.on{border-color:var(--accent);background:#7c9cff24}.summary{margin:.5rem 0 1rem;padding-left:1.2rem;line-height:1.8}.check{display:flex;align-items:center;gap:.6rem;margin:.5rem 0;cursor:pointer}.check input{width:1.25rem;height:1.25rem}.small{font-size:.9rem}.conn{position:fixed;top:max(.75rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;padding:.4rem 1rem;border-radius:999px;font-size:.9rem;letter-spacing:.01em;background:#0000008c;backdrop-filter:blur(8px)}.conn.offline{color:#fca5a5;border:1px solid rgb(248 113 113 / .4)}.conn.connecting{color:var(--muted);border:1px solid rgb(255 255 255 / .18)}@media (prefers-color-scheme: light){.field,.btn{background:#14182b0a;border-color:#14182b24}.conn{background:#ffffffe6}}
