/* 꽃배달 가맹지역 지도 (#fm-app 안에서만 적용) */
#fm-app { --fm-ink:#1f2937; --fm-muted:#6b7280; --fm-line:#e5e7eb; --fm-soft:#f8f9fb; --fm-brand:#e0457b; --fm-brand-d:#c42f64;
  --fm-full:#d1d5db; font-family:Pretendard,'Malgun Gothic',sans-serif; color:var(--fm-ink); max-width:1200px; margin:0 auto; padding:8px 12px 40px; box-sizing:border-box; }
#fm-app *, #fm-app *::before, #fm-app *::after { box-sizing:border-box; }
#fm-app .fm-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; margin:8px 0 14px; }
#fm-app .fm-head h2 { margin:0; font-size:24px; font-weight:800; letter-spacing:-.5px; }
#fm-app .fm-head p { margin:4px 0 0; color:var(--fm-muted); font-size:14px; }
#fm-app .fm-legend { display:flex; gap:12px; font-size:12.5px; color:var(--fm-muted); }
#fm-app .fm-legend span::before { content:""; display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:5px; vertical-align:-2px; background:var(--c); border:1px solid rgba(0,0,0,.08); }
#fm-app .fm-crumbs { display:flex; align-items:center; gap:6px; font-size:14px; margin:0 0 10px; min-height:32px; flex-wrap:wrap; }
#fm-app .fm-crumbs button { border:1px solid var(--fm-line); background:#fff; border-radius:999px; padding:5px 13px; font:inherit; cursor:pointer; color:var(--fm-ink); }
#fm-app .fm-crumbs button:hover { border-color:var(--fm-brand); color:var(--fm-brand); }
#fm-app .fm-crumbs span { font-weight:700; padding:5px 4px; }
#fm-app .fm-crumbs i { color:#c0c4cc; font-style:normal; }
#fm-app .fm-body { display:grid; grid-template-columns:minmax(0, 1.45fr) minmax(300px, 1fr); gap:16px; align-items:start; }
#fm-app .fm-map { position:relative; background:linear-gradient(180deg,#f3f7fb,#eef3f8); border:1px solid var(--fm-line); border-radius:16px; overflow:hidden; min-height:380px; }
#fm-app .fm-map svg { display:block; width:100%; height:auto; }
#fm-app.is-loading .fm-map::after { content:"지도를 불러오는 중…"; position:absolute; inset:0; display:grid; place-items:center; color:var(--fm-muted); font-size:14px; }
#fm-app .fm-shape { fill:#fff; stroke:#9aa5b5; stroke-width:.8; transition:fill .15s; }
#fm-app .fm-shape:hover { fill:#ffe1ea; }
#fm-app .fm-shape.is-full { fill:#eceef1; }
#fm-app .fm-click { cursor:pointer; }
#fm-app .fm-dong { stroke:none; transition:filter .15s, opacity .15s; }
#fm-app .fm-dong.is-none { fill:#f1f2f4; cursor:default; }
#fm-app .fm-dong.is-full { fill:var(--fm-full); }
#fm-app .fm-dong.is-hl { filter:brightness(.88) saturate(1.6); }
#fm-app .fm-border { fill:none; stroke:#4b5563; stroke-width:1.3; stroke-linejoin:round; pointer-events:none; }
#fm-app .fm-inner { fill:none; stroke:#7b8494; stroke-width:.6; stroke-dasharray:2 2.5; pointer-events:none; }
#fm-app .fm-labels text { font-size:11px; font-weight:600; fill:#1f2937; text-anchor:middle; dominant-baseline:middle; pointer-events:none;
  paint-order:stroke; stroke:rgba(255,255,255,.9); stroke-width:3px; stroke-linejoin:round; }
#fm-app .fm-tip { position:absolute; left:0; top:0; z-index:5; pointer-events:none; background:rgba(17,24,39,.94); color:#fff; font-size:12.5px; line-height:1.5;
  padding:7px 10px; border-radius:8px; max-width:260px; box-shadow:0 6px 18px rgba(0,0,0,.18); }
#fm-app .fm-tip .t { color:#fca5a5; margin-left:4px; }
#fm-app .fm-panel { background:#fff; border:1px solid var(--fm-line); border-radius:16px; padding:18px; max-height:780px; overflow:auto; }
#fm-app .fm-panel h3 { margin:0 0 6px; font-size:19px; font-weight:800; }
#fm-app .fm-help { margin:0 0 12px; color:var(--fm-muted); font-size:13.5px; line-height:1.55; }
#fm-app .fm-src { display:inline-block; margin-left:4px; color:var(--fm-brand); text-decoration:none; font-weight:600; }
#fm-app .fm-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:6px; }
#fm-app .fm-list button { width:100%; display:flex; justify-content:space-between; align-items:center; gap:6px; border:1px solid var(--fm-line); background:var(--fm-soft);
  border-radius:10px; padding:9px 11px; font:inherit; font-size:13.5px; cursor:pointer; text-align:left; color:var(--fm-ink); }
