*{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}.guide-backdrop{position:absolute;inset:0;z-index:1100;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}.guide{background:#fff;border-radius:12px;padding:20px;max-width:360px;width:100%;box-shadow:0 4px 24px rgba(0,0,0,.25)}.guide h2{font-size:16px;margin-bottom:12px;color:#18aee2}.guide ol{list-style:none;counter-reset:step;gap:10px}.guide li,.guide ol{display:flex;flex-direction:column}.guide li{counter-increment:step;padding-left:34px;position:relative;font-size:13px;line-height:1.5}.guide li:before{content:counter(step);position:absolute;left:0;top:2px;width:24px;height:24px;border-radius:50%;background:#18aee2;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.guide li span,.guide-note{color:#666;font-size:11px}.guide-note{margin-top:12px;line-height:1.5}.guide button{margin-top:14px;width:100%;font:inherit;font-size:14px;padding:10px;border:none;border-radius:8px;background:#18aee2;color:#fff;cursor:pointer}.guide-open{position:absolute;top:12px;right:12px;z-index:1000;font:inherit;font-size:12px;padding:6px 12px;border:none;background:rgba(255,255,255,.92);color:#18aee2;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.2)}.guide-open,.sample-badge{border-radius:999px;font-weight:700}.sample-badge{display:inline-block;background:#f5a623;color:#fff;font-size:10px;padding:1px 8px;margin-right:6px}.pin-popup .empathy{display:block;margin-top:8px;font:inherit;font-size:12px;padding:6px 10px;border:1px solid #18aee2;border-radius:999px;background:#fff;color:#18aee2;cursor:pointer}.pin-popup .empathy:disabled{cursor:default;opacity:.6}.empathy-count{margin-left:6px;font-weight:700}.admin{padding:16px;max-width:1100px;margin:0 auto}.admin-header{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.admin-header h1{font-size:18px}.admin-tools{display:flex;align-items:center;gap:8px;margin-left:auto}.admin-tools button,.admin-tools select{font:inherit;font-size:13px;padding:6px 10px;border:1px solid #ccc;border-radius:6px;background:#fff;cursor:pointer}.admin-tools a{font-size:13px;color:#18aee2}.admin-error{color:#c0392b;font-size:13px;margin-bottom:8px}.admin-empty{color:#666;font-size:13px;padding:24px 0}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table td,.admin-table th{text-align:left;padding:8px;border-bottom:1px solid #eee;vertical-align:top;line-height:1.5}.admin-table th{font-size:12px;color:#666}.admin-table .nowrap,.admin-table th{white-space:nowrap}.admin-table tr.is-hidden td{color:#aaa;background:#fafafa}.admin-table button{font:inherit;font-size:12px;padding:4px 10px;border:1px solid #ccc;border-radius:6px;background:#fff;cursor:pointer}.admin-table a{color:#18aee2}