/* Roof Rebound consultant app. Brand: master spec Part 3. */
:root { --forest:#0B3D2E; --leaf:#7CB342; --olive:#6B7244; --stone:#8B5E3C; --sand:#D9C19B; --sky:#F7F5EB;
  --ink:#16271f; --muted:#5d6b62; --line:#e2dccb; --warn:#a15c00; --bad:#a32020; }
* { box-sizing:border-box; }
html, body { margin:0; }
body { min-height:100vh; background:var(--sky); color:var(--ink); font-family:Montserrat, system-ui, sans-serif; font-size:17px; }
.hidden { display:none !important; }
button { font:inherit; font-weight:600; border:0; border-radius:12px; min-height:52px; padding:12px 22px; cursor:pointer; }
button:disabled { opacity:.4; cursor:default; }
.primary { background:var(--forest); color:#fff; }
.secondary { background:#fff; color:var(--forest); border:1px solid var(--line); }
.ghost { background:transparent; color:var(--forest); border:1px solid var(--line); min-height:40px; padding:8px 14px; font-size:14px; }
.google { display:inline-flex; align-items:center; gap:10px; margin-top:16px; }
.google img { width:24px; height:24px; background:#fff; border-radius:50%; padding:3px; }
.badge { display:inline-block; background:#e8f3dc; color:var(--forest); border-radius:999px; padding:4px 12px; font-size:13px; font-weight:600; text-transform:capitalize; }
.error { color:var(--bad); background:#fdf0ef; border-radius:10px; padding:12px; margin-top:16px; font-size:15px; }
.muted { color:var(--muted); }
.tag { color:var(--leaf); font-weight:600; letter-spacing:.04em; margin-top:18px; }

header.top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px; background:#fff; border-bottom:1px solid var(--line); }
header.top img { height:44px; width:auto; }
.who { display:flex; align-items:center; gap:12px; font-size:14px; color:var(--muted); }
main { max-width:760px; margin:0 auto; padding:32px 16px; }
body.presenting main { max-width:1280px; padding:0 16px 120px; }
.card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:32px 24px; box-shadow:0 10px 30px #0b3d2e12; text-align:center; }
.card h1 { font-weight:800; font-size:28px; color:var(--forest); margin:0 0 8px; }
.card p { line-height:1.55; color:var(--muted); margin:8px 0; }
.resume-list { text-align:left; margin-top:20px; }
.resume-list h2 { font-size:17px; color:var(--forest); }
.resume-list ul { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.resume { width:100%; text-align:left; background:var(--sky); color:var(--ink); display:flex; flex-direction:column; gap:4px; border:1px solid var(--line); }
.resume span { font-weight:400; font-size:14px; color:var(--muted); }

/* Presentation */
.pres-bar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; flex-wrap:wrap; }
.pres-who { display:flex; flex-direction:column; }
.pres-who strong { font-size:19px; color:var(--forest); }
.pres-who span { font-size:14px; color:var(--muted); }
.pres-tools { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.save-status { font-size:13px; color:var(--muted); }
.save-status.ok::before { content:"\2713  "; color:var(--leaf); font-weight:800; }
.save-status.warn { color:var(--warn); font-weight:600; }
.progress { display:flex; gap:6px; overflow-x:auto; padding:6px 0 12px; scrollbar-width:thin; }
.step { flex:0 0 auto; min-height:0; padding:8px 10px; border-radius:10px; background:#fff; border:1px solid var(--line); color:var(--muted);
  display:flex; flex-direction:column; align-items:center; gap:2px; font-size:12px; min-width:74px; }
.step .n { font-weight:800; font-size:14px; }
.step.visited { color:var(--forest); border-color:#c9dcb5; background:#f3f8ec; }
.step.current { background:var(--forest); color:#fff; border-color:var(--forest); }
.pres-body { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:18px; align-items:start; }
.guide-hidden .pres-body { grid-template-columns:minmax(0,1fr); }
.guide-hidden .guide { display:none; }
.stage { background:#fff; border:1px solid var(--line); border-radius:20px; padding:36px; min-height:60vh; box-shadow:0 10px 30px #0b3d2e10; }
.stage .eyebrow { margin:0; color:var(--leaf); font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:13px; }
.stage h1 { font-weight:800; font-size:clamp(28px, 3.4vw, 42px); line-height:1.15; color:var(--forest); margin:8px 0 18px; }
.stage .lead { font-size:19px; line-height:1.6; color:var(--muted); }
.planned { margin-top:28px; padding:20px; border-radius:14px; background:var(--sky); border:1px dashed var(--sand); }
.planned p { margin:6px 0 10px; line-height:1.55; }
.phase { display:inline-block; font-size:12px; font-weight:600; color:var(--stone); background:#f6ece1; border-radius:999px; padding:3px 10px; }
.welcome { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:24px; align-items:center; }
.welcome-media img { width:100%; max-height:420px; object-fit:cover; border-radius:16px; display:block; }
.photo-ph, .video-ph { border-radius:16px; background:var(--sky); border:1px dashed var(--sand); color:var(--muted); display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; }
.photo-ph { min-height:260px; }
.video-ph { margin-top:24px; min-height:120px; }
.facts { display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:0; font-size:18px; }
.facts dt { color:var(--muted); font-size:14px; padding-top:3px; }
.facts dd { margin:0; font-weight:600; color:var(--forest); }
.discovery { display:grid; gap:16px; margin-top:12px; }
.field { display:flex; flex-direction:column; gap:6px; text-align:left; }
.field span { font-size:14px; font-weight:600; color:var(--forest); }
.field textarea, .field input, .field select { font:inherit; font-size:17px; border:1px solid #cfd8c8; border-radius:12px; padding:12px; background:#fff; color:var(--ink); min-height:52px; width:100%; }
.field textarea { resize:vertical; }
.guide { position:sticky; top:12px; background:#fffdf7; border:1px solid var(--line); border-left:5px solid var(--olive); border-radius:16px; padding:20px; display:grid; gap:14px; }
.guide h2 { margin:0; font-size:15px; letter-spacing:.06em; text-transform:uppercase; color:var(--olive); }
.guide .q span, .guide .earlier > span { font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.guide .q p { margin:4px 0 0; font-size:17px; line-height:1.45; color:var(--ink); }
.guide .earlier ul { margin:6px 0 0; padding-left:18px; font-size:14px; line-height:1.5; }
.pres-nav { position:fixed; left:0; right:0; bottom:0; display:flex; justify-content:space-between; gap:12px; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:#ffffffee; border-top:1px solid var(--line); backdrop-filter:blur(6px); }
.pres-nav button { min-width:150px; }
@media (max-width: 900px) {
  .pres-body { grid-template-columns:minmax(0,1fr); }
  .guide { position:static; }
  .welcome { grid-template-columns:minmax(0,1fr); }
  .stage { padding:22px; }
}
