.park-entry{display:flex;width:100%;text-align:left;align-items:center;justify-content:space-between;gap:12px;border:1px solid #64543d;border-radius:14px;padding:14px 16px;margin:0 0 10px;min-height:82px;background:linear-gradient(90deg,#101b26f0,#17212db8),url('/images/parking-cafe-meet-v3.webp') center 8%/cover;color:#fff}
.park-entry>span{display:grid;gap:4px;min-width:0}.park-entry strong{font-size:1.375rem;font-weight:800;line-height:1.2;letter-spacing:.025em;color:#f4e5ce}.park-entry small{font-size:.8125rem;font-weight:400;line-height:1.45;color:#c7d0d7;word-break:keep-all}.park-entry b{font-size:.875rem;font-weight:600;white-space:nowrap;color:#e7c894;flex-shrink:0}
@media(max-width:360px){.park-entry{padding:12px;gap:8px}.park-entry strong{font-size:1.25rem}}
/* WebKit may sample the underlying page behind its translucent keyboard.
   Keep the inert page hidden until the full-screen parking dialog closes. */
.parking-open{overflow:hidden;background:#101923}.parking-open>main,.parking-open>.bottom-nav{visibility:hidden}
html dialog.park-dialog{position:fixed;inset:0;width:100%;height:var(--park-screen-height,100lvh);max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#101923;color:#f1f4f7;overflow:hidden;box-sizing:border-box}
.park-viewport{position:relative;top:var(--park-viewport-top,0px);display:flex;flex-direction:column;flex:none;width:100%;height:var(--park-viewport-height,100dvh);min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#101923}
.park-dialog *{box-sizing:border-box}.park-dialog[open]{display:flex;flex-direction:column}.park-dialog button{font-family:inherit;cursor:pointer}
.park-dialog .park-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));margin:0;gap:10px;flex-shrink:0;background:#101923;min-height:66px;box-shadow:none}
.park-head small{font-size:11px;letter-spacing:1.5px;color:#d5b583}.park-head h2{font-size:18px;line-height:1.3;margin:4px 0 0;color:#fff}.park-head h2 span{font-size:12px;color:#b6c4cf;margin-left:5px;font-weight:400}.park-head-actions{display:flex;gap:6px;flex-shrink:0}
.park-head button{min-height:42px;margin:0;font-size:13px;border:1px solid #41515d;border-radius:12px;padding:8px 10px;background:transparent;color:#dbe4e9;white-space:nowrap}.park-head [data-find]{border-color:#796344;color:#f0d2a3}
.park-hint{flex:none;margin:0;padding:7px 12px 9px;text-align:center;font-size:12px;line-height:1.4;color:#c5cfd8;border-bottom:1px solid #ffffff10}
.park-world{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#151d25;scrollbar-width:thin}
.park-stage{width:100%;max-width:650px;aspect-ratio:1000/1900;margin:0 auto;position:relative;isolation:isolate;background:#252b32 url('/images/parking-cafe-meet-v3.webp') center/100% 100% no-repeat;touch-action:pan-y;outline-offset:-3px;user-select:none;-webkit-user-select:none}
.park-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.park-lines polygon{fill:none;stroke:#dbd5c5;stroke-opacity:.55;stroke-width:4;stroke-linejoin:round}
.park-stopper{position:absolute;transform:translate(-50%,-50%);height:auto;pointer-events:none;z-index:1;filter:brightness(.82)}
.park-cars{pointer-events:none}.park-car{position:absolute;transform:translate(-50%,-94.285714%);width:32%;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:white;transition:left .3s ease-out,top .3s ease-out;display:block;min-height:0;overflow:visible;pointer-events:auto;touch-action:pan-y;isolation:isolate}
.park-sprite{display:block;width:100%;aspect-ratio:10/7;pointer-events:none}.park-sprite canvas{display:block;width:100%;height:100%;pointer-events:none}
.park-car strong{position:absolute;top:94.285714%;left:50%;transform:translateX(-50%);margin-top:4px;font-size:12px;line-height:1.3;white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis;background:#101923ed;border:1px solid #ffffff25;border-radius:7px;padding:3px 6px;font-weight:500}
.park-car.is-me strong{background:#473923;border-color:#d6b276;color:#ffe6b6}.park-car:focus-visible{outline:2px solid #e3be87;outline-offset:2px;border-radius:10px}
.park-car-fallback{height:100%;display:grid;place-items:center;font-size:clamp(36px,10vw,76px);line-height:1;pointer-events:none}
.park-bubble{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:min(145px,125%);max-height:84px;overflow:hidden;white-space:normal;overflow-wrap:anywhere;text-align:left;line-height:1.4;background:#fffcf3;color:#26323a;border-radius:12px 12px 12px 2px;padding:7px 9px;box-shadow:0 3px 12px #0004;font-size:12px;pointer-events:none;z-index:1}.park-bubble[hidden]{display:none}
.park-bottom{flex-shrink:0;width:100%;max-width:650px;align-self:center;padding:8px 14px max(12px,env(safe-area-inset-bottom));background:#101923;border-top:1px solid #ffffff12}
.park-status{margin:0 0 6px;font-size:12px;line-height:1.5;color:#adbdc9;min-height:18px;white-space:normal;overflow-wrap:anywhere}.park-status button{color:#f3ce8c;background:transparent;border:0;text-decoration:underline}
.park-history{border-top:1px solid #283a47}.park-history summary{font-size:14px;padding:8px 2px;cursor:pointer;color:#c8d4de}.park-history summary span{font-size:12px;color:#91a4b2;float:right}.park-messages{max-height:110px;overflow:auto;overscroll-behavior:contain;font-size:14px;padding-bottom:8px}
.park-message{display:flex;gap:8px;margin:8px 0;align-items:baseline}.park-message strong{flex:0 0 80px;overflow:hidden;text-overflow:ellipsis;color:#e6cba3;font-size:12px}.park-message span{overflow-wrap:anywhere;min-width:0;flex:1}.park-message button{font-size:12px;color:#a5b6c3;border:0;background:transparent}
.park-dialog .park-chat{display:flex;gap:8px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}.park-chat input{min-width:0;flex:1;width:0;margin:0;border:1px solid #405363;border-radius:12px;background:#1b2b38;color:#fff;padding:11px 12px;font-family:inherit;font-size:16px;min-height:44px}.park-chat button{margin:0;border:0;border-radius:12px;background:#e3be87;color:#222b34;padding:0 14px;white-space:nowrap;font-size:14px;font-weight:700}.park-chat button:disabled{opacity:.5}
.park-profile img{max-width:100%;width:250px;display:block;margin:auto}.park-dialog::backdrop{background:#101923}
@media(min-width:750px){.park-dialog .park-head{padding-inline:max(20px,calc((100vw - 650px)/2))}}@media(max-width:360px){.park-head h2{font-size:16px}.park-head button{padding-inline:8px}.park-car strong{font-size:11px}}@media(prefers-reduced-motion:reduce){.park-car{transition:none}}

.park-message time{display:block;margin-top:3px;font-size:10px;line-height:1.3;font-weight:400;white-space:normal;color:#91a4b2}.park-history-nav{display:flex;justify-content:space-between;gap:8px}.park-history-nav button{border:0;background:transparent;color:#e6cba3;font-size:12px;padding:6px 2px;margin:0 0 4px;min-height:32px}.park-history-nav button:disabled{opacity:.5}.park-history-nav button[hidden]{display:none}
/* One existing subtitle line; no change to banner background, title or entry. */
.park-entry>span{flex:1;overflow:hidden}
.park-entry>span>small{min-width:0}
.park-entry parking-preview{display:block;height:1.45em;line-height:1.45;overflow:hidden;min-width:0}
.park-preview-line{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

.park-preview-line.has-message::before{content:'';display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#4ade80;vertical-align:middle}

.park-head [data-attendance]{color:#8ac1ff;border-color:#547a9e;white-space:nowrap}.park-head [data-attendance]:disabled{opacity:.7}

.park-reward-pop{position:absolute;z-index:20;inset:40% auto auto 50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;min-width:180px;padding:24px 30px;background:rgba(18,32,44,.97);border:1px solid #568cc2;border-radius:22px;color:#eaf4ff;box-shadow:0 12px 48px #0008;pointer-events:none;animation:parkRewardPop 3s ease both}
.park-reward-pop img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 12px #83baff70)}
.park-reward-pop strong{font-size:28px;line-height:1.2;color:#8dc4ff}.park-reward-pop span{font-size:14px;color:#c6d6e3}
@keyframes parkRewardPop{0%{opacity:0;transform:translate(-50%,-40%) scale(.85)}12%,80%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(.98)}}
@media(prefers-reduced-motion:reduce){.park-reward-pop{animation:none}}

dialog.park-reward-pop{position:fixed;inset:0;margin:auto;transform:none;width:max-content;height:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;pointer-events:auto;animation:none}dialog.park-reward-pop::backdrop{background:#0006}dialog.park-reward-pop button{min-height:44px;width:100%;margin-top:8px;border:0;border-radius:10px;background:#3183ef;color:white;font-weight:700}

/* Keep the title and all three touch targets on one compact mobile row. */
@media(max-width:600px){.park-dialog .park-head{height:auto;flex-wrap:nowrap;gap:8px;padding-inline:12px}.park-head>div:first-child{min-width:0;flex:1}.park-head h2{font-size:16px;white-space:nowrap}.park-head h2 span{font-size:11px;margin-left:3px}.park-head-actions{display:flex;flex-wrap:nowrap;width:auto;gap:4px}.park-head button{min-width:44px;min-height:44px;font-size:12px;padding:8px 6px}.park-head-actions [data-attendance]{min-width:66px}}

@media(max-width:360px){.park-dialog .park-head{padding-inline:8px;gap:4px}.park-head h2{font-size:14px}.park-head small{font-size:10px;letter-spacing:1px}.park-head h2 span{font-size:10px;margin-left:2px}.park-head button{padding-inline:4px}}

/* JS measures the visible controls to leave room for the conversation and input. */
.park-messages{max-height:260px}
.park-keyboard .park-bottom{padding-bottom:12px}
.park-history-nav button{min-height:44px;min-width:44px}
.park-head button{min-height:44px}
.park-message button{min-height:44px;min-width:44px}
