/* MUNO - the gate: sign in, and the first run.
 * Everything a venue sees before the room exists. It sits above the app rather than inside it,
 * because until there is a session and a venue there is no dashboard to show.
 * Type, glass and spacing are the app's own - the first screen must not feel like a different
 * product from the second. */

/* the whole shell goes, the sky stays - the gate must sit in the same light as the app */
body[data-gate] .app{display:none}

.gate{position:fixed;inset:0;z-index:100;overflow-y:auto;
  display:flex;flex-direction:column;align-items:center;
  padding:34px 20px 40px}
.gate[hidden]{display:none}

/* the mark sits on its own, the way it does on the site */
.gate-word{font-family:var(--font-display);font-size:27.5px;font-weight:700;letter-spacing:.02em;
  color:var(--ink);margin-bottom:26px;flex:none}

.gate-card{width:min(100%,440px);padding:28px 28px 26px;border-radius:var(--r-3);
  background:var(--glass-bg);border:1px solid var(--surface-brd);
  backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);flex:none}
.gate-card.wide{width:min(100%,880px)}

.gate h1{margin:0 0 6px;font-size:23px;font-weight:700;letter-spacing:-.01em}
.gate .sub{margin:0 0 22px;font-size:13.5px;color:var(--muted);line-height:1.55}

.gate .field-lab{display:block;margin:14px 0 6px;font-size:11px;font-weight:700;
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted)}
.gate .field{width:100%}
.gate .btn{justify-content:center}
.gate .btn.w{width:100%}
.gate .btn.lg{padding:12px 20px;font-size:14px}

.gate-row{display:flex;gap:10px;margin-top:18px}
.gate-row .btn{flex:1}

/* the two federated buttons, with room for the third once Apple approves the account */
.gate-fed{display:grid;gap:9px;margin-top:16px}
.gate-fed .btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%}
.gate-fed svg{width:16px;height:16px;flex:none}
.gate-or{display:flex;align-items:center;gap:12px;margin:20px 0 4px;
  font-size:10.5px;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--muted)}
.gate-or::before,.gate-or::after{content:'';flex:1;height:1px;background:var(--hairline)}

.gate-alt{margin:18px 0 0;font-size:12.5px;color:var(--muted);text-align:center}
.gate-alt a{color:var(--accent);text-decoration:none;cursor:pointer}
.gate-alt a:hover{text-decoration:underline}
.gate-err{margin:14px 0 0;padding:10px 12px;border-radius:var(--r-1);font-size:12.5px;
  background:rgba(232,115,106,.12);border:1px solid rgba(232,115,106,.4);color:#e8736a}
.gate-err[hidden]{display:none}
.gate-note{margin:22px auto 0;max-width:440px;font-size:11.5px;color:var(--muted);
  text-align:center;line-height:1.6}

/* ---------- the first run ---------- */
.ob-rail{display:flex;gap:8px;margin-bottom:22px}
.ob-rail i{flex:1;height:3px;border-radius:2px;background:var(--track);transition:var(--t-med)}
.ob-rail i.on{background:var(--accent)}
.ob-step{display:none}
.ob-step.on{display:block}
.ob-kicker{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--accent)}

.ob-foot{display:flex;align-items:center;gap:12px;margin-top:26px;padding-top:20px;
  border-top:1px solid var(--hairline)}
.ob-foot .btn.solid{margin-left:auto}
.ob-skip{font-size:12.5px;color:var(--muted);cursor:pointer;background:none;border:0;
  font-family:inherit;padding:0}
.ob-skip:hover{color:var(--ink)}

.ob-two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.ob-hours{margin-top:6px}
/* the settings editor was drawn for a full-width card; in the first-run card the day column and
   the copy button have to give up their slack or the row folds onto itself */
.ob-hours .hday{width:86px}
.ob-hours .hcopy{padding:9px 10px;font-size:12px}
.ob-hours .hslot{padding:3px 3px 3px 7px;flex:0 0 auto}
/* .hfield is 118px wide and flex:none, so in this narrower card two slots claimed a line they
   could not fill and their inputs painted over each other. Narrower fields, and slots that size
   to their own content, put the row back together. */
.ob-hours .hfield{width:100px;font-size:12px;padding:7px 8px}
/* the schedule editor is the settings component, unchanged - see settings.js renderHours */
.ob-preset{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}

.ob-slider{display:flex;align-items:center;gap:14px;margin-top:8px}
.ob-slider input{flex:1}
.ob-slider b{font-size:13px;min-width:7ch;text-align:right}

/* the last step reads back what was entered, so nobody lands on a dashboard they did not expect */
.ob-recap{margin:18px 0 0;border-top:1px solid var(--hairline)}
.ob-recap div{display:flex;gap:14px;padding:11px 0;border-bottom:1px solid var(--hairline);
  font-size:13.5px}
.ob-recap span{color:var(--muted);min-width:34%}
.ob-recap b{font-weight:600}

@media (max-width:620px){
  .gate{padding:24px 14px 30px}
  .gate-card{padding:22px 18px 20px}
  .ob-two{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .ob-rail i{transition:none}
}
