: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}}
