/* ============================================================
   ローカルモッズ 共有フィードバックウィジェット スタイル
   ------------------------------------------------------------
   各ツール（/child-support/ 等）から /feedback.css として読み込む。
   全クラスを .lmfb- で接頭し、ツール側スタイルと衝突しないようにする。
   インライン <style> ではなく外部CSSにすることで、将来 style-src 'self'
   のような厳格な CSP を付けても動作する。
   ============================================================ */
.lmfb-hidden { display: none !important; }

/* 既定のフッタートリガー（[data-lmfb-trigger] が無い場合のフォールバック） */
.lmfb-footer { text-align: center; margin: 24px 0 16px; }
.lmfb-trigger {
  background: none; border: none; cursor: pointer; font: inherit; font-size: 12px;
  color: #64748b; text-decoration: underline; padding: 6px 10px; border-radius: 6px;
}
.lmfb-trigger:hover { color: #334155; }

/* オーバーレイ＋モーダル */
.lmfb-overlay {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px; background: rgba(0, 0, 0, 0.5);
  font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.lmfb-modal {
  background: #fff; color: #1e293b; width: 100%; max-width: 30rem;
  max-height: 90vh; overflow-y: auto; border-radius: 16px; padding: 20px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); border: 1px solid #e2e8f0;
  box-sizing: border-box;
}
.lmfb-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.lmfb-title { font-size: 16px; font-weight: 700; color: #1e293b; margin: 0; }
.lmfb-close {
  background: none; border: none; cursor: pointer; font-size: 22px; line-height: 1;
  color: #94a3b8; width: 32px; height: 32px; border-radius: 999px; flex-shrink: 0;
}
.lmfb-close:hover { color: #334155; background: #f1f5f9; }

.lmfb-note {
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
  padding: 10px 12px; font-size: 11px; line-height: 1.6; color: #475569; margin-bottom: 16px;
}
.lmfb-note p { margin: 0 0 4px; }
.lmfb-note p:last-child { margin-bottom: 0; }
.lmfb-note strong { color: #334155; }

.lmfb-field { margin-bottom: 12px; }
.lmfb-label { display: block; font-size: 12px; font-weight: 700; color: #334155; margin-bottom: 4px; }
.lmfb-select, .lmfb-textarea {
  width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 8px;
  padding: 8px 12px; font: inherit; font-size: 14px; color: #1e293b; background: #fff;
}
.lmfb-textarea { resize: vertical; min-height: 96px; }
.lmfb-select:focus, .lmfb-textarea:focus { outline: 2px solid #94a3b8; outline-offset: 0; border-color: #94a3b8; }
.lmfb-counter { text-align: right; font-size: 10px; color: #94a3b8; margin: 2px 0 0; }

/* ハニーポット（人間には不可視・支援技術からも隠す） */
.lmfb-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.lmfb-error { font-size: 12px; color: #dc2626; margin: 0 0 8px; }

.lmfb-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.lmfb-btn { font: inherit; font-size: 14px; font-weight: 700; padding: 8px 16px; border-radius: 8px; cursor: pointer; border: none; }
.lmfb-btn-secondary { color: #475569; background: #f1f5f9; }
.lmfb-btn-secondary:hover { background: #e2e8f0; }
.lmfb-btn-primary { color: #fff; background: #334155; }
.lmfb-btn-primary:hover { background: #1e293b; }
.lmfb-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }

.lmfb-success { text-align: center; padding: 16px 0; }
.lmfb-success-title { font-size: 14px; font-weight: 700; color: #334155; margin: 0 0 4px; }
.lmfb-success-sub { font-size: 12px; color: #64748b; margin: 0 0 16px; }
