/* OSHITELL 登録フォーム（モーダル） */
.ofm-back{position:fixed;inset:0;z-index:120;display:none;align-items:flex-end;justify-content:center;
  background:rgba(22,22,31,.44);backdrop-filter:blur(3px);padding:0}
.ofm-back.on{display:flex}
.ofm{width:100%;max-width:520px;background:var(--card);border-radius:22px 22px 0 0;
  box-shadow:0 -18px 60px rgba(22,22,31,.28);max-height:92vh;display:flex;flex-direction:column;
  animation:ofmUp .22s ease}
@keyframes ofmUp{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media (min-width:900px){
  .ofm-back{align-items:center}
  .ofm{border-radius:22px;max-height:86vh}
}
.ofm-hd{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}
.ofm-title{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:18px;color:var(--ink)}
.ofm-x{border:none;background:transparent;font-size:24px;line-height:1;color:var(--ink-2);cursor:pointer;padding:2px 6px}
.ofm-tabs{display:flex;gap:6px;padding:0 20px 8px}
.ofm-tabs button{flex:1;padding:9px 0;border:1px solid var(--line);background:var(--bg);border-radius:11px;
  font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer}
.ofm-tabs button[aria-current="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ofm-form{overflow-y:auto;padding:6px 20px 4px}
.ofm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.ofm-row{display:flex;flex-direction:column;gap:6px;min-width:0}
.ofm-row.ofm-wide{grid-column:1 / -1}
.ofm-l{font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:.3px}
.ofm-l i{color:var(--oshi);font-style:normal}
.ofm input,.ofm select,.ofm textarea{width:100%;border:1px solid var(--line);border-radius:11px;
  padding:11px 12px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;box-sizing:border-box}
.ofm input:focus,.ofm select:focus,.ofm textarea:focus{outline:none;border-color:var(--oshi);
  box-shadow:0 0 0 3px var(--oshi-soft,rgba(255,61,119,.15))}
.ofm textarea{resize:vertical;min-height:44px}
.ofm-msg{min-height:18px;padding:2px 20px;font-size:12px;font-weight:700}
.ofm-msg.err{color:var(--oshi)}
.ofm-msg.ok{color:#1E9E63}
.ofm-foot{display:flex;gap:10px;padding:8px 20px 20px}
.ofm-cancel{flex:0 0 auto;padding:13px 18px;border:1px solid var(--line);background:var(--bg);
  border-radius:13px;font-weight:700;font-size:14px;color:var(--ink);cursor:pointer}
.ofm-save{flex:1;padding:13px 18px;border:none;border-radius:13px;background:var(--oshi);color:#fff;
  font-weight:800;font-size:14px;cursor:pointer}
.ofm-save:disabled{opacity:.6;cursor:default}

/* 写真アップロード欄 */
.ofm-img{display:flex;flex-direction:column;gap:10px}
.ofm-imgbtn{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  padding:10px 14px;border-radius:12px;border:1.5px dashed var(--line,#E4E2EC);
  background:#FBFAFD;color:var(--ink,#16161F);font-size:13px;font-weight:700;cursor:pointer;
  transition:border-color .15s,background .15s}
.ofm-imgbtn:hover{border-color:var(--oshi,#FF3D77);background:#fff}
.ofm-imgbtn svg{width:18px;height:18px;color:var(--oshi,#FF3D77)}
.ofm-imgprev:empty{display:none}
.ofm-imgprev img{max-width:100%;max-height:220px;border-radius:14px;display:block;
  border:1px solid var(--line,#E4E2EC);object-fit:cover}
.ofm-imgmsg{font-size:12px;color:var(--muted,#6B6B7B);font-family:'Space Mono',monospace}
.ofm-imgmsg.err{color:#B3234C}

/* ── 地名コンボ（geo picker） ── */
.ofm-geo.ogeo { position: relative; }
.ofm-geo .ogeo-in {
  width: 100%; box-sizing: border-box;
  padding: 10px 12px; border: 1px solid #e3e2ea; border-radius: 10px;
  font: inherit; background: #fff; color: var(--ink, #16161F);
}
.ofm-geo .ogeo-in:focus { outline: none; border-color: var(--oshi, #FF3D77); }
.ofm-geo .ogeo-list {
  display: none; position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px);
  background: #fff; border: 1px solid #e3e2ea; border-radius: 10px;
  box-shadow: 0 8px 24px rgba(22,22,31,.12); max-height: 220px; overflow-y: auto;
}
.ofm-geo .ogeo-list.on { display: block; }
.ofm-geo .ogeo-opt { padding: 9px 12px; cursor: pointer; font-size: 14px; }
.ofm-geo .ogeo-opt:hover, .ofm-geo .ogeo-opt.on { background: #f4f3f7; }

/* ── 地名カスケード（オンボーディング等の再利用） ── */
.ogeo-cascade { display: flex; gap: 8px; }
.ogeo-cascade select {
  flex: 1; min-width: 0; padding: 10px 12px;
  border: 1px solid #e3e2ea; border-radius: 10px; font: inherit; background: #fff;
}
.ogeo-cascade select:disabled { background: #f4f3f7; color: #9a99a6; }

/* ── 写真ウィジェット（最大5枚＋写真ごとコメント） ── */
.ofm-photos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; }
.ofm-photos-grid:empty { display: none; }
.ofm-photo { display: flex; flex-direction: column; gap: 6px; }
.ofm-photo-th {
  position: relative; width: 100%; aspect-ratio: 1/1; border-radius: 12px;
  background-size: cover; background-position: center; border: 1px solid var(--line,#E4E2EC);
}
.ofm-photo-del {
  position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border: none; cursor: pointer;
  border-radius: 50%; background: rgba(22,22,31,.62); color: #fff; font-size: 15px; line-height: 22px; padding: 0;
}
.ofm-photo-cm {
  width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 12px;
  border: 1px solid #e3e2ea; border-radius: 8px; background: #fff; color: var(--ink,#16161F);
}
.ofm-photo-cm:focus { outline: none; border-color: var(--oshi,#FF3D77); }
.ofm-photos-add {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; cursor: pointer;
  padding: 9px 14px; border: 1px dashed #cfced9; border-radius: 12px; color: var(--ink,#16161F);
  font-size: 13px; font-weight: 700; background: #fff;
}
.ofm-photos-add svg { width: 18px; height: 18px; }
.ofm-photos-msg { font-size: 12px; color: var(--muted,#6B6B7B); font-family: 'Space Mono', monospace; margin-top: 6px; }
.ofm-photos-msg.err { color: #B3234C; }
