/* House Guide — shared styles. Reuses the check-in app tokens (index.html) +
   adds the home-grid + section layout. Mobile-first, no framework. */
:root{
  --wap-cream:#FFFDF9;
  --wap-text:#474747;
  --wap-heading:#333333;
  --wap-blue:#1E73BE;
  --wap-navy:#1E2A39;
  --wap-border:#e3ddd2;
  --wap-red:#d32f2f;
  --wap-green:#2e7d32;
  --wap-amber:#b26a00;
  --radius:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:"Source Sans 3","Source Sans Pro",sans-serif;
  background:var(--wap-cream);color:var(--wap-text);line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
header.site{
  background:#fff;border-bottom:1px solid var(--wap-border);
  padding:14px 20px;text-align:center;position:sticky;top:0;z-index:20;
}
header.site img{height:40px;width:auto}
.wrap{max-width:680px;margin:0 auto;padding:20px 16px calc(84px + env(safe-area-inset-bottom))}

h1{font-size:1.55rem;color:var(--wap-heading);font-weight:700;margin:.1em 0 .1em}
h2{font-size:1.3rem;color:var(--wap-heading);font-weight:700;margin:.1em 0 .5em}
h3{font-size:1.02rem;color:var(--wap-heading);font-weight:700;margin:1.1em 0 .3em}
.lead{font-size:1.05rem;margin:.3em 0 1.2em;color:#5c574d}
p{margin:.5em 0}
a{color:var(--wap-blue)}

/* ---- Hero header ---- */
.hero{
  background:linear-gradient(160deg,#fff,#fdf5ea);
  border:1px solid var(--wap-border);border-radius:14px;
  padding:22px 20px;margin-top:6px;text-align:center;
}
.hero .hi{font-size:1rem;color:var(--wap-amber);font-weight:700;margin:0 0 2px;letter-spacing:.02em}
.hero h1{font-size:1.9rem;margin:.1em 0 .3em}
.hero .lead{margin:.2em 0 .9em}
.hero .save{
  background:#fff;border:1px dashed var(--wap-amber);border-radius:10px;
  padding:10px 14px;font-size:.95rem;color:var(--wap-text);margin:0;
}
.hero .addr{margin:.2em 0 0;font-size:1.05rem;color:var(--wap-heading)}

/* ---- Start-here panel (collapsible <details>) ---- */
.starthere{
  background:linear-gradient(160deg,#fff,#fdf5ea);
  border:1px solid var(--wap-border);border-radius:14px;
  margin-top:16px;box-shadow:0 1px 3px rgba(0,0,0,.05);overflow:hidden;
}
.starthere>.sh-title{
  list-style:none;cursor:pointer;display:flex;align-items:center;
  padding:14px 16px;font-weight:700;color:var(--wap-heading);font-size:1.02rem;
}
.starthere>.sh-title::-webkit-details-marker{display:none}
.starthere>.sh-title::after{
  content:"▾";margin-left:auto;color:var(--wap-blue);font-size:.9rem;
  transition:transform .15s;
}
.starthere[open]>.sh-title::after{transform:rotate(180deg)}
.sh-body{padding:0 14px 8px}
.sh-row{
  display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--wap-heading);
  padding:11px 8px;border-top:1px solid var(--wap-border);
}
.sh-row:first-child{border-top:none}
.sh-row .sh-ico{font-size:1.35rem;line-height:1;flex-shrink:0}
.sh-row .sh-txt{font-size:.95rem;line-height:1.3;flex:1}
.sh-row .sh-txt b{color:var(--wap-heading)}
.sh-row .sh-arr{color:var(--wap-blue);font-size:1.1rem;font-weight:700;flex-shrink:0}
.sh-row:active{background:rgba(0,0,0,.03)}

/* ---- Home: 5 parent group cards ---- */
.groups{display:flex;flex-direction:column;gap:11px;margin-top:18px}
.grp{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  background:#fff;border:1px solid var(--wap-border);border-left:5px solid var(--gc,var(--wap-amber));
  border-radius:15px;padding:15px 15px;cursor:pointer;font-family:inherit;color:var(--wap-heading);
  box-shadow:0 1px 3px rgba(40,25,10,.05);transition:transform .08s,box-shadow .12s;
}
.grp:active{transform:scale(.99)}
.grp:hover{box-shadow:0 3px 10px rgba(40,25,10,.09)}
.grp .g-ic{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.65rem;flex-shrink:0;background:var(--gcbg,#f6ead6)}
.grp .g-tx{flex:1;min-width:0}
.grp .g-t{display:block;font-weight:800;font-size:1.08rem;letter-spacing:-.01em;line-height:1.2}
.grp .g-s{display:block;color:#8a8375;font-size:.83rem;margin-top:2px;line-height:1.3}
.grp .g-ch{color:#c3b9a6;font-size:1.4rem;flex-shrink:0}
.g-around{--gc:#2E6E8E;--gcbg:#e2edf1}
.g-eat{--gc:#C8791B;--gcbg:#f7e7cf}
.g-see{--gc:#7A3B57;--gcbg:#efe4ea}
.g-out{--gc:#6B7A3F;--gcbg:#eaf0e2}
.g-know{--gc:#B4442A;--gcbg:#f6ddd6}

/* ---- Group screen: list of child sections ---- */
.childlist{display:flex;flex-direction:column;gap:10px;margin:6px 0 10px}
.child{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;
  background:#fff;border:1px solid var(--wap-border);border-radius:14px;padding:13px 14px;
  cursor:pointer;font-family:inherit;color:var(--wap-heading);box-shadow:0 1px 2px rgba(40,25,10,.04);
  transition:transform .08s;
}
.child:active{transform:scale(.99)}
.child .c-ic{width:44px;height:44px;border-radius:12px;background:#f7f3ec;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}
.child .c-tx{flex:1;min-width:0}
.child .c-tx b{display:block;font-weight:700;font-size:1rem;line-height:1.25}
.child .c-tx small{display:block;color:#8a8375;font-size:.82rem;margin-top:1px;line-height:1.3}
.child .c-ch{color:#c3b9a6;font-size:1.3rem;flex-shrink:0}

/* ---- Home menu grid (legacy, kept for any old refs) ---- */
.menu{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;
}
.menu .menu-group{
  grid-column:1 / -1;margin:16px 2px 0;font-size:.82rem;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--wap-heading);
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.menu .menu-group:first-child{margin-top:2px}
.menu .menu-group .mg-sub{
  font-size:.72rem;font-weight:400;letter-spacing:0;text-transform:none;color:#8a8375;
}
.menu button{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  background:#fff;border:1px solid var(--wap-border);border-radius:var(--radius);
  padding:16px 14px;text-align:left;cursor:pointer;font-family:inherit;
  box-shadow:0 1px 3px rgba(0,0,0,.05);transition:transform .08s,border-color .15s;
  color:var(--wap-heading);min-height:92px;
}
.menu button:hover{border-color:var(--wap-blue);transform:translateY(-1px)}
.menu button:active{transform:translateY(0)}
.menu .ico{font-size:1.7rem;line-height:1}
.menu .lbl{font-weight:700;font-size:1rem}
.menu .sub{font-weight:400;font-size:.82rem;color:#8a8375;line-height:1.3}
.menu button.wide{grid-column:1 / -1;flex-direction:row;align-items:center;gap:14px;min-height:0}
.menu button.wide .ico{font-size:1.5rem}
.menu button.urgent{border-color:#f3c6c6;background:#fff8f8}
.menu button.urgent:hover{border-color:var(--wap-red)}
.menu button.rules{border-color:#e6d3b8;background:linear-gradient(150deg,#fffaf0,#fdf2e3)}
.menu button.rules:hover{border-color:var(--wap-amber)}

/* ---- Sections ---- */
.section{display:none}
.section.active{display:block;animation:fade .18s ease-out}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.back{
  display:inline-flex;align-items:center;gap:6px;background:none;border:none;
  color:var(--wap-blue);font-family:inherit;font-size:.95rem;font-weight:600;
  cursor:pointer;padding:6px 0;margin-bottom:6px;
}
.card{
  background:#fff;border:1px solid var(--wap-border);border-radius:var(--radius);
  padding:16px 16px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.card:first-of-type{margin-top:8px}
.card h3:first-child{margin-top:0}

/* callouts */
.alert{border-left:4px solid var(--wap-red);background:#fff5f5;padding:12px 14px;border-radius:8px;margin:12px 0}
.warn{border-left:4px solid var(--wap-amber);background:#fff9ef;padding:12px 14px;border-radius:8px;margin:12px 0}
.ok{border-left:4px solid var(--wap-green);background:#f2faf2;padding:12px 14px;border-radius:8px;margin:12px 0}
.alert strong,.warn strong,.ok strong{color:var(--wap-heading)}

/* wifi / value chips */
.kv{background:#f7f3ec;border-radius:8px;padding:10px 12px;margin:8px 0;font-size:.98rem}
.kv b{color:var(--wap-heading)}
.copy{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;
  border:1px solid var(--wap-border);border-radius:6px;padding:2px 7px;display:inline-block}

/* lists */
ul.tight{margin:.4em 0;padding-left:1.2em}
ul.tight li{margin:.3em 0}

/* zone orientation list (Where to Stay) — airy, scannable, no wall of text */
ul.zones{list-style:none;margin:.6em 0 1em;padding:0}
ul.zones li{
  background:#fff;border:1px solid var(--wap-border);border-radius:10px;
  padding:11px 13px;margin:8px 0;font-size:.97rem;line-height:1.45;
}
ul.zones li b{color:var(--wap-heading)}
ul.zones .z-note{display:block;margin-top:3px;font-size:.86rem;color:#8a8375}
.maps{font-size:.9rem;font-weight:600;white-space:nowrap}

/* food list */
.eat h3{border-bottom:1px solid var(--wap-border);padding-bottom:4px}
.spot{margin:.5em 0}
.spot b{color:var(--wap-heading)}
.spot .note{color:#6f6a60;font-size:.93rem}

/* ---- Savable place card ---- */
.place{background:#fff;border:1px solid var(--wap-border);border-radius:14px;padding:12px 13px;margin:10px 0;
  display:flex;gap:11px;align-items:flex-start;box-shadow:0 1px 2px rgba(40,25,10,.04)}
.place .thumb{width:46px;height:46px;border-radius:12px;background:#f7e7cf;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}
.place .pm{flex:1;min-width:0}
.place .pn{font-weight:700;font-size:1rem;color:var(--wap-heading);display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.25}
.place .zone{font-size:.66rem;font-weight:700;color:#2E6E8E;background:#e4eef2;border-radius:5px;padding:2px 7px}
.place .pd{color:#6f6a60;font-size:.87rem;margin-top:3px;line-height:1.4}
.place .pdur{color:#8a8375;font-size:.8rem;margin-top:3px;font-weight:600}
.place .pa{margin-top:7px;display:flex;flex-wrap:wrap;gap:12px}
.place .pa a{font-size:.83rem;font-weight:700;color:var(--wap-blue);text-decoration:none}
.star{background:none;border:none;cursor:pointer;font-size:1.55rem;line-height:1;color:#c3b9a6;padding:0 2px;flex-shrink:0;transition:transform .12s}
.star.on{color:#E0A22E}
.star:active{transform:scale(1.3)}
.place.noselect{gap:11px}
.place.noselect .pm{padding-right:2px}

/* saved tab list */
.saved-group{margin:18px 0 4px;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a8375}
.saved-clear{background:none;border:1px solid var(--wap-border);border-radius:8px;color:#8a8375;font-family:inherit;font-size:.82rem;font-weight:600;padding:6px 12px;cursor:pointer;margin-top:14px}

/* steps */
ol.steps{margin:.4em 0;padding-left:1.3em}
ol.steps li{margin:.45em 0}

/* accordion (boxes that open) */
details.acc{background:#fff;border:1px solid var(--wap-border);border-radius:10px;margin-bottom:10px;overflow:hidden;scroll-margin-top:76px}
details.acc>summary{
  cursor:pointer;padding:14px 16px;font-weight:700;color:var(--wap-heading);
  list-style:none;display:flex;align-items:center;gap:10px;font-size:1rem;
}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary::after{content:"+";margin-left:auto;color:var(--wap-blue);font-size:1.3rem;font-weight:400;line-height:1}
details.acc[open]>summary::after{content:"–"}
details.acc[open]>summary{border-bottom:1px solid var(--wap-border)}
details.acc .body{padding:14px 16px}
details.acc .body>*:first-child{margin-top:0}
details.acc .body>*:last-child{margin-bottom:0}
details.acc.urgent{border-color:#f3c6c6}
details.acc.urgent>summary{color:#b02020}

/* itinerary stops */
.cover{margin:0 0 14px;border-radius:10px;overflow:hidden;border:1px solid var(--wap-border)}
.cover img{width:100%;height:auto;display:block}
.stop{border-left:3px solid var(--wap-border);padding:2px 0 2px 14px;margin:0 0 8px}
.stop .name{font-weight:700;color:var(--wap-heading)}
.stop .name .u{font-size:.7rem;font-weight:700;color:#fff;background:var(--wap-blue);border-radius:4px;padding:1px 5px;margin-left:6px;letter-spacing:.03em;vertical-align:middle}
.stop .desc{font-size:.95rem;margin:2px 0 4px}
.meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.85rem}
.meta .price{background:#eef7ee;color:#2e7d32;border-radius:6px;padding:1px 7px;font-weight:700}
.meta .price.free{background:#eef4fb;color:var(--wap-blue)}
.meta .dur{color:#6f6a60}
.meta a{font-weight:600;white-space:nowrap}
.walkto{font-size:.82rem;color:#8a8375;margin:6px 0 2px;padding-left:14px}

/* house rules: action -> consequence, same visual family as .stop */
.rule{border-left:3px solid var(--wap-border);padding:2px 0 2px 14px;margin:0 0 11px}
.rule.hard{border-left-color:var(--wap-red)}
.rule .act{font-weight:700;color:var(--wap-heading)}
.rule .csq{font-size:.93rem;margin:2px 0 0;color:var(--wap-text)}
.starttip{background:#f7f3ec;border-radius:8px;padding:8px 12px;font-size:.9rem;margin-bottom:10px}

/* check-in/out times */
.times{display:flex;gap:10px;margin:6px 0 12px}
.times .t{flex:1;background:#fff;border:1px solid var(--wap-border);border-radius:10px;
  padding:12px 14px;text-align:center}
.times .lab{display:block;font-size:.8rem;color:#8a8375;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.times .val{display:block;font-size:1.15rem;font-weight:700;color:var(--wap-heading);margin-top:2px}

/* distance chips */
.dist{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.dist span{background:#f7f3ec;border:1px solid var(--wap-border);border-radius:999px;
  padding:4px 10px;font-size:.85rem;font-weight:600;color:var(--wap-heading);white-space:nowrap}

/* photos */
figure.shot{margin:12px 0;text-align:center}
figure.shot img{max-width:100%;height:auto;border-radius:8px;border:1px solid var(--wap-border);display:block}
figure.shot figcaption{font-size:.85rem;color:#8a8375;margin-top:6px}
.shots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.shots figure{margin:0}
@media(max-width:420px){.shots{grid-template-columns:1fr}}

footer{text-align:center;font-size:.8rem;color:#a99f8c;padding:24px 12px}
.sig{font-size:.95rem;color:#6f6a60;margin-top:10px}

@media(max-width:360px){
  .menu{grid-template-columns:1fr}
}

/* trash schedule table */
table.trash{width:100%;border-collapse:collapse;margin:12px 0;font-size:.92rem}
table.trash th,table.trash td{border:1px solid var(--wap-border);padding:8px 10px;text-align:left;vertical-align:top}
table.trash thead th{background:#f7f3ec;color:var(--wap-heading);font-weight:700}
table.trash td b{color:var(--wap-heading)}

/* ============ Persistent bottom tab bar ============ */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:grid;grid-template-columns:repeat(3,1fr);
  background:rgba(255,253,249,.94);backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-top:1px solid var(--wap-border);
  padding-bottom:env(safe-area-inset-bottom);
}
.tabbar .tab{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  background:none;border:none;cursor:pointer;font-family:inherit;
  padding:8px 4px 7px;color:#8a8375;transition:color .12s;
}
.tabbar .tab .t-ico{font-size:1.35rem;line-height:1;filter:grayscale(.35);opacity:.7;transition:filter .12s,opacity .12s}
.tabbar .tab .t-lbl{font-size:.68rem;font-weight:600;letter-spacing:.01em}
.tabbar .tab.active{color:var(--wap-blue)}
.tabbar .tab.active .t-ico{filter:none;opacity:1}
.tabbar .tab:active .t-ico{transform:scale(.9)}
.tabbar .tab{position:relative}
.tabbar .tab .tabbadge{position:absolute;top:4px;left:50%;margin-left:7px;background:#B4442A;color:#fff;
  font-size:.6rem;font-weight:800;min-width:16px;height:16px;border-radius:9px;display:none;
  align-items:center;justify-content:center;padding:0 4px;line-height:1}
.tabbar .tab.hasitems .tabbadge{display:flex}

/* new tab sections: search / saved / nearme */

.savedlist{margin-top:4px}
.empty-state{
  text-align:center;color:#8a8375;font-size:.98rem;
  padding:34px 20px;line-height:1.5;
}
.empty-state .big{font-size:2.2rem;display:block;margin-bottom:8px;opacity:.7}

/* save-confirmation toast */
.toast{
  position:fixed;left:50%;transform:translateX(-50%) translateY(10px);
  bottom:calc(72px + env(safe-area-inset-bottom));z-index:60;
  background:var(--wap-navy);color:#fff;font-size:.88rem;font-weight:600;
  padding:11px 18px;border-radius:22px;box-shadow:0 4px 16px rgba(0,0,0,.22);
  max-width:88%;text-align:center;opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}


/* ---- Profile tab ---- */
.pcard-status{display:flex;align-items:center;gap:14px;background:linear-gradient(150deg,#fff,#fdf0dc);
  border:1px solid #e9d3ae;border-radius:16px;padding:16px 18px;margin:6px 0 8px;box-shadow:0 2px 8px rgba(200,121,27,.08)}
.ps-badge{background:#C8791B;color:#fff;font-weight:800;font-size:.82rem;border-radius:20px;padding:6px 13px;white-space:nowrap;flex-shrink:0}
.ps-tx b{display:block;color:var(--wap-heading);font-size:1rem}
.ps-tx span{display:block;color:#8a8375;font-size:.85rem;margin-top:2px}
.psub{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8a8375;margin:22px 2px 8px}
.prow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--wap-border);
  border-radius:11px;padding:12px 14px;margin:8px 0;font-size:.95rem}
.prow .pk{color:#8a8375;font-weight:600}
.prow .pv{color:var(--wap-heading);text-align:right}
.prow .pv.muted{color:#a99f8d;font-weight:400}
.soon{font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#8a8375;background:#f2ede3;border-radius:5px;padding:1px 6px;margin-left:6px}
.pbtn{display:flex;align-items:center;gap:8px;width:100%;background:#fff;border:1px solid var(--wap-border);
  border-radius:11px;padding:13px 14px;font-family:inherit;font-size:.95rem;font-weight:600;color:var(--wap-heading);
  text-decoration:none;cursor:pointer;margin:8px 0}
.pbtn[disabled]{color:#a99f8d;cursor:default}
.pbtn-go{color:var(--wap-blue)}
.pbtn-arr{margin-left:auto;color:#c3b9a6;font-size:1.2rem}
.pnote{font-size:.83rem;color:#a99f8d;margin:4px 4px 0;line-height:1.4}
