/* Installed website (PWA). Everything applies only when <html> carries .is-app (set in the page head). */
.app-tabs,.app-legal,.app-back,.app-trip,.app-recent{display:none}
html.is-app body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}

/* Header: compact, no menu button, no phone, no saved-link (the tab bar has them). */
html.is-app .header .menu-toggle,html.is-app .header #navigation,html.is-app .header .contact,html.is-app .header .header-saved-link{display:none!important}
html.is-app .header-inner{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;padding-top:8px;padding-bottom:8px}
html.is-app .header .brand img{height:40px;width:auto}
html.is-app .header .header-object-search{flex:1 1 auto;min-width:0;width:auto;max-width:none;margin:0;order:0}
html.is-app .header .header-object-search input{flex:1 1 auto;min-width:0;width:100%}
html.is-app .app-back{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border:0;border-radius:50%;background:#ece9e1;color:#153c2c;cursor:pointer;padding:0}
html.is-app .app-back[hidden]{display:none}
html.is-app .app-back svg{width:22px;height:22px}

/* Footer: one slim line instead of the full footer. */
html.is-app .site-footer .footer-grid,html.is-app .site-footer .footer-bottom{display:none}
html.is-app .site-footer{padding:14px 0;margin-top:24px}
html.is-app .app-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;font-size:13px}
html.is-app .app-legal a,html.is-app .app-legal button{color:inherit;font-size:13px;min-height:36px;display:inline-flex;align-items:center}

/* Tab bar. */
html.is-app .app-tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:900;background:#faf8f1;border-top:1px solid #d7dfd6;padding:4px max(4px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}
.app-tabs a,.app-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 2px;border:0;background:none;color:#58625c;font:600 11px/1.2 Arial,sans-serif;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.app-tabs svg{width:24px;height:24px}
.app-tabs [aria-current="page"]{color:#204e39}
.app-tabs [aria-current="page"]::before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:#204e39}
.app-tabs a:focus-visible,.app-tabs button:focus-visible,.app-back:focus-visible{outline:3px solid #ad6438;outline-offset:-3px}
.app-badge{position:absolute;top:3px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:#ad6438;color:#fff;font:700 11px/18px Arial,sans-serif;text-align:center}
.app-badge[hidden]{display:none}
.app-tabs .app-dot{position:absolute;top:6px;left:calc(50% + 8px);width:9px;height:9px;border-radius:50%;background:#ad6438}

/* Other fixed elements move above the tab bar. */
html.is-app .object-room-jump{bottom:calc(80px + env(safe-area-inset-bottom))}
html.is-app .cookie-choice:not(.app-choice){bottom:calc(76px + env(safe-area-inset-bottom))}

/* "More" sheet. */
.app-more{border:0;border-radius:16px 16px 0 0;margin:auto 0 0;width:100%;max-width:none;padding:8px 16px calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;background:#faf8f1;color:#163d2d;max-height:85dvh;overflow:auto}
.app-more::backdrop{background:#163d2d55}
.app-more h2{font-size:20px;margin:12px 0 8px}
.app-more nav{display:grid}
.app-more nav a,.app-more nav button{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 4px;border:0;border-bottom:1px solid #e3e8e4;background:none;color:inherit;font:inherit;font-size:16px;text-align:left;text-decoration:none;cursor:pointer}
.app-more nav a::after,.app-more nav button::after{content:"›";font-size:22px;color:#8a948e}
.app-more .app-more-close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:none;font-size:26px;color:#163d2d;cursor:pointer}
.app-more .app-more-small{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:12px;font-size:13px}
.app-more .app-more-small a{color:#58625c}

/* Start page: trip card and recently viewed. */
html.is-app .app-trip{display:block;margin:16px 0;padding:16px 18px;border-radius:14px;background:#e9f0e3;color:#163d2d;text-decoration:none}
.app-trip strong{display:block;font-size:18px;margin-bottom:4px}
.app-trip ul{margin:8px 0 0;padding:0;list-style:none;font-size:14px;line-height:1.6}
.app-trip li.app-trip-due{color:#7a3b17;font-weight:600}
.app-trip .app-trip-more{display:inline-block;margin-top:8px;font-weight:600;text-decoration:underline}
html.is-app .app-recent{display:block;margin:16px 0}
.app-recent h2{font-size:18px;margin:0 0 8px}
.app-recent-list{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.app-recent-list a{flex:0 0 150px;scroll-snap-align:start;color:#163d2d;text-decoration:none;font-size:14px;line-height:1.3}
.app-recent-list img{display:block;width:150px;height:100px;object-fit:cover;border-radius:10px;background:#ece9e1;margin-bottom:6px}
.app-recent-list small{display:block;color:#58625c}
