*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:Noto Sans JP,Hiragino Sans,Yu Gothic UI,sans-serif;color:#222}.app{display:flex;flex-direction:column;height:100dvh}.header{display:flex;align-items:baseline;gap:12px;padding:10px 16px;background:#18aee2;color:#fff}.header h1{font-size:18px}.header p{font-size:12px;opacity:.9}.header .about-link{margin-left:auto;color:#fff;font-size:12px;white-space:nowrap}.map-area{position:relative;flex:1 1}.map-area .leaflet-container{height:100%;width:100%}.legend{position:absolute;bottom:24px;left:12px;z-index:1000;background:rgba(255,255,255,.92);border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.8;box-shadow:0 1px 4px rgba(0,0,0,.2)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.post-form{display:flex;flex-direction:column;gap:8px;min-width:240px}.post-form select,.post-form textarea{font:inherit;font-size:13px;padding:6px;border:1px solid #ccc;border-radius:6px}.post-form textarea{resize:vertical;min-height:72px}.post-form button{font:inherit;font-size:14px;padding:8px;border:none;border-radius:6px;background:#18aee2;color:#fff;cursor:pointer}.post-form button:disabled{background:#9dd9f0;cursor:default}.post-form .error{color:#c0392b;font-size:12px}.post-form .note{color:#666;font-size:11px;line-height:1.5}.pin-popup{font-size:13px;line-height:1.6;max-width:240px}.pin-popup .cat{font-size:11px;font-weight:700}.pin-popup .date{font-size:11px;color:#888}.hint{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:1000;background:rgba(0,0,0,.65);color:#fff;font-size:12px;padding:6px 14px;border-radius:999px;pointer-events:none}