.card-community { position: absolute; z-index: 2; top: 12px; left: 12px; padding: 7px 10px; border: 1px solid #ffffff30; border-radius: 999px; color: #fff1df; background: #12141be6; font: 600 12px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; white-space: nowrap; font-variant-numeric: tabular-nums; }
.place-community { position: fixed; z-index: 14; bottom: max(22px,env(safe-area-inset-bottom)); left: max(22px,env(safe-area-inset-left)); display: flex; gap: 4px; padding: 4px; border: 1px solid #ffffff38; border-radius: 999px; background: #171b28eb; box-shadow: 0 4px 20px #0003; backdrop-filter: blur(12px); font: 13px/1.4 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; }
.place-community button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 999px; padding: 9px 13px; background: transparent; color: #f3efe6; font: inherit; white-space: nowrap; cursor: pointer; }
.place-community svg { flex: 0 0 auto; }
.place-community .community-like[aria-pressed=true] svg { fill: currentColor; }
.place-community button[aria-pressed=true] { background: #63313c; color: #ffd3d9; }
.place-community button:disabled { opacity: .55; cursor: wait; }
.place-community button:hover { background: #ffffff14; }
.place-community :focus-visible,.footprints-dialog :focus-visible { outline: 2px solid #ffd493; outline-offset: 2px; }
.community-toast { position: fixed; z-index: 19; bottom: calc(var(--community-bottom,90px) + 64px); left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 36px); box-sizing: border-box; padding: 10px 16px; border-radius: 14px; background: #181c29f5; color: #fff0d3; font: 13px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; text-align: center; pointer-events: none; }
.community-toast:empty { display: none; }
.footprints-dialog { position: fixed; inset: 0; margin: auto; padding: 0; width: min(520px,calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); box-sizing: border-box; border: 1px solid #e1b87d55; border-radius: 24px; color: #f4eee4; background: #181d2b; box-shadow: 0 24px 90px #0008; font: 14px/1.6 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; text-shadow: none; text-align: left; overflow: hidden; }
.footprints-dialog[open] { display: flex; flex-direction: column; }
.footprints-dialog::backdrop { background: #060912b3; backdrop-filter: blur(4px); }
.footprints-dialog [hidden] { display: none !important; }
.footprints-dialog .footprints-header { position: static; flex: 0 0 auto; padding: 20px 64px 14px 22px; margin: 0; background: #202636; border-bottom: 1px solid #ffffff14; opacity: 1; transform: none; max-width: none; color: inherit; text-align: left; pointer-events: auto; }
.footprints-header h2 { margin: 0; font: 700 22px/1.3 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; color: #ffe0ad; }
.footprints-header p { margin: 5px 0 0; font-size: 13px; color: #c2c2d0; }
.footprints-dialog button { min-height: 44px; padding: 9px 14px; border-radius: 12px; border: 1px solid #ffffff30; color: #f4eee4; background: #2b3345; cursor: pointer; font: 600 13px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; letter-spacing: 0; white-space: normal; }
.footprints-dialog button:disabled { opacity: .55; cursor: wait; }
.footprints-dialog .footprints-close { position: absolute; right: 12px; top: 12px; padding: 0; width: 44px; height: 44px; background: transparent; border: 0; font-size: 28px; }
.footprints-scroll { overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 18px 22px max(20px,env(safe-area-inset-bottom)); }
.footprints-form { display: grid; gap: 7px; margin: 0; }
.footprints-form label { display: block; font-size: 12px; color: #d5d1ca; }
.footprints-form input,.footprints-form textarea { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; padding: 10px 12px; border: 1px solid #ffffff30; border-radius: 10px; color: #f4eee4; background: #101520; font: 16px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif; letter-spacing: 0; }
.footprints-form textarea { resize: vertical; min-height: 86px; max-height: 210px; }
.footprints-form input { min-height: 44px; }
.footprints-form small { font-size: 12px; color: #b7b9c7; }
.footprints-form-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.footprints-remaining { color: #aeb6c7; font-size: 12px; white-space: nowrap; }
.footprints-dialog .footprints-submit { background: #edb574; color: #2a1b0d; border-color: #edb574; }
.footprints-status { min-height: 1.5em; margin: 10px 0; color: #f2cc98; font-size: 12px; overflow-wrap: anywhere; }
.footprints-empty { padding: 22px 0; text-align: center; color: #c2c5d2; }
.footprints-list { list-style: none; margin: 0; padding: 0; }
.footprint { padding: 15px 0; border-top: 1px solid #ffffff18; }
.footprint-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.footprint-meta b { font-size: 13px; overflow-wrap: anywhere; }
.footprint-meta time { font-size: 11px; color: #aeb6c7; }
.footprints-dialog .footprint-delete { margin-left: auto; padding: 5px 10px; font-size: 12px; background: transparent; }
.footprint-message { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #eee8e0; line-height: 1.7; }
.footprints-more,.footprints-retry { width: 100%; margin-top: 12px; }
body.footprints-open { overflow: hidden; }
body[data-hud=off] .place-community,body[data-hud=off] .community-toast { display: none; }
@media (min-width: 701px) and (max-width: 1100px) {
  .place-community { bottom: var(--community-bottom,150px); left: 50%; transform: translateX(-50%); max-width: calc(100vw - 24px); }
  .place-community button { padding: 9px 12px; font-size: 12px; }
  body.community-ready .hint,body.community-ready .tip { bottom: calc(var(--community-bottom,150px) + 62px); }
}
@media (max-width: 700px) {
  .place-community { display: none; }
  #place-actions > .place-community { order: 1; position: static; display: flex; gap: 4px; flex: 0 0 auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; }
  #place-actions .place-community button { box-sizing: border-box; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid #ffffff4d; border-radius: 50%; background: #172130ed; color: #f6f3ee; }
  #place-actions .place-community button[aria-pressed=true] { background: #63313c; color: #ffd3d9; }
  #place-actions .community-label { display: none; }
  .footprints-dialog { inset: auto 0 0; margin: 0; width: 100%; max-height: calc(100dvh - 12px - env(safe-area-inset-top)); border-radius: 22px 22px 0 0; }
  .footprints-scroll { padding: 14px 18px max(20px,env(safe-area-inset-bottom)); }
  .footprints-dialog .footprints-header { padding: 17px 66px 12px 18px; }
}
@media (max-height: 480px) { .footprints-dialog { max-height: calc(100dvh - 12px); } }
