/* R-FLOWER マイページ v1.4.0（モックアップ準拠） */
:root{
  --rf47-pink:#ec4c79;
  --rf47-pink-deep:#d63a68;
  --rf47-pink-bg:#fdeef3;
  --rf47-soft:#fff5f8;
  --rf47-border:#f3b2c6;
  --rf47-yellow-bg:#fff8e6;
  --rf47-yellow-bd:#f0d48a;
  --rf47-orange:#e8930c;
  --rf47-mint-bg:#edfaf1;
  --rf47-mint-bd:#a8dfba;
  --rf47-green:#1f9d55;
  --rf47-line-green:#9ee45f;
  --rf47-send-green:#35c04d;
  --rf47-blue:#1f6fe0;
  --rf47-purple:#8a5cd6;
  --rf47-text:#222;
}
body.rf47-page .rf47-layout{
  width:min(1220px,96%)!important;
  margin:20px auto 32px!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif!important;
  color:var(--rf47-text)!important;
}
body.rf47-page .rf47-main{
  display:grid!important;
  grid-template-columns:minmax(360px,46%) minmax(470px,54%)!important;
  gap:24px!important;
  align-items:start!important;
}
body.rf47-page .rf47-left{min-width:0!important;}

/* ---- ページタイトル ---- */
body.rf47-page .rf47-page-title{
  display:flex!important;align-items:flex-end!important;
  justify-content:space-between!important;gap:15px!important;
  margin:0 0 16px!important;
}
body.rf47-page .rf47-page-title span{
  display:block!important;color:var(--rf47-pink)!important;
  font-size:10px!important;letter-spacing:.16em!important;font-weight:800!important;
}
body.rf47-page .rf47-page-title h1{
  margin:3px 0 0!important;font-size:30px!important;line-height:1.2!important;
  padding-bottom:6px!important;
  border-bottom:3px solid var(--rf47-pink)!important;
  display:inline-block!important;
}
body.rf47-page .rf47-page-title p{margin:0!important;font-size:13px!important;color:#555!important;}

/* ---- メニューカード（2列） ---- */
body.rf47-page .rf47-menu{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
body.rf47-page .rf47-card{
  position:relative!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  min-height:118px!important;padding:14px 9px 12px!important;box-sizing:border-box!important;
  background:#fff!important;
  border:1.5px solid var(--rf47-border)!important;border-radius:14px!important;
  text-decoration:none!important;color:var(--rf47-text)!important;
  transition:box-shadow .15s ease, transform .15s ease!important;
}
body.rf47-page .rf47-card:hover{
  box-shadow:0 4px 14px rgba(236,76,121,.18)!important;
  transform:translateY(-1px)!important;
}
body.rf47-page .rf47-card-icon{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:44px!important;height:44px!important;margin-bottom:8px!important;
  background:var(--rf47-pink-bg)!important;color:var(--rf47-pink)!important;
  border-radius:50%!important;font-size:19px!important;line-height:1!important;
}
body.rf47-page .rf47-card strong{font-size:14px!important;font-weight:700!important;}
body.rf47-page .rf47-card small{margin-top:3px!important;font-size:11px!important;color:#777!important;text-align:center!important;}
body.rf47-page .rf47-card .rf47-badge{
  position:absolute!important;top:8px!important;right:8px!important;
  background:#e6003d!important;color:#fff!important;
  font-size:10px!important;font-weight:800!important;letter-spacing:.06em!important;
  padding:2px 8px!important;border-radius:999px!important;line-height:1.5!important;
}
body.rf47-page .rf47-card.is-work{background:var(--rf47-yellow-bg)!important;border-color:var(--rf47-yellow-bd)!important;}
body.rf47-page .rf47-card.is-work .rf47-card-icon{background:#fdeccb!important;color:var(--rf47-orange)!important;}
body.rf47-page .rf47-card.is-work small{color:var(--rf47-orange)!important;font-weight:700!important;}
body.rf47-page .rf47-card.is-panel{background:var(--rf47-mint-bg)!important;border-color:var(--rf47-mint-bd)!important;}
body.rf47-page .rf47-card.is-panel .rf47-card-icon{background:#d9f3e2!important;color:var(--rf47-green)!important;}
body.rf47-page .rf47-card.is-panel small{color:var(--rf47-green)!important;font-weight:700!important;}
body.rf47-page .rf47-menu-note{
  margin:12px 2px 18px!important;font-size:12px!important;line-height:1.8!important;
  color:#666!important;text-align:center!important;
}

/* ---- 会員情報・ポイント ---- */
body.rf47-page .rf47-member{
  background:var(--rf47-pink-bg)!important;
  border:1.5px solid var(--rf47-border)!important;border-radius:14px!important;
  padding:16px 18px!important;margin:0 0 14px!important;
}
body.rf47-page .rf47-member h2{
  margin:0 0 12px!important;font-size:14px!important;font-weight:800!important;
  color:var(--rf47-pink)!important;letter-spacing:.04em!important;
}
body.rf47-page .rf47-member-main{
  display:flex!important;align-items:center!important;gap:13px!important;flex-wrap:wrap!important;
}
body.rf47-page .rf47-rank-icon{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:58px!important;height:58px!important;flex:none!important;
  background:#fff!important;border:2px solid var(--rf47-border)!important;
  border-radius:50%!important;font-size:26px!important;
}
body.rf47-page .rf47-rank{flex:1!important;min-width:130px!important;}
body.rf47-page .rf47-rank small{display:block!important;font-size:10px!important;color:#888!important;}
body.rf47-page .rf47-rank strong{display:block!important;font-size:17px!important;font-weight:800!important;}
body.rf47-page .rf47-rank span{display:block!important;font-size:11px!important;color:#777!important;}
body.rf47-page .rf47-points{text-align:right!important;}
body.rf47-page .rf47-points small{display:block!important;font-size:11px!important;color:#777!important;}
body.rf47-page .rf47-points b{
  font-size:30px!important;font-weight:800!important;color:var(--rf47-pink)!important;line-height:1.1!important;
}
body.rf47-page .rf47-points span{font-size:13px!important;color:var(--rf47-pink)!important;font-weight:700!important;margin-left:2px!important;}
body.rf47-page .rf47-points-history{
  display:inline-block!important;margin-top:6px!important;padding:4px 13px!important;
  font-size:11px!important;font-weight:700!important;color:var(--rf47-pink)!important;
  background:#fff!important;border:1.5px solid var(--rf47-border)!important;
  border-radius:999px!important;text-decoration:none!important;
}
body.rf47-page .rf47-points-history:hover{background:var(--rf47-soft)!important;}
body.rf47-page .rf47-counts{
  display:grid!important;grid-template-columns:repeat(4,1fr)!important;
  gap:6px!important;margin-top:14px!important;padding-top:12px!important;
  border-top:1px solid var(--rf47-border)!important;
}
body.rf47-page .rf47-counts div{text-align:center!important;}
body.rf47-page .rf47-counts span{display:block!important;font-size:13px!important;color:var(--rf47-pink)!important;}
body.rf47-page .rf47-counts b{display:block!important;font-size:17px!important;font-weight:800!important;}
body.rf47-page .rf47-counts small{display:block!important;font-size:10px!important;color:#777!important;}

/* ---- プライバシー保護（青） ---- */
body.rf47-page .rf47-privacy{
  display:flex!important;gap:13px!important;align-items:flex-start!important;
  background:linear-gradient(135deg,#1d74ec,#1553c4)!important;
  color:#fff!important;border-radius:14px!important;
  padding:15px 18px!important;margin:0 0 14px!important;
}
body.rf47-page .rf47-privacy .rf47-shield{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:40px!important;height:40px!important;flex:none!important;
  background:rgba(255,255,255,.18)!important;border-radius:50%!important;font-size:18px!important;
}
body.rf47-page .rf47-privacy strong{display:block!important;font-size:13px!important;font-weight:800!important;color:#fff!important;}
body.rf47-page .rf47-privacy p{margin:4px 0 0!important;font-size:11.5px!important;line-height:1.7!important;color:#e8f0ff!important;}
body.rf47-page .rf47-privacy .rf47-status{
  display:block!important;margin-top:7px!important;font-size:12px!important;font-weight:800!important;color:#fff!important;
}

/* ---- LINE連携 ---- */
body.rf47-page .rf47-line{
  display:flex!important;align-items:center!important;gap:12px!important;
  background:#f2fbe9!important;border:1.5px solid #bfe3a0!important;
  border-radius:14px!important;padding:12px 15px!important;margin:0 0 6px!important;
}
body.rf47-page .rf47-line-logo{
  flex:none!important;background:#06c755!important;color:#fff!important;
  font-size:11px!important;font-weight:800!important;
  padding:9px 10px!important;border-radius:10px!important;
}
body.rf47-page .rf47-line strong{display:block!important;font-size:13px!important;}
body.rf47-page .rf47-line p{margin:2px 0 0!important;font-size:11px!important;color:#5a7c47!important;line-height:1.6!important;}
body.rf47-page .rf47-line a{
  flex:none!important;margin-left:auto!important;background:#06c755!important;color:#fff!important;
  font-size:12px!important;font-weight:700!important;text-decoration:none!important;
  padding:9px 14px!important;border-radius:999px!important;white-space:nowrap!important;
}

/* ---- チャット（LINE風） ---- */
body.rf47-page .rf47-chat{
  display:flex!important;flex-direction:column!important;
  border:1px solid #dfe6ee!important;border-radius:16px!important;overflow:hidden!important;
  background:#fff!important;box-shadow:0 6px 22px rgba(40,70,110,.10)!important;
  min-height:560px!important;
}
body.rf47-page .rf47-chat-header{
  display:flex!important;align-items:center!important;gap:11px!important;
  padding:13px 16px!important;background:#fff!important;border-bottom:1px solid #eef1f5!important;
}
body.rf47-page .rf47-logo{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:40px!important;height:40px!important;flex:none!important;
  border:1.5px solid #ddd!important;border-radius:50%!important;
  font-weight:800!important;font-size:15px!important;color:#333!important;
}
body.rf47-page .rf47-chat-header strong{display:block!important;font-size:15px!important;}
body.rf47-page .rf47-chat-header small{display:block!important;font-size:11px!important;color:#888!important;}
body.rf47-page .rf47-chat-header i{
  margin-left:auto!important;font-style:normal!important;font-size:12px!important;color:#9aa4b0!important;letter-spacing:.2em!important;
}
body.rf47-page .rf47-stage{
  flex:1!important;overflow-y:auto!important;max-height:520px!important;
  padding:16px 15px 12px!important;
  background:
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.55) 0 34px, transparent 35px),
    radial-gradient(circle at 78% 12%, rgba(255,255,255,.45) 0 26px, transparent 27px),
    radial-gradient(circle at 62% 58%, rgba(255,255,255,.35) 0 30px, transparent 31px),
    linear-gradient(180deg,#c3e2f8 0%,#a9d3f4 60%,#9ccbf1 100%)!important;
}
body.rf47-page .rf47-notice{
  display:block!important;width:fit-content!important;max-width:88%!important;
  margin:0 auto 14px!important;padding:7px 16px!important;
  background:#5b6d8f!important;color:#fff!important;
  font-size:11.5px!important;border-radius:999px!important;text-align:center!important;
}
body.rf47-page .rf47-date{
  width:fit-content!important;margin:0 auto 12px!important;padding:3px 13px!important;
  background:rgba(70,90,120,.35)!important;color:#fff!important;
  font-size:10.5px!important;border-radius:999px!important;
}
body.rf47-page .rf47-row{display:flex!important;gap:8px!important;margin:0 0 13px!important;align-items:flex-end!important;}
body.rf47-page .rf47-row.is-user{justify-content:flex-end!important;}
body.rf47-page .rf47-avatar{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:34px!important;height:34px!important;flex:none!important;
  background:#fff!important;border:1px solid #d7dee8!important;border-radius:50%!important;
  font-size:12px!important;font-weight:800!important;color:#444!important;
}
body.rf47-page .rf47-bubble{
  max-width:76%!important;padding:10px 13px!important;
  font-size:13px!important;line-height:1.75!important;
  border-radius:14px!important;box-shadow:0 1px 2px rgba(30,60,90,.12)!important;
  word-break:break-word!important;
}
body.rf47-page .rf47-row.is-staff .rf47-bubble{background:#fff!important;color:#222!important;border-top-left-radius:4px!important;}
body.rf47-page .rf47-row.is-user .rf47-bubble{background:var(--rf47-line-green)!important;color:#173a06!important;border-top-right-radius:4px!important;}
body.rf47-page .rf47-composer{
  display:flex!important;align-items:center!important;gap:9px!important;
  padding:11px 13px!important;background:#fff!important;border-top:1px solid #eef1f5!important;
}
body.rf47-page .rf47-file{
  display:flex!important;flex-direction:row!important;align-items:center!important;gap:5px!important;
  flex:none!important;cursor:pointer!important;
  background:#f2f5f9!important;border:1px solid #dde4ec!important;
  padding:8px 12px!important;border-radius:11px!important;
}
body.rf47-page .rf47-file b{font-size:15px!important;color:#5a6b80!important;font-weight:700!important;line-height:1!important;}
body.rf47-page .rf47-file small{font-size:11px!important;color:#5a6b80!important;}
body.rf47-page .rf47-file input[type="file"]{width:1px!important;height:1px!important;opacity:0!important;position:absolute!important;}
body.rf47-page .rf47-composer textarea{
  flex:1!important;min-height:40px!important;max-height:110px!important;resize:none!important;
  border:1px solid #dde4ec!important;border-radius:11px!important;
  padding:9px 12px!important;font-size:13px!important;box-sizing:border-box!important;
  background:#fbfcfe!important;
}
body.rf47-page .rf47-composer input[type="submit"],
body.rf47-page .rf47-composer button[type="submit"]{
  flex:none!important;background:var(--rf47-send-green)!important;color:#fff!important;
  border:none!important;border-radius:11px!important;cursor:pointer!important;
  font-size:13px!important;font-weight:800!important;padding:11px 20px!important;
}
body.rf47-page .rf47-chat-launch{
  display:flex!important;align-items:center!important;gap:9px!important;
  padding:11px 13px!important;background:#fff!important;border-top:1px solid #eef1f5!important;
}
body.rf47-page .rf47-chat-launch span{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:38px!important;height:38px!important;flex:none!important;
  background:#f2f5f9!important;border:1px solid #dde4ec!important;border-radius:11px!important;
  color:#5a6b80!important;font-size:16px!important;
}
body.rf47-page .rf47-chat-launch a{
  flex:1!important;color:#98a4b3!important;font-size:13px!important;text-decoration:none!important;
  border:1px solid #dde4ec!important;border-radius:11px!important;padding:10px 12px!important;background:#fbfcfe!important;
}
body.rf47-page .rf47-chat-launch a.send{
  flex:none!important;background:var(--rf47-send-green)!important;color:#fff!important;
  font-weight:800!important;border:none!important;text-align:center!important;padding:11px 20px!important;
}
body.rf47-page .rf47-chat-note{
  margin:9px 4px 0!important;text-align:center!important;font-size:11px!important;color:#8a94a2!important;line-height:1.8!important;
}

/* ---- 下段：特典カード ---- */
body.rf47-page .rf47-benefits{
  display:grid!important;grid-template-columns:repeat(4,1fr)!important;
  gap:13px!important;margin-top:26px!important;
}
body.rf47-page .rf47-benefits article{
  display:flex!important;flex-direction:column!important;
  background:#fff!important;border:1.5px solid #f0dbe3!important;border-radius:14px!important;
  padding:16px 15px 14px!important;
}
body.rf47-page .rf47-benefits article>span{font-size:26px!important;line-height:1!important;}
body.rf47-page .rf47-benefits strong{
  display:block!important;margin-top:9px!important;
  font-size:13.5px!important;font-weight:800!important;color:var(--rf47-pink)!important;
}
body.rf47-page .rf47-benefits p{
  margin:6px 0 12px!important;font-size:11.5px!important;line-height:1.8!important;color:#666!important;flex:1!important;
}
body.rf47-page .rf47-benefits a{
  display:block!important;text-align:center!important;text-decoration:none!important;
  color:#fff!important;font-size:12px!important;font-weight:800!important;
  padding:10px 8px!important;border-radius:999px!important;
}
body.rf47-page .rf47-benefits .rf47-btn-work{background:var(--rf47-pink)!important;}
body.rf47-page .rf47-benefits .rf47-btn-panel{background:#1d7a4f!important;}
body.rf47-page .rf47-benefits .rf47-btn-point{background:#f38bab!important;}
body.rf47-page .rf47-benefits .rf47-btn-rank{background:var(--rf47-purple)!important;}

/* ---- 旧コンテンツの退避 ---- */
body.rf47-page .rf47-old-hidden{display:none!important;}

/* ---- レスポンシブ ---- */
@media (max-width:980px){
  body.rf47-page .rf47-main{grid-template-columns:1fr!important;}
  body.rf47-page .rf47-benefits{grid-template-columns:repeat(2,1fr)!important;}
}
@media (max-width:560px){
  body.rf47-page .rf47-menu{gap:8px!important;}
  body.rf47-page .rf47-card{min-height:104px!important;}
  body.rf47-page .rf47-benefits{grid-template-columns:1fr!important;}
  body.rf47-page .rf47-points b{font-size:26px!important;}
  body.rf47-page .rf47-counts b{font-size:15px!important;}
}
@media (prefers-reduced-motion:reduce){
  body.rf47-page .rf47-card{transition:none!important;}
}
