*{box-sizing:border-box}
:root{
  --ink:#191919;--muted:#696969;--surface:#fff;--soft:#f5f4f1;
  --line:#dedbd4;--accent:#ee432f;--accent-dark:#be2f20;
  --info:#eef5ff;--warn:#fff3dd;--success:#edf8ef;
}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--soft)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
#app{max-width:920px;margin:0 auto;min-height:100vh;background:var(--surface);box-shadow:0 0 40px rgba(0,0,0,.06)}
.hero{
  padding:48px 24px 28px;
  background:#204666;
  color:#fff;
}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:800;margin:0 0 8px;opacity:.72}
.hero h1{font-size:clamp(2rem,7vw,4.2rem);line-height:.96;margin:0 0 16px}
.hero p{font-size:1.05rem;line-height:1.6;max-width:680px;color:#e5e5e5}
.page{padding:24px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;box-shadow:0 5px 18px rgba(0,0,0,.04);transition:.15s ease}
button.card:hover{transform:translateY(-2px);border-color:#999}
.card h2,.card h3{margin:0 0 8px}
.card p{margin:0;color:var(--muted);line-height:1.45}
.card.disabled{opacity:.55;cursor:not-allowed}
.wifi-card{margin:0 0 24px;background:var(--info)}
.credentials{display:flex;gap:28px;flex-wrap:wrap;margin-top:14px}
.credential small{display:block;color:var(--muted);font-weight:700;margin-bottom:3px}
.credential strong{font-size:1.05rem}
.top-nav{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);z-index:5}
.back{border:0;background:#eee;border-radius:999px;padding:9px 13px;font-weight:800}
.top-nav-title{font-weight:800}
.section-heading{margin:8px 0 20px}
.section-heading h1{margin:0 0 5px}
.room-picker{margin-bottom:22px}
.room-picker select{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;background:white}
.step-shell{padding:20px}
.progress{height:7px;background:#eee;border-radius:999px;overflow:hidden;margin:12px 0 24px}
.progress span{display:block;height:100%;background:var(--accent)}
.step-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.step-content{padding:24px}
.step-content h1{margin:0 0 14px;font-size:clamp(1.6rem,5vw,2.5rem)}
.step-content p{font-size:1.04rem;line-height:1.65}
.notice{padding:15px;border-radius:13px;margin-top:15px;line-height:1.5}
.notice.note{background:var(--info)}
.notice.warning{background:var(--warn)}
.step-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:20px}
.step-images img{width:100%;height:240px;object-fit:cover;border-radius:13px;background:#eee}
.step-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}
.button{border:0;background:var(--accent);color:white;border-radius:12px;padding:12px 17px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.button:hover{background:var(--accent-dark)}
.button.secondary{background:#eceae5;color:var(--ink)}
.help-bar{margin-top:22px;padding:16px;border-radius:14px;background:#f5f5f5}
.help-bar a{color:var(--accent-dark);font-weight:800;text-decoration:none;margin-right:14px}
.loading,.error{padding:50px;text-align:center;color:var(--muted)}
@media(max-width:600px){
  .hero{padding-top:38px}.page{padding:18px}.step-shell{padding:14px}
  .step-content{padding:19px}.step-actions .button{flex:1}.credentials{gap:16px}
}


.wifi-card p,
.step-content p,
.notice {
  white-space: pre-line;
}