#fm-app .fm-list button:hover { border-color:var(--fm-brand); background:#fff5f8; }
#fm-app .fm-list em { font-style:normal; font-size:12px; color:var(--fm-muted); white-space:nowrap; }
#fm-app .fm-all { border:0; background:none; color:var(--fm-brand); font:inherit; font-size:13px; font-weight:600; padding:0; margin:0 0 10px; cursor:pointer; }
#fm-app .fm-cards { display:grid; gap:10px; }
#fm-app .fm-card { border:1px solid var(--fm-line); border-radius:12px; padding:12px 14px; transition:border-color .15s, box-shadow .15s; }
#fm-app .fm-card.is-hl { border-color:var(--fm-brand); box-shadow:0 0 0 3px rgba(224,69,123,.12); }
#fm-app .fm-card.is-full { background:var(--fm-soft); }
#fm-app .fm-card-h { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
#fm-app .fm-card-h b { font-size:15px; line-height:1.4; }
#fm-app .fm-pop { color:var(--fm-muted); font-size:12.5px; margin:2px 0 8px; }
#fm-app .fm-dongs { list-style:none; margin:0 0 10px; padding:0; font-size:12.5px; color:#4b5563; }
#fm-app .fm-dongs li { display:flex; justify-content:space-between; padding:2px 0; border-bottom:1px dashed #eef0f3; }
#fm-app .fm-dongs em { font-style:normal; color:var(--fm-muted); }
#fm-app .fm-dongs small { color:#b45309; font-size:11px; }
#fm-app .fm-apply { display:block; text-align:center; background:var(--fm-brand); color:#fff !important; text-decoration:none; font-weight:700; font-size:14px;
  padding:10px; border-radius:10px; transition:background .15s; }
#fm-app .fm-apply:hover { background:var(--fm-brand-d); }
#fm-app .fm-badge { display:inline-block; font-size:11.5px; font-weight:700; padding:2px 8px; border-radius:999px; background:#fef3c7; color:#92400e; white-space:nowrap; }
#fm-app .fm-badge.is-full { display:block; text-align:center; padding:9px; border-radius:10px; background:#e5e7eb; color:#4b5563; font-size:13.5px; }
@media (max-width:860px) {
  #fm-app .fm-body { grid-template-columns:1fr; }
  #fm-app .fm-panel { max-height:none; }
  #fm-app .fm-head h2 { font-size:20px; }
}
@media (max-width:420px) { #fm-app .fm-list { grid-template-columns:1fr; } }

/* 신청서 */
#fm-app .fm-form { max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--fm-line); border-radius:16px; padding:22px; }
#fm-app .fm-form h3 { margin:0 0 4px; font-size:20px; }
#fm-app .fm-sel { background:#fff5f8; border:1px solid #f9c7d8; border-radius:12px; padding:12px 14px; margin:14px 0 18px; font-size:14px; }
#fm-app .fm-sel b { font-size:16px; }
#fm-app .fm-row { margin:0 0 14px; }
#fm-app .fm-row label { display:block; font-size:13.5px; font-weight:700; margin:0 0 6px; }
#fm-app .fm-row label i { color:var(--fm-brand); font-style:normal; }
#fm-app .fm-row input[type=text], #fm-app .fm-row input[type=tel], #fm-app .fm-row input[type=email], #fm-app .fm-row textarea {
  width:100%; border:1px solid #d1d5db; border-radius:10px; padding:10px 12px; font:inherit; font-size:14.5px; }
#fm-app .fm-row textarea { min-height:110px; resize:vertical; }
#fm-app .fm-row input:focus, #fm-app .fm-row textarea:focus { outline:none; border-color:var(--fm-brand); box-shadow:0 0 0 3px rgba(224,69,123,.12); }
#fm-app .fm-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#fm-app .fm-row input.fm-readonly, #fm-app .fm-row input[readonly] { background:#f8f9fb; }
#fm-app .fm-addr input[type=text] { margin-top:8px; }
#fm-app .fm-addr .fm-zip { display:flex; gap:8px; }
#fm-app .fm-addr .fm-zip input { margin-top:0; max-width:160px; cursor:pointer; }
#fm-app .fm-addr #fm_addr1 { cursor:pointer; }
#fm-app .fm-zip-btn { border:1px solid var(--fm-brand); background:#fff; color:var(--fm-brand); font:inherit; font-weight:700; font-size:14px;
  padding:0 16px; border-radius:10px; cursor:pointer; white-space:nowrap; }
#fm-app .fm-zip-btn:hover { background:#fff5f8; }
#fm-app .fm-agree { background:var(--fm-soft); border-radius:10px; padding:12px; font-size:13px; color:#4b5563; line-height:1.6; }
#fm-app .fm-submit { width:100%; border:0; background:var(--fm-brand); color:#fff; font:inherit; font-weight:800; font-size:16px; padding:14px; border-radius:12px; cursor:pointer; }
#fm-app .fm-submit:hover { background:var(--fm-brand-d); }
#fm-app .fm-msg { border-radius:12px; padding:14px 16px; margin:0 0 14px; font-size:14px; line-height:1.6; }
#fm-app .fm-msg.err { background:#fdecec; color:#b42318; }
#fm-app .fm-msg.ok { background:#e9f7ef; color:#166534; }
#fm-app .fm-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
#fm-app .fm-actions a { flex:1; min-width:180px; text-align:center; text-decoration:none; font-weight:700; padding:12px; border-radius:12px; border:1px solid var(--fm-line); color:var(--fm-ink); }
#fm-app .fm-actions a.primary { background:var(--fm-brand); color:#fff; border-color:var(--fm-brand); }
@media (max-width:560px) { #fm-app .fm-grid2 { grid-template-columns:1fr; } }
