:root{color:#1d2528;background:#f6f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,textarea{font:inherit}.login-shell{align-items:center;min-height:100vh;padding:24px;display:flex}.login-panel{max-width:560px;margin:0 auto}.login-brand,.brand-heading{align-items:center;gap:14px;display:flex}.login-brand{margin-bottom:12px}.brand-logo{object-fit:cover;flex:none;width:48px;height:48px;display:block}.brand-logo.large{width:64px;height:64px}.login-panel h1,.top-bar h1{margin:0;font-size:40px;line-height:1.1}.login-form{gap:10px;max-width:360px;margin-top:18px;display:grid}.login-form input{color:#1d2528;background:#fff;border:1px solid #cfd8d2;border-radius:6px;min-height:44px;padding:0 12px}.form-error{color:#b3261e;margin:0;font-size:14px;font-weight:700}.eyebrow{color:#60706d;letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:13px;font-weight:700}.primary-button{color:#fff;cursor:pointer;background:#176b5b;border:0;border-radius:6px;min-height:44px;padding:0 16px;font-weight:700}.primary-button:disabled{cursor:not-allowed;background:#9aa7a3}.secondary-button{color:#17584d;cursor:pointer;background:#edf5f1;border:1px solid #b8d1c6;border-radius:6px;min-height:40px;padding:0 14px;font-weight:700}.secondary-button:disabled{cursor:wait;opacity:.7}.app-shell{min-height:100vh;padding:28px}.top-bar{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto 24px;display:flex}.session-chip{background:#fff;border:1px solid #d8ded9;border-radius:999px;padding:8px 12px}.session-actions{align-items:center;gap:10px;display:flex}.content-grid{grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:18px;max-width:1180px;margin:0 auto;display:grid}.book-summary-band{background:#fff;border:1px solid #d8ded9;border-radius:8px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;display:grid}.book-summary-band h2,.book-summary-band p{margin:0}.book-summary-band p:not(.eyebrow):not(.next-place){color:#55615e;margin-top:4px}.book-progress{flex-direction:column;align-items:flex-end;min-width:104px;display:flex}.book-progress strong{color:#176b5b;font-size:28px;line-height:1}.book-progress span,.next-place{color:#176b5b;font-weight:800}.next-place{border-top:1px solid #e3e8e4;grid-column:1/-1;padding-top:12px}.book-detail-panel{grid-column:1/-1;gap:18px;display:grid}.book-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.book-detail-header p{color:#55615e;margin:0}.membership-actions{place-items:flex-end end;gap:8px;min-width:128px;display:grid}.stamp-book-pages{gap:16px;display:grid}.stamp-page{border-top:1px solid #e1e6e2;gap:12px;padding-top:16px;display:grid}.stamp-page p{color:#55615e;margin:0}.stamp-slot-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.stamp-slot{border:1px solid #d8ded9;border-radius:8px;gap:8px;padding:12px;display:grid}.stamp-slot strong,.stamp-slot p{margin:0}.slot-number{color:#6f7c78;font-size:12px;font-weight:800}.explorer-shell{background:#fff;border:1px solid #d8ded9;border-radius:8px;grid-column:1/-1;gap:16px;padding:18px;display:grid}.explorer-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.explorer-header h2{margin:0}.filter-chips{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.filter-panel{place-items:flex-end end;gap:8px;display:grid}.place-search-input{border:1px solid #c5d8d0;border-radius:8px;min-width:220px;padding:9px 10px}.filter-chip{color:#17584d;white-space:nowrap;background:#edf5f1;border:1px solid #c5d8d0;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800}button.filter-chip{cursor:pointer}.filter-chip.active{color:#fff;background:#17584d;border-color:#17584d}.split-explorer{grid-template-columns:minmax(320px,.95fr) minmax(360px,1.2fr);align-items:start;gap:16px;display:grid}.split-list{gap:10px;display:grid}.hotel-place-card{color:inherit;cursor:pointer;text-align:left;background:#f9faf7;border:1px solid #dfe5df;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:12px;min-height:112px;padding:14px;display:grid}.hotel-place-card:hover,.hotel-place-card:focus-visible{border-color:#8fb7aa;outline:none}.hotel-card-copy{gap:3px;min-width:0;display:grid}.hotel-card-copy strong{font-size:18px}.hotel-card-copy small,.hotel-card-copy span{color:#60706d}.hotel-card-side{color:#176b5b;flex-direction:column;align-items:flex-end;min-width:54px;font-weight:800;display:flex}.hotel-place-card .method-badges{grid-column:1/-1;justify-content:flex-start}.split-map-panel{background:#f7f9f6;border:1px solid #dfe5df;border-radius:8px;gap:12px;padding:14px;display:grid;position:sticky;top:20px}.map-panel-header{justify-content:space-between;align-items:center;display:flex}.map-panel-header h3{margin:0}.map-panel-header span{color:#176b5b;font-weight:800}.panel{background:#fff;border:1px solid #d8ded9;border-radius:8px;padding:18px}.panel h2,.panel h3{margin:0 0 12px}.stack{gap:12px;display:grid}.stamp-book{border:1px solid #e1e6e2;border-radius:8px;justify-content:space-between;gap:12px;padding:14px;display:flex}.stamp-book h3,.stamp-book p{margin:0}.stamp-book p{color:#55615e;margin-top:4px}.progress-block{flex-direction:column;align-items:flex-end;min-width:96px;display:flex}.progress-block strong{color:#176b5b;font-size:24px}.place-list{gap:8px;display:grid}.place-row{color:inherit;cursor:pointer;text-align:left;background:#f9faf7;border:1px solid #dfe5df;border-radius:8px;justify-content:space-between;align-items:center;min-height:58px;padding:10px 12px;display:flex}.place-row span:first-child{flex-direction:column;display:flex}.place-row small{color:#64706b}.detail-panel,.map-panel{grid-column:1/-1}.map-canvas{background:linear-gradient(135deg,#176b5b1f,#0000 38%),linear-gradient(45deg,#466a8221,#0000 48%),#eef2ed;border:1px solid #d7dfd8;border-radius:8px;min-height:220px;position:relative;overflow:hidden}.map-canvas:before{content:"";opacity:.8;background:linear-gradient(90deg,#0000 0 48%,#5e6f6533 48% 52%,#0000 52%),linear-gradient(0deg,#0000 0 48%,#5e6f6529 48% 52%,#0000 52%);position:absolute;inset:18px}.map-marker{color:#fff;cursor:pointer;z-index:1;background:#f05a3b;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #29322d2e}.real-map-canvas{isolation:isolate}.vendor-map-surface{z-index:0;position:absolute;inset:0}.map-status{color:#47544f;text-align:center;z-index:2;background:#ffffffd1;border:1px solid #d7dfd8;border-radius:8px;justify-content:center;align-items:center;padding:12px;font-size:13px;font-weight:700;display:flex;position:absolute;inset:16px}.map-legends{flex-wrap:wrap;gap:8px;display:flex}.map-legends span{color:#60706d;font-size:13px;font-weight:700}.map-list{gap:10px;margin-top:12px;display:grid}.map-place{border:1px solid #e3e8e4;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.map-place div:first-child{gap:2px;display:grid}.map-place small{color:#60706d}.method-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.method-badge{color:#33413d;white-space:nowrap;background:#f7f8f5;border:1px solid #dce4dd;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.info-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0;display:grid}.info-list div{border-top:1px solid #e3e8e4;padding-top:10px}.info-list dt{color:#60706d;font-size:13px;font-weight:700}.info-list dd{margin:2px 0 0}.stamp-list{gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.stamp-list li{border:1px solid #e3e8e4;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.checkin-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;display:flex}.qr-checkin-form{border-top:1px solid #e3e8e4;gap:8px;margin:0 0 18px;padding-top:14px;display:grid}.inline-form-row{flex-wrap:wrap;gap:10px;display:flex}.inline-form-row input{color:#1d2528;background:#f9faf7;border:1px solid #cbd4cf;border-radius:8px;flex:220px;min-height:42px;padding:0 12px}.proposal-form{gap:8px;max-width:640px;display:grid}.proposal-form label{font-weight:700}.proposal-form input,.proposal-form textarea{border:1px solid #cbd4cf;border-radius:8px;padding:10px}.proposal-form input{min-height:42px}.proposal-form textarea{resize:vertical}.success-text{color:#176b5b;margin:0;font-weight:700}.muted-text{color:#6f7c78;margin:0;font-weight:700}.error-text{color:#b83a2a;margin:0;font-weight:700}.sr-only{width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (width<=780px){.app-shell{padding:18px}.top-bar{flex-direction:column;align-items:flex-start;gap:12px}.content-grid,.info-list,.book-summary-band,.explorer-header,.split-explorer{grid-template-columns:1fr}.book-summary-band,.explorer-header,.book-progress{align-items:flex-start}.explorer-header{flex-direction:column}.filter-chips{justify-content:flex-start}.split-map-panel{position:static}.map-place{flex-direction:column;align-items:flex-start}.method-badges{justify-content:flex-start}}.landing{--landing-paper:#f3ead9;--landing-paper-light:#fdf9f0;--landing-paper-border:#e2d6bd;--landing-ink:#3d3226;--landing-ink-soft:#7d6f5c;--landing-accent:#c0503f;--landing-card-border:#eadfc8;background:var(--landing-paper-light);color:var(--landing-ink);min-height:100vh}.landing-nav{background:var(--landing-paper);border-bottom:1px solid var(--landing-paper-border);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.landing-brand{align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex}.landing-brand .brand-logo{border-radius:50%;width:32px;height:32px}.landing-outline-button{border:1.5px solid var(--landing-ink);color:var(--landing-ink);cursor:pointer;background:0 0;border-radius:8px;padding:7px 16px;font-weight:600}.landing-hero{background:var(--landing-paper);text-align:center;padding:72px 24px 64px;position:relative;overflow:hidden}.landing-hero h1{margin:18px 0 12px;font-size:44px;font-weight:800;line-height:1.2}.landing-hero h1 em{color:var(--landing-accent);font-style:normal}.landing-badge{color:var(--landing-accent);background:#fff;border-radius:4px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-block;box-shadow:2px 2px #d8c9ac}.landing-subcopy{color:var(--landing-ink-soft);max-width:480px;margin:0 auto 28px;font-size:16px}.landing-cta-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.landing-app-badge{background:var(--landing-ink);color:#fff;border-radius:10px;padding:12px 20px;font-weight:600}.landing-primary-button{border:2px solid var(--landing-ink);color:var(--landing-ink);cursor:pointer;background:0 0;border-radius:10px;padding:10px 20px;font-size:15px;font-weight:600}.stamp-decoration{pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute}.stamp-visited{border:3px dashed var(--landing-accent);color:var(--landing-accent);opacity:.7;width:92px;height:92px;font-size:13px;top:34px;right:6%;transform:rotate(14deg)}.stamp-date{color:#176b5b;opacity:.4;border:4px double #176b5b;width:84px;height:84px;font-size:12px;bottom:-20px;left:4%;transform:rotate(-12deg)}.landing-section{padding:56px 24px}.landing-section.alt{background:var(--landing-paper)}.landing-eyebrow{color:var(--landing-accent);letter-spacing:1px;text-align:center;margin:0;font-size:12px;font-weight:700}.landing-section h2,.landing-footer-cta h2{text-align:center;margin:8px 0 30px;font-size:26px;font-weight:800}.landing-steps{gap:16px;max-width:820px;margin:0 auto;display:flex}.landing-step{border:1px solid var(--landing-card-border);text-align:center;background:#fff;border-radius:12px;flex:1;padding:22px 16px}.landing-step h3,.landing-feature h3{margin:0 0 6px;font-size:16px}.landing-step p,.landing-feature p{color:var(--landing-ink-soft);margin:0;font-size:14px}.landing-step-icon{border:2.5px dashed var(--landing-accent);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 12px;font-size:22px;display:flex}.landing-step:nth-child(2) .landing-step-icon{border-color:#176b5b}.landing-step:nth-child(3) .landing-step-icon{border-color:#b8860b}.landing-features{grid-template-columns:1fr 1fr;gap:12px;max-width:680px;margin:0 auto;display:grid}.landing-feature{text-align:left;background:#fff;border-radius:12px;gap:12px;padding:18px;display:flex}.landing-feature-icon{font-size:22px}.landing-footer-cta{background:var(--landing-ink);text-align:center;padding:56px 24px;position:relative;overflow:hidden}.landing-footer-cta h2{color:#fff;margin-bottom:10px}.landing-footer-cta p{color:#cbbfa8;margin:0 0 22px}.landing-footer-cta .landing-primary-button{background:var(--landing-accent);color:#fff;border:none}.landing-copyright{color:#8d8271;margin-top:30px;font-size:12px}@media (width<=640px){.landing-hero h1{font-size:32px}.stamp-decoration{display:none}.landing-steps{flex-direction:column}.landing-features{grid-template-columns:1fr}}
