/* レンタルスペース収益シミュレーター：中央1カラム修正版 */

.rs-calc-root {
  background: #f5f7fb !important;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif !important;
  color: #111827 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding-bottom: 110px !important;
}

/* 全体幅 */
.rs-calc-pg {
  max-width: 900px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}

/* ファーストビュー */
.rs-calc-fv {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 70px 24px 90px !important;
  text-align: center !important;
  border-radius: 0 0 28px 28px !important;
  background: linear-gradient(135deg, #102044, #1d4ed8) !important;
}

.rs-calc-fv-h1 {
  font-size: clamp(30px, 5vw, 52px) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  color: #fff !important;
  margin: 20px 0 16px !important;
}

.rs-calc-fv-sub {
  color: rgba(255,255,255,.82) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
}

.rs-calc-fv-lead {
  max-width: 680px !important;
  margin: 24px auto 0 !important;
  color: rgba(255,255,255,.68) !important;
  font-size: 16px !important;
  line-height: 1.9 !important;
}

/* 診断カード */
.rs-calc-quick {
  max-width: 860px !important;
  margin: -55px auto 40px !important;
  transform: none !important;
}

.rs-calc-qcard {
  background: #fff !important;
  border-radius: 22px !important;
  padding: 32px !important;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .12) !important;
  display: grid !important;
  grid-template-columns: 220px 1fr !important;
  gap: 28px !important;
  align-items: center !important;
}

.rs-calc-qprofit {
  font-size: 44px !important;
  font-weight: 900 !important;
  color: #059669 !important;
}

/* レイアウトを1カラム化 */
.rs-calc-layout {
  display: block !important;
  max-width: 860px !important;
  margin: 0 auto !important;
}

.rs-calc-left,
.rs-calc-right {
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  display: block !important;
  position: static !important;
}

/* 右カラムの結果カードは非表示 */
.rs-calc-right .rs-calc-rc {
  display: none !important;
}

/* カード */
.rs-calc-card,
.rs-calc-detail,
.rs-calc-be,
.rs-calc-cta {
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto 28px !important;
  background: #fff !important;
  border-radius: 20px !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: 0 10px 30px rgba(15,23,42,.06) !important;
  overflow: hidden !important;
}

/* セクション見出し */
.rs-calc-sh {
  background: #f1f5f9 !important;
  padding: 20px 28px !important;
  border-bottom: 1px solid #e5e7eb !important;
}

.rs-calc-st {
  font-size: 18px !important;
  font-weight: 800 !important;
}

.rs-calc-si {
  width: 30px !important;
  height: 30px !important;
  border-radius: 9px !important;
  background: #2563eb !important;
  color: #fff !important;
}

/* カード中身 */
.rs-calc-sb {
  padding: 28px !important;
}

/* 入力欄 */
.rs-calc-fg {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px 24px !important;
}

.rs-calc-fw {
  grid-column: 1 / -1 !important;
}

.rs-calc-lbl {
  font-size: 15px !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
  color: #111827 !important;
}

.rs-calc-inp {
  width: 100% !important;
  height: 58px !important;
  border-radius: 14px !important;
  border: 1px solid #d1d5db !important;
  background: #f9fafb !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  padding: 0 46px 0 18px !important;
  box-shadow: none !important;
}

.rs-calc-inp:focus {
  background: #fff !important;
  border-color: #2563eb !important;
  box-shadow: 0 0 0 4px rgba(37,99,235,.12) !important;
  outline: none !important;
}

.rs-calc-sfx {
  right: 18px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #6b7280 !important;
}

/* 小計 */
.rs-calc-sub {
  margin-top: 28px !important;
  padding: 20px 24px !important;
  border-radius: 16px !important;
  background: #f1f5f9 !important;
}

.rs-calc-sub-l {
  font-size: 16px !important;
  font-weight: 800 !important;
}

.rs-calc-sub-v {
  font-size: 24px !important;
  font-weight: 900 !important;
}

/* 詳細結果 */
.rs-calc-det-grid,
.rs-calc-be-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

.rs-calc-det-box,
.rs-calc-be-box {
  border-radius: 16px !important;
  padding: 20px !important;
  background: #f8fafc !important;
}

.rs-calc-det-v,
.rs-calc-be-v {
  font-size: 24px !important;
  font-weight: 900 !important;
}

/* CTA */
.rs-calc-cta {
  padding: 32px !important;
  background: #111827 !important;
  color: #fff !important;
}

/* 下部追従バー */
.rs-calc-bar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 999999 !important;
  background: rgba(17,24,39,.96) !important;
  backdrop-filter: blur(12px) !important;
  padding: 14px 20px calc(14px + env(safe-area-inset-bottom)) !important;
  box-shadow: 0 -8px 30px rgba(0,0,0,.25) !important;
}

.rs-calc-bar-inner {
  max-width: 900px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
}

.rs-calc-bar-lbl {
  display: block !important;
  color: rgba(255,255,255,.55) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin-bottom: 4px !important;
}

.rs-calc-bar-val {
  display: block !important;
  color: #fff !important;
  font-size: 22px !important;
  font-weight: 900 !important;
}

.rs-calc-bar-val.rs-calc-pos {
  color: #34d399 !important;
}

.rs-calc-bar-val.rs-calc-neg {
  color: #f87171 !important;
}

/* スマホ */
@media (max-width: 768px) {
  .rs-calc-pg {
    padding: 0 14px !important;
  }

  .rs-calc-fv {
    padding: 48px 18px 80px !important;
  }

  .rs-calc-qcard {
    grid-template-columns: 1fr !important;
    padding: 24px !important;
  }

  .rs-calc-fg,
  .rs-calc-det-grid,
  .rs-calc-be-grid {
    grid-template-columns: 1fr !important;
  }

  .rs-calc-sb {
    padding: 22px !important;
  }

  .rs-calc-inp {
    height: 56px !important;
    font-size: 20px !important;
  }

  .rs-calc-bar-inner {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px 16px !important;
  }

  .rs-calc-bar-val {
    font-size: 18px !important;
  }
}
/* ============================================================
   モバイル表示 最適化CSS
   ============================================================ */

@media (max-width: 768px) {

  .rs-calc-root {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 12px 120px !important;
    overflow-x: hidden !important;
  }

  .rs-calc-fv {
    border-radius: 0 0 24px 24px !important;
    padding: 30px 18px 28px !important;
    margin: 0 -12px 20px !important;
  }

  .rs-calc-fv-h1 {
    font-size: 26px !important;
    line-height: 1.25 !important;
  }

  .rs-calc-fv-sub {
    font-size: 15px !important;
  }

  .rs-calc-fv-lead {
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

  .rs-calc-sec {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
  }

  .rs-calc-layout {
    display: block !important;
  }

  .rs-calc-card,
  .rs-calc-detail,
  .rs-calc-be,
  .rs-calc-ai,
  .rs-calc-rc,
  .rs-calc-cta {
    width: 100% !important;
    border-radius: 22px !important;
    margin-bottom: 18px !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.07) !important;
  }

  .rs-calc-sh {
    padding: 18px !important;
  }

  .rs-calc-st {
    font-size: 20px !important;
    line-height: 1.35 !important;
    word-break: keep-all !important;
  }

  .rs-calc-si {
    flex: 0 0 34px !important;
    width: 34px !important;
    height: 34px !important;
  }

  .rs-calc-sbadge {
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .rs-calc-sb {
    padding: 18px !important;
  }

  .rs-calc-fg {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .rs-calc-lbl {
    font-size: 15px !important;
    margin-bottom: 9px !important;
  }

  .rs-calc-unit {
    font-size: 13px !important;
  }

  .rs-calc-inp {
    height: 58px !important;
    font-size: 24px !important;
    border-radius: 18px !important;
    padding-left: 18px !important;
    padding-right: 54px !important;
  }

  .rs-calc-sfx {
    font-size: 20px !important;
    right: 18px !important;
  }

  .rs-calc-slr {
    margin-top: 14px !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .rs-calc-slv {
    text-align: right !important;
    font-size: 18px !important;
  }

  .rs-calc-detail,
  .rs-calc-be,
  .rs-calc-ai {
    padding: 20px !important;
  }

  .rs-calc-det-grid,
  .rs-calc-be-grid,
  .rs-calc-ai-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .rs-calc-det-box,
  .rs-calc-be-box,
  .rs-calc-ai-box,
  .rs-calc-ai-action {
    padding: 18px !important;
    border-radius: 18px !important;
  }

  .rs-calc-det-v,
  .rs-calc-be-v {
    font-size: 24px !important;
  }

  .rs-calc-ai-head h3 {
    font-size: 24px !important;
    line-height: 1.45 !important;
    word-break: keep-all !important;
  }

  .rs-calc-ai-head p,
  .rs-calc-ai-score p,
  .rs-calc-ai-box li,
  .rs-calc-ai-action p {
    font-size: 15px !important;
    line-height: 1.9 !important;
  }

  .rs-calc-ai-score {
    padding: 20px !important;
    border-radius: 20px !important;
  }

  .rs-calc-ai-score strong {
    font-size: 30px !important;
    line-height: 1.3 !important;
  }

  .rs-calc-cta {
    padding: 22px !important;
  }

  .rs-calc-cta-h {
    font-size: 18px !important;
    line-height: 1.6 !important;
  }

  .rs-calc-cta-p {
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  .rs-calc-cta-btn {
    min-height: 58px !important;
    font-size: 16px !important;
    border-radius: 18px !important;
  }

  /* 下の固定バーをスマホ向けにコンパクト化 */
  .rs-calc-bar {
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    background: rgba(255,255,255,0.96) !important;
  }

  .rs-calc-bar-inner {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  .rs-calc-bar-item {
    min-height: auto !important;
    padding: 10px 12px !important;
    border-radius: 16px !important;
  }

  .rs-calc-bar-lbl {
    font-size: 12px !important;
    margin-bottom: 5px !important;
  }

  .rs-calc-bar-val {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }

  /* 右カラムの結果カードはスマホでは固定しない */
  .rs-calc-right {
    position: static !important;
  }
}z



























/* ============================================================
   レンタルスペース収益シミュレーター — CSS 完成版
   WPCode / 追加CSS に貼り付け
   ============================================================ */

.rs-calc-root {
  --rc-bg: #f6f8fc;
  --rc-card: #ffffff;
  --rc-text: #111827;
  --rc-muted: #6b7280;
  --rc-line: #e5e7eb;
  --rc-blue: #2563eb;
  --rc-blue-dark: #1d4ed8;
  --rc-green: #16a34a;
  --rc-red: #dc2626;
  --rc-yellow: #d97706;
  --rc-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
  position: relative;
  max-width: 1180px;
  margin: 40px auto;
  padding: 0 16px 92px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  color: var(--rc-text);
}

.rs-calc-root,
.rs-calc-root * {
  box-sizing: border-box;
}

.rs-calc-root input,
.rs-calc-root button,
.rs-calc-root select {
  font-family: inherit;
}

/* ファーストビュー */
.rs-calc-fv {
  text-align: center;
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 32%),
    linear-gradient(135deg, #0f172a 0%, #1e3a8a 48%, #2563eb 100%);
  color: #fff;
  border-radius: 30px;
  padding: 48px 22px 40px;
  box-shadow: var(--rc-shadow);
  overflow: hidden;
}

.rs-calc-fv-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.22);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  margin-bottom: 14px;
}

.rs-calc-fv-h1 {
  margin: 0;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 950;
  letter-spacing: -0.04em;
  line-height: 1.12;
}

.rs-calc-fv-sub {
  margin: 12px 0 0;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 800;
}

.rs-calc-fv-lead {
  max-width: 760px;
  margin: 16px auto 0;
  font-size: 15px;
  line-height: 1.9;
  color: rgba(255,255,255,0.86);
}

.rs-calc-fv-arrow {
  display: inline-flex;
  margin-top: 22px;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.16);
  font-weight: 900;
}

/* 全体レイアウト */
.rs-calc-pg {
  margin-top: 22px;
}

.rs-calc-sec {
  background: var(--rc-bg);
  border: 1px solid var(--rc-line);
  border-radius: 28px;
  padding: 22px;
}

.rs-calc-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(330px, 0.65fr);
  gap: 22px;
  align-items: start;
}

.rs-calc-left,
.rs-calc-right {
  min-width: 0;
}

/* かんたん診断 */
.rs-calc-quick {
  margin: 18px 0;
}

.rs-calc-qcard {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--rc-line);
  border-radius: 22px;
  padding: 18px 20px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.rs-calc-qlabel {
  display: block;
  font-size: 12px;
  font-weight: 850;
  color: var(--rc-muted);
  margin-bottom: 4px;
}

.rs-calc-qprofit {
  display: block;
  font-size: 28px;
  font-weight: 950;
  letter-spacing: -0.03em;
}

.rs-calc-qmsg {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #374151;
}

/* カード */
.rs-calc-card,
.rs-calc-detail,
.rs-calc-be,
.rs-calc-rc,
.rs-calc-cta,
.rs-calc-note {
  background: var(--rc-card);
  border: 1px solid var(--rc-line);
  border-radius: 22px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

.rs-calc-card,
.rs-calc-detail,
.rs-calc-be {
  margin-bottom: 16px;
}

.rs-calc-sh {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  cursor: pointer;
  user-select: none;
}

.rs-calc-st {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 17px;
  font-weight: 950;
}

.rs-calc-si {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #eff6ff;
  color: var(--rc-blue);
  font-size: 13px;
  font-weight: 950;
}

.rs-calc-sh-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.rs-calc-sbadge {
  padding: 5px 10px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 12px;
  font-weight: 800;
}

.rs-calc-arr {
  display: inline-flex;
  transition: transform 0.2s ease;
  color: #6b7280;
}

.rs-calc-arr:not(.rs-calc-open) {
  transform: rotate(-90deg);
}

.rs-calc-sb {
  border-top: 1px solid var(--rc-line);
  padding: 20px;
}

.rs-calc-hide {
  display: none;
}

/* 入力 */
.rs-calc-rw {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.rs-calc-rbtn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 1px solid var(--rc-line);
  border-radius: 999px;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(15,23,42,.05);
}

.rs-calc-rbtn:hover {
  border-color: #bfdbfe;
  color: var(--rc-blue);
}

.rs-calc-fg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.rs-calc-f {
  min-width: 0;
}

.rs-calc-fw {
  grid-column: 1 / -1;
}

.rs-calc-lbl {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
  color: #374151;
  font-size: 13px;
  font-weight: 850;
}

.rs-calc-unit {
  color: #9ca3af;
  font-size: 12px;
  font-weight: 700;
}

.rs-calc-iw {
  position: relative;
}

.rs-calc-inp {
  width: 100%;
  height: 46px;
  padding: 0 46px 0 13px;
  border-radius: 13px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #111827;
  font-size: 15px;
  font-weight: 750;
  outline: none;
  transition: border-color .18s, box-shadow .18s, background .18s;
}

.rs-calc-inp:focus {
  border-color: var(--rc-blue);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.13);
}

.rs-calc-sfx {
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  font-size: 13px;
  font-weight: 800;
  pointer-events: none;
}

.rs-calc-slr {
  display: grid;
  grid-template-columns: 1fr 56px;
  gap: 10px;
  align-items: center;
  margin-top: 9px;
}

.rs-calc-sl {
  width: 100%;
  accent-color: var(--rc-blue);
  --rc-p: 0%;
}

.rs-calc-slv {
  text-align: right;
  color: var(--rc-blue);
  font-size: 13px;
  font-weight: 900;
}

.rs-calc-sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding: 15px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
}

.rs-calc-sub-l {
  color: #475569;
  font-weight: 850;
  font-size: 14px;
}

.rs-calc-sub-v {
  font-size: 20px;
  font-weight: 950;
  color: var(--rc-blue);
}

/* 詳細・損益 */
.rs-calc-detail,
.rs-calc-be {
  padding: 20px;
}

.rs-calc-det-title,
.rs-calc-be-title {
  display: block;
  margin-bottom: 14px;
  font-size: 16px;
  font-weight: 950;
}

.rs-calc-det-grid,
.rs-calc-be-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}

.rs-calc-det-box,
.rs-calc-be-box {
  padding: 14px;
  border-radius: 16px;
  background: #f9fafb;
  border: 1px solid #eef2f7;
}

.rs-calc-det-big {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.rs-calc-det-l,
.rs-calc-be-l {
  display: block;
  color: var(--rc-muted);
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 6px;
}

.rs-calc-det-v,
.rs-calc-be-v {
  display: block;
  color: #111827;
  font-size: 18px;
  font-weight: 950;
}

/* 右カラム */
.rs-calc-right {
  position: sticky;
  top: 18px;
}

.rs-calc-rc {
  padding: 20px;
}

.rs-calc-rh {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: 950;
}

.rs-calc-pm {
  padding: 18px;
  border-radius: 20px;
  margin-bottom: 18px;
  border: 1px solid var(--rc-line);
  background: #f9fafb;
}

.rs-calc-pm.rs-calc-pos {
  background: #ecfdf5;
  border-color: #bbf7d0;
}

.rs-calc-pm.rs-calc-neg {
  background: #fef2f2;
  border-color: #fecaca;
}

.rs-calc-pm.rs-calc-zer {
  background: #f9fafb;
}

.rs-calc-pml {
  display: block;
  color: var(--rc-muted);
  font-size: 12px;
  font-weight: 850;
  margin-bottom: 4px;
}

.rs-calc-pmv {
  display: block;
  font-size: 34px;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.rs-calc-diag {
  display: block;
  margin-top: 8px;
  color: #374151;
  font-size: 13px;
  line-height: 1.75;
}

.rs-calc-div {
  display: block;
  margin: 18px 0 8px;
  color: #6b7280;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .05em;
}

.rs-calc-rl {
  border: 1px solid #eef2f7;
  border-radius: 16px;
  overflow: hidden;
}

.rs-calc-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  background: #fff;
  border-bottom: 1px solid #eef2f7;
}

.rs-calc-row:last-child {
  border-bottom: none;
}

.rs-calc-rl-l {
  color: #6b7280;
  font-size: 13px;
  font-weight: 750;
}

.rs-calc-rl-v {
  color: #111827;
  font-size: 14px;
  font-weight: 950;
  text-align: right;
}

.rs-calc-acc .rs-calc-rl-v,
.rs-calc-acc {
  color: var(--rc-blue);
}

.rs-calc-rec {
  display: flex;
  gap: 12px;
  padding: 15px;
  border-radius: 16px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}

.rs-calc-rec-ico {
  font-size: 22px;
}

.rs-calc-rec-l,
.rs-calc-rec-s {
  display: block;
  font-size: 12px;
  color: #64748b;
  font-weight: 800;
}

.rs-calc-rec-v {
  display: block;
  margin: 4px 0;
  color: #1d4ed8;
  font-size: 19px;
  font-weight: 950;
}

/* AI診断レビュー */
.rs-calc-ai {
  margin-top: 22px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.08);
}

.rs-calc-ai-head {
  margin-bottom: 18px;
}

.rs-calc-ai-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 11px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 9px;
}

.rs-calc-ai-head h3 {
  margin: 0 0 7px;
  font-size: 20px;
  font-weight: 900;
  color: #111827;
}

.rs-calc-ai-head p {
  margin: 0;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.7;
}

.rs-calc-ai-score {
  border-radius: 18px;
  padding: 18px;
  margin-bottom: 16px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
}

.rs-calc-ai-score-label {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: #6b7280;
  margin-bottom: 6px;
}

.rs-calc-ai-score strong {
  display: block;
  font-size: 26px;
  font-weight: 950;
  margin-bottom: 6px;
}

.rs-calc-ai-score p {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #374151;
}

.rs-calc-ai-good {
  background: #ecfdf5;
  border-color: #bbf7d0;
}

.rs-calc-ai-good strong {
  color: #15803d;
}

.rs-calc-ai-normal {
  background: #fffbeb;
  border-color: #fde68a;
}

.rs-calc-ai-normal strong {
  color: #b45309;
}

.rs-calc-ai-danger {
  background: #fef2f2;
  border-color: #fecaca;
}

.rs-calc-ai-danger strong {
  color: #b91c1c;
}

.rs-calc-ai-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.rs-calc-ai-box,
.rs-calc-ai-action {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 16px;
}

.rs-calc-ai-action {
  margin-top: 14px;
  background: #f8fafc;
}

.rs-calc-ai-box-title {
  display: block;
  font-size: 14px;
  font-weight: 900;
  color: #111827;
  margin-bottom: 10px;
}

.rs-calc-ai-box ul {
  margin: 0;
  padding-left: 18px;
}

.rs-calc-ai-box li {
  font-size: 14px;
  line-height: 1.8;
  color: #374151;
  margin-bottom: 6px;
}

.rs-calc-ai-action p {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #374151;
}

/* CTA・注記 */
.rs-calc-cta {
  margin-top: 18px;
  padding: 18px;
  background: linear-gradient(135deg, #eff6ff, #ffffff);
}

.rs-calc-cta-h {
  display: block;
  color: #111827;
  font-size: 16px;
  font-weight: 950;
  margin-bottom: 7px;
}

.rs-calc-cta-p {
  margin: 0 0 14px;
  color: #4b5563;
  font-size: 13px;
  line-height: 1.8;
}

.rs-calc-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  padding: 13px 15px;
  border-radius: 14px;
  background: var(--rc-blue);
  color: #fff !important;
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 900;
}

.rs-calc-cta-btn:hover {
  background: var(--rc-blue-dark);
}

.rs-calc-note {
  margin: 14px 0 0;
  padding: 14px 16px;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.8;
  background: #fff;
}

/* 固定バー */
.rs-calc-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  padding: 10px 14px;
  background: rgba(255,255,255,0.88);
  border-top: 1px solid rgba(229,231,235,.9);
  backdrop-filter: blur(16px);
  box-shadow: 0 -10px 30px rgba(15,23,42,.08);
}

.rs-calc-bar-inner {
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}

.rs-calc-bar-item {
  padding: 8px 10px;
  border-radius: 14px;
  background: #f9fafb;
  border: 1px solid #eef2f7;
}

.rs-calc-bar-lbl {
  display: block;
  color: #6b7280;
  font-size: 11px;
  font-weight: 850;
  margin-bottom: 2px;
}

.rs-calc-bar-val {
  display: block;
  font-size: 14px;
  font-weight: 950;
  color: #111827;
}

/* 状態色 */
.rs-calc-pos {
  color: var(--rc-green) !important;
}

.rs-calc-neg {
  color: var(--rc-red) !important;
}

.rs-calc-zer {
  color: #64748b !important;
}

.rs-calc-upd {
  opacity: .35;
  transition: opacity .08s ease;
}

/* モバイル */
@media (max-width: 980px) {
  .rs-calc-layout {
    grid-template-columns: 1fr;
  }

  .rs-calc-right {
    position: static;
  }

  .rs-calc-qcard {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .rs-calc-root {
    margin: 22px auto;
    padding: 0 10px 102px;
  }

  .rs-calc-fv {
    border-radius: 22px;
    padding: 34px 18px 30px;
  }

  .rs-calc-sec {
    padding: 14px;
    border-radius: 22px;
  }

  .rs-calc-fg,
  .rs-calc-det-grid,
  .rs-calc-be-grid,
  .rs-calc-ai-grid {
    grid-template-columns: 1fr;
  }

  .rs-calc-sh,
  .rs-calc-sb,
  .rs-calc-detail,
  .rs-calc-be,
  .rs-calc-rc,
  .rs-calc-ai {
    padding: 16px;
  }

  .rs-calc-pmv {
    font-size: 29px;
  }

  .rs-calc-bar-inner {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* 下部固定バー 修正版 */
.rs-calc-bar {
  background: rgba(255, 255, 255, 0.96) !important;
  border-top: 1px solid #e5e7eb !important;
  box-shadow: 0 -8px 25px rgba(15, 23, 42, 0.12) !important;
  backdrop-filter: blur(14px);
}

.rs-calc-bar-inner {
  max-width: 1100px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 14px !important;
}

.rs-calc-bar-item {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 16px !important;
  padding: 14px 18px !important;
  min-height: 74px !important;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08) !important;
}

.rs-calc-bar-lbl {
  color: #64748b !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  margin-bottom: 8px !important;
}

.rs-calc-bar-val {
  color: #111827 !important;
  font-size: 24px !important;
  font-weight: 950 !important;
  line-height: 1.1 !important;
}

.rs-calc-bar-val.rs-calc-pos {
  color: #10b981 !important;
}

.rs-calc-bar-val.rs-calc-neg {
  color: #ef4444 !important;
}

.rs-calc-bar-val.rs-calc-zer {
  color: #64748b !important;
}

@media (max-width: 768px) {
  .rs-calc-bar-inner {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }

  .rs-calc-bar-item {
    min-height: 60px !important;
    padding: 10px 12px !important;
  }

  .rs-calc-bar-val {
    font-size: 18px !important;
  }

  .rs-calc-bar-lbl {
    font-size: 11px !important;
  }
}

/* CTAエリア修正 */
.rs-calc-cta {
  background: linear-gradient(135deg, #0f172a, #1e3a8a) !important;
  color: #ffffff !important;
  border: none !important;
}

.rs-calc-cta-text {
  color: #ffffff !important;
}

.rs-calc-cta-h {
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}

.rs-calc-cta-p {
  color: rgba(255,255,255,0.85) !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

/* ボタン改善 */
.rs-calc-cta-btn {
  background: linear-gradient(135deg, #2563eb, #3b82f6) !important;
  color: #ffffff !important;
  font-weight: 900 !important;
  font-size: 16px !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: 0 10px 25px rgba(37, 99, 235, 0.35) !important;
  transition: all 0.2s ease;
}

.rs-calc-cta-btn:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #1d4ed8, #2563eb) !important;
}

/* 全体のコントラスト強制 */
.rs-calc-cta * {
  color: #ffffff !important;
}


/* ============================================================
   スマホ下部固定バー 超コンパクト修正版
   ============================================================ */

@media (max-width: 768px) {

  .rs-calc-root {
    padding-bottom: 82px !important;
  }

  .rs-calc-bar {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 -4px 14px rgba(15, 23, 42, 0.08) !important;
  }

  .rs-calc-bar-inner {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 5px !important;
    max-width: 100% !important;
  }

  .rs-calc-bar-item {
    min-height: 50px !important;
    padding: 7px 6px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }

  .rs-calc-bar-lbl {
    font-size: 10px !important;
    line-height: 1.1 !important;
    margin-bottom: 4px !important;
    white-space: nowrap !important;
    color: #64748b !important;
    font-weight: 800 !important;
  }

  .rs-calc-bar-val {
    font-size: 15px !important;
    line-height: 1.15 !important;
    font-weight: 950 !important;
    letter-spacing: -0.04em !important;
    white-space: nowrap !important;
  }

  .rs-calc-bar-val.rs-calc-pos {
    color: #10b981 !important;
  }

  .rs-calc-bar-val.rs-calc-neg {
    color: #ef4444 !important;
  }
}
/* ============================================================
   モバイル最適化 完全版（サイズ・幅・はみ出し修正）
   ============================================================ */

@media (max-width: 768px) {

  /* 横幅をフル活用 */
  .rs-calc-root {
    padding: 0 8px 90px !important;
    max-width: 100% !important;
  }

  .rs-calc-sec {
    padding: 0 !important;
  }

  .rs-calc-card,
  .rs-calc-detail,
  .rs-calc-be,
  .rs-calc-ai,
  .rs-calc-rc {
    width: 100% !important;
    margin: 0 0 14px 0 !important;
    border-radius: 18px !important;
  }

  /* 見出し小さく */
  .rs-calc-st {
    font-size: 16px !important;
  }

  /* ラベル */
  .rs-calc-lbl {
    font-size: 13px !important;
  }

  /* 入力欄（重要） */
  .rs-calc-inp {
    height: 48px !important;
    font-size: 20px !important;
    padding: 0 45px 0 12px !important;
  }

  .rs-calc-sfx {
    font-size: 16px !important;
  }

  /* スライダー */
  .rs-calc-slv {
    font-size: 14px !important;
  }

  /* 詳細カード数字 */
  .rs-calc-det-v,
  .rs-calc-be-v {
    font-size: 18px !important;
  }

  /* AI診断 */
  .rs-calc-ai-head h3 {
    font-size: 18px !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
  }

  .rs-calc-ai-head p {
    font-size: 13px !important;
  }

  .rs-calc-ai-score strong {
    font-size: 22px !important;
  }

  .rs-calc-ai-score p,
  .rs-calc-ai-box li,
  .rs-calc-ai-action p {
    font-size: 13px !important;
  }

  /* はみ出し防止（これ重要） */
  .rs-calc-ai,
  .rs-calc-card,
  .rs-calc-detail {
    overflow: hidden !important;
    word-break: break-word !important;
  }

  /* グリッド1列 */
  .rs-calc-fg,
  .rs-calc-det-grid,
  .rs-calc-be-grid,
  .rs-calc-ai-grid {
    grid-template-columns: 1fr !important;
  }

  /* 下バーさらにコンパクト */
  .rs-calc-bar {
    padding: 4px 6px !important;
  }

  .rs-calc-bar-item {
    padding: 6px 6px !important;
    min-height: 46px !important;
  }

  .rs-calc-bar-lbl {
    font-size: 9px !important;
  }

  .rs-calc-bar-val {
    font-size: 13px !important;
  }
}




























/* ============================================================
   レンタルスペースAI価格最適化ツール（完全版）CSS
   外観 → カスタマイズ → 追加CSS に貼り付け
   ============================================================ */

/* ── 全体リセット & フルワイド ── */
.rs-calc-app,
.rs-calc-app *,
.rs-calc-app *::before,
.rs-calc-app *::after { box-sizing: border-box !important; }

.rs-calc-app {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;

  --a-bg:    #f2f4f9;
  --a-w:     #ffffff;
  --a-ink:   #0d1117;
  --a-i2:    #3d4452;
  --a-i3:    #7a8394;
  --a-bdr:   rgba(0,0,0,.08);
  --a-acc:   #1a56db;
  --a-acc2:  #e8efff;
  --a-gr:    #059669;
  --a-rd:    #dc2626;
  --a-am:    #d97706;
  --a-pu:    #7c3aed;
  --a-sh:    0 2px 14px rgba(0,0,0,.07);
  --a-shM:   0 8px 30px rgba(0,0,0,.11);
  --a-r:     14px;
  --a-rs:    9px;
  --a-fn:    'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif;

  font-family: var(--a-fn) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--a-ink) !important;
  background: var(--a-bg) !important;
  -webkit-font-smoothing: antialiased;
}

/* ── アプリバー ── */
.rs-calc-app .rs-calc-appbar {
  background: var(--a-ink) !important;
  position: sticky !important; top: 0 !important; z-index: 800 !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
}
.rs-calc-app .rs-calc-appbar-in {
  max-width: 960px !important; margin: 0 auto !important;
  padding: 13px 24px !important; display: flex !important;
  align-items: center !important; justify-content: space-between !important; gap: 12px !important;
}
.rs-calc-app .rs-calc-appbar-brand {
  display: flex !important; align-items: center !important; gap: 9px !important;
}
.rs-calc-app .rs-calc-appbar-logo {
  width: 32px !important; height: 32px !important;
  background: var(--a-acc) !important; border-radius: 8px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  color: #fff !important; flex-shrink: 0 !important;
}
.rs-calc-app .rs-calc-appbar-name {
  font-size: .95rem !important; font-weight: 800 !important;
  color: #fff !important; letter-spacing: -.02em !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-appbar-name em {
  color: #60a5fa !important; font-style: normal !important;
}
.rs-calc-app .rs-calc-appbar-meta {
  font-size: .72rem !important; color: rgba(255,255,255,.4) !important;
  font-family: var(--a-fn) !important;
}

/* ── ラッパー ── */
.rs-calc-app .rs-calc-wrap {
  max-width: 960px !important; margin: 0 auto !important;
  padding: 24px 20px 0 !important; display: flex !important;
  flex-direction: column !important; gap: 32px !important;
}
@media (max-width: 640px) { .rs-calc-app .rs-calc-wrap { padding: 16px 12px 0 !important; gap: 24px !important; } }

/* ── セクション ── */
.rs-calc-app .rs-calc-section { display: flex !important; flex-direction: column !important; gap: 14px !important; }
.rs-calc-app .rs-calc-section-head {
  display: flex !important; align-items: center !important;
  gap: 10px !important; flex-wrap: wrap !important;
}
.rs-calc-app .rs-calc-section-num {
  font-size: .62rem !important; font-weight: 800 !important;
  letter-spacing: .16em !important; color: var(--a-acc) !important;
  background: var(--a-acc2) !important; padding: 2px 8px !important;
  border-radius: 4px !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-section-title {
  font-size: .95rem !important; font-weight: 800 !important;
  color: var(--a-ink) !important; letter-spacing: -.02em !important;
  margin: 0 !important; padding: 0 !important; border: none !important;
  background: none !important; font-family: var(--a-fn) !important;
  flex: 1 !important;
}

/* ── カード ── */
.rs-calc-app .rs-calc-card {
  background: var(--a-w) !important; border: 1px solid var(--a-bdr) !important;
  border-radius: var(--a-r) !important; box-shadow: var(--a-sh) !important; overflow: hidden !important;
}
.rs-calc-app .rs-calc-card-dark {
  background: linear-gradient(135deg, #0f1c3f 0%, #1e2d55 100%) !important;
  border-color: transparent !important;
}
.rs-calc-app .rs-calc-card-head {
  padding: 13px 20px !important; background: #f4f6fb !important;
  border-bottom: 1px solid var(--a-bdr) !important;
  font-size: .79rem !important; font-weight: 700 !important;
  color: var(--a-i2) !important; font-family: var(--a-fn) !important;
  display: flex !important; align-items: center !important; gap: 7px !important;
}
.rs-calc-app .rs-calc-card-body { padding: 18px 20px !important; }
@media (max-width: 640px) { .rs-calc-app .rs-calc-card-body { padding: 14px 14px !important; } }

/* ── 入力2カラム ── */
.rs-calc-app .rs-calc-input-layout {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: 18px !important; align-items: start !important;
}
@media (max-width: 760px) { .rs-calc-app .rs-calc-input-layout { grid-template-columns: 1fr !important; } }
.rs-calc-app .rs-calc-input-col { display: flex !important; flex-direction: column !important; gap: 14px !important; }

/* ── フォーム ── */
.rs-calc-app .rs-calc-form-grid {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: 12px 14px !important;
}
@media (max-width: 480px) { .rs-calc-app .rs-calc-form-grid { grid-template-columns: 1fr !important; } }
.rs-calc-app .rs-calc-fw { grid-column: 1 / -1 !important; }
.rs-calc-app .rs-calc-field { display: block !important; }

.rs-calc-app .rs-calc-lbl {
  display: block !important; font-size: .74rem !important; font-weight: 700 !important;
  color: var(--a-i2) !important; margin: 0 0 5px !important; padding: 0 !important;
  font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-inp-wrap {
  position: relative !important; display: flex !important;
  align-items: center !important; width: 100% !important;
}
.rs-calc-app .rs-calc-pfx {
  position: absolute !important; left: 12px !important;
  font-size: .85rem !important; font-weight: 600 !important;
  color: var(--a-i3) !important; pointer-events: none !important;
}
.rs-calc-app .rs-calc-sfx {
  position: absolute !important; right: 11px !important;
  font-size: .78rem !important; font-weight: 600 !important;
  color: var(--a-i3) !important; pointer-events: none !important; white-space: nowrap !important;
}

/* input */
.rs-calc-app .rs-calc-inp,
.rs-calc-app input.rs-calc-inp {
  display: block !important; width: 100% !important; height: 44px !important;
  border: 1.5px solid #d1d5db !important; border-radius: var(--a-rs) !important;
  font-size: .9rem !important; font-weight: 600 !important;
  font-family: var(--a-fn) !important; color: var(--a-ink) !important;
  background: #fafbfc !important; padding: 0 40px 0 12px !important;
  margin: 0 !important; outline: none !important; box-shadow: none !important;
  -webkit-appearance: none !important; appearance: none !important;
  -moz-appearance: textfield !important; transition: border-color .18s, box-shadow .18s;
}
.rs-calc-app input.rs-calc-inp-n::-webkit-inner-spin-button,
.rs-calc-app input.rs-calc-inp-n::-webkit-outer-spin-button { -webkit-appearance: none !important; }
.rs-calc-app input.rs-calc-has-pfx { padding-left: 26px !important; }
.rs-calc-app .rs-calc-inp:focus,
.rs-calc-app input.rs-calc-inp:focus {
  border-color: var(--a-acc) !important;
  box-shadow: 0 0 0 3px rgba(26,86,219,.14) !important;
  background: #fff !important; outline: none !important;
}

/* ── セグメントボタン ── */
.rs-calc-app .rs-calc-seg {
  display: flex !important; flex-wrap: wrap !important; gap: 6px !important;
}
.rs-calc-app .rs-calc-seg-btn,
.rs-calc-app button.rs-calc-seg-btn {
  display: inline-flex !important; align-items: center !important;
  padding: 6px 13px !important; border: 1.5px solid var(--a-bdr) !important;
  border-radius: 999px !important; background: #fafbfc !important;
  font-size: .78rem !important; font-weight: 700 !important;
  color: var(--a-i2) !important; cursor: pointer !important;
  font-family: var(--a-fn) !important; transition: all .16s;
  -webkit-appearance: none !important; box-shadow: none !important;
  margin: 0 !important; line-height: 1.3 !important;
}
.rs-calc-app .rs-calc-seg-btn:hover { border-color: var(--a-acc) !important; color: var(--a-acc) !important; background: var(--a-acc2) !important; }
.rs-calc-app .rs-calc-seg-btn.rs-calc-seg-on { border-color: var(--a-acc) !important; background: var(--a-acc) !important; color: #fff !important; }

/* ── 用途ボタン ── */
.rs-calc-app .rs-calc-use-grid {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 8px !important;
}
@media (max-width: 400px) { .rs-calc-app .rs-calc-use-grid { grid-template-columns: 1fr 1fr !important; } }
.rs-calc-app .rs-calc-use-btn,
.rs-calc-app button.rs-calc-use-btn {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 4px !important; padding: 10px 6px !important;
  border: 1.5px solid var(--a-bdr) !important; border-radius: 10px !important;
  background: #fafbfc !important; font-family: var(--a-fn) !important;
  cursor: pointer !important; transition: all .16s;
  -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important;
}
.rs-calc-app .rs-calc-use-btn span { font-size: 1.3rem !important; line-height: 1 !important; }
.rs-calc-app .rs-calc-use-btn small { font-size: .68rem !important; font-weight: 700 !important; color: var(--a-i2) !important; line-height: 1.3 !important; }
.rs-calc-app .rs-calc-use-btn:hover { border-color: var(--a-acc) !important; background: var(--a-acc2) !important; }
.rs-calc-app .rs-calc-use-btn.rs-calc-use-on { border-color: var(--a-acc) !important; background: var(--a-acc) !important; }
.rs-calc-app .rs-calc-use-btn.rs-calc-use-on small { color: rgba(255,255,255,.9) !important; }

/* ── スライダー ── */
.rs-calc-app .rs-calc-sl-row { display: flex !important; align-items: center !important; gap: 10px !important; margin-top: 7px !important; }
.rs-calc-app .rs-calc-sl,
.rs-calc-app input[type="range"].rs-calc-sl {
  flex: 1 !important; -webkit-appearance: none !important; appearance: none !important;
  height: 4px !important; background: linear-gradient(to right, var(--a-acc) var(--rp, 45%), #d1d5db var(--rp, 45%)) !important;
  border-radius: 99px !important; outline: none !important; cursor: pointer !important;
  padding: 0 !important; margin: 0 !important; border: none !important; box-shadow: none !important;
}
.rs-calc-app .rs-calc-sl::-webkit-slider-thumb {
  -webkit-appearance: none !important; width: 18px !important; height: 18px !important;
  background: var(--a-acc) !important; border-radius: 50% !important;
  box-shadow: 0 2px 7px rgba(26,86,219,.4) !important; cursor: pointer !important; border: none !important;
}
.rs-calc-app .rs-calc-sl::-moz-range-thumb {
  width: 18px !important; height: 18px !important; background: var(--a-acc) !important;
  border: none !important; border-radius: 50% !important; cursor: pointer !important;
}
.rs-calc-app .rs-calc-slv {
  font-size: .78rem !important; font-weight: 700 !important;
  color: var(--a-acc) !important; min-width: 40px !important;
  text-align: right !important; font-family: var(--a-fn) !important;
}

/* ── リセット & 実行ボタン ── */
.rs-calc-app .rs-calc-reset-btn,
.rs-calc-app button.rs-calc-reset-btn {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  padding: 6px 13px !important; border: 1.5px solid var(--a-bdr) !important;
  border-radius: 999px !important; background: var(--a-w) !important;
  font-size: .74rem !important; font-weight: 700 !important; color: var(--a-i3) !important;
  cursor: pointer !important; font-family: var(--a-fn) !important;
  transition: all .16s; -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important;
}
.rs-calc-app .rs-calc-reset-btn:hover { border-color: var(--a-acc) !important; color: var(--a-acc) !important; }

.rs-calc-app .rs-calc-run-btn,
.rs-calc-app button.rs-calc-run-btn {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 8px !important; width: 100% !important; padding: 14px !important;
  margin-top: 4px !important; background: linear-gradient(135deg, #1a56db 0%, #1e40af 100%) !important;
  color: #fff !important; font-size: .94rem !important; font-weight: 800 !important;
  border: none !important; border-radius: var(--a-r) !important; cursor: pointer !important;
  font-family: var(--a-fn) !important; box-shadow: 0 4px 18px rgba(26,86,219,.36) !important;
  transition: transform .14s, box-shadow .14s; -webkit-appearance: none !important; margin-bottom: 0 !important;
}
.rs-calc-app .rs-calc-run-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 26px rgba(26,86,219,.44) !important; }
.rs-calc-app .rs-calc-run-btn:disabled { opacity: .7 !important; cursor: not-allowed !important; transform: none !important; }

/* ============================================================
   KPI
   ============================================================ */
.rs-calc-app .rs-calc-kpi-grid {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}
@media (max-width: 760px) { .rs-calc-app .rs-calc-kpi-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 400px) { .rs-calc-app .rs-calc-kpi-grid { grid-template-columns: 1fr !important; } }

.rs-calc-app .rs-calc-kpi {
  background: var(--a-w) !important; border: 1px solid var(--a-bdr) !important;
  border-radius: var(--a-r) !important; box-shadow: var(--a-sh) !important;
  padding: 16px 14px 12px !important;
}
.rs-calc-app .rs-calc-kpi.rs-calc-kpi-main {
  background: linear-gradient(135deg, #0d1740 0%, #1a56db 100%) !important;
  border-color: transparent !important;
}
.rs-calc-app .rs-calc-kpi-wide {
  grid-column: 1 / -1 !important; background: linear-gradient(90deg, #ecfdf5 0%, #d1fae5 100%) !important;
  border-color: rgba(5,150,105,.18) !important; display: flex !important;
  align-items: center !important; justify-content: space-between !important;
  padding: 16px 22px !important;
}
@media (max-width: 400px) { .rs-calc-app .rs-calc-kpi-wide { flex-direction: column !important; align-items: flex-start !important; } }

.rs-calc-app .rs-calc-kpi-lbl {
  font-size: .65rem !important; font-weight: 700 !important; letter-spacing: .09em !important;
  text-transform: uppercase !important; color: var(--a-i3) !important;
  margin: 0 0 4px !important; padding: 0 !important; display: block !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-kpi-main .rs-calc-kpi-lbl { color: rgba(255,255,255,.52) !important; }
.rs-calc-app .rs-calc-kpi-wide .rs-calc-kpi-lbl { color: #065f46 !important; opacity: .7; }
.rs-calc-app .rs-calc-kpi-val {
  display: block !important; font-size: clamp(1.35rem, 2.5vw, 1.85rem) !important;
  font-weight: 900 !important; letter-spacing: -.05em !important; line-height: 1 !important;
  color: var(--a-ink) !important; margin: 0 0 4px !important; padding: 0 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-kpi-main .rs-calc-kpi-val { color: #fff !important; }
.rs-calc-app .rs-calc-kpi-wide .rs-calc-kpi-val { color: var(--a-gr) !important; font-size: clamp(1.3rem, 2.5vw, 1.75rem) !important; }
.rs-calc-app .rs-calc-kpi-sm { font-size: clamp(1.1rem, 2vw, 1.45rem) !important; }
.rs-calc-app .rs-calc-kpi-sub {
  display: block !important; font-size: .7rem !important; color: var(--a-i3) !important;
  margin: 0 !important; padding: 0 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-kpi-main .rs-calc-kpi-sub { color: rgba(255,255,255,.5) !important; }
.rs-calc-app .rs-calc-kpi-wide .rs-calc-kpi-sub { color: #065f46 !important; opacity: .65; font-size: .78rem !important; }

/* ============================================================
   カレンダー
   ============================================================ */
.rs-calc-app .rs-calc-cal-nav {
  display: flex !important; align-items: center !important;
  gap: 8px !important; margin-left: auto !important;
}
.rs-calc-app .rs-calc-cal-nav-btn,
.rs-calc-app button.rs-calc-cal-nav-btn {
  width: 30px !important; height: 30px !important; border-radius: 8px !important;
  border: 1.5px solid var(--a-bdr) !important; background: var(--a-w) !important;
  font-size: 1.1rem !important; color: var(--a-i2) !important; cursor: pointer !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important;
  transition: all .14s;
}
.rs-calc-app .rs-calc-cal-nav-btn:hover { border-color: var(--a-acc) !important; color: var(--a-acc) !important; }
.rs-calc-app .rs-calc-cal-ym {
  font-size: .88rem !important; font-weight: 800 !important;
  color: var(--a-ink) !important; min-width: 90px !important;
  text-align: center !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-legend {
  display: flex !important; gap: 14px !important; padding: 10px 18px !important;
  border-bottom: 1px solid var(--a-bdr) !important; flex-wrap: wrap !important;
}
.rs-calc-app .rs-calc-cal-leg-item {
  display: flex !important; align-items: center !important; gap: 5px !important;
  font-size: .7rem !important; font-weight: 700 !important; color: var(--a-i3) !important;
  font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-leg-dot { width: 10px !important; height: 10px !important; border-radius: 3px !important; display: inline-block !important; }
.rs-calc-app .rs-calc-leg-hot  { background: #ef4444 !important; }
.rs-calc-app .rs-calc-leg-warm { background: #f59e0b !important; }
.rs-calc-app .rs-calc-leg-mid  { background: #3b82f6 !important; }
.rs-calc-app .rs-calc-leg-cool { background: #93c5fd !important; }

.rs-calc-app .rs-calc-cal-grid-wrap { padding: 12px 14px !important; }
.rs-calc-app .rs-calc-cal-head-row {
  display: grid !important; grid-template-columns: repeat(7, 1fr) !important;
  gap: 3px !important; margin-bottom: 4px !important;
}
.rs-calc-app .rs-calc-cal-dow {
  text-align: center !important; font-size: .68rem !important;
  font-weight: 700 !important; color: var(--a-i3) !important;
  padding: 4px 0 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-fri { color: #1a56db !important; }
.rs-calc-app .rs-calc-cal-sat { color: #1a56db !important; }
.rs-calc-app .rs-calc-cal-sun { color: #dc2626 !important; }

.rs-calc-app .rs-calc-cal-body {
  display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 3px !important;
}
/* カレンダーセル */
.rs-calc-app .rs-calc-cal-cell {
  border-radius: 7px !important; padding: 6px 4px !important;
  cursor: pointer !important; transition: transform .12s, box-shadow .12s;
  min-height: 64px !important; display: flex !important;
  flex-direction: column !important; align-items: center !important; gap: 2px !important;
  border: 1.5px solid transparent !important;
}
.rs-calc-app .rs-calc-cal-cell:hover { transform: scale(1.06) !important; z-index: 2 !important; box-shadow: 0 4px 14px rgba(0,0,0,.18) !important; }
.rs-calc-app .rs-calc-cal-cell.rs-calc-cal-today { border-color: var(--a-acc) !important; }
.rs-calc-app .rs-calc-cal-cell.rs-calc-cal-selected { border-color: #fff !important; box-shadow: 0 0 0 2px var(--a-acc) !important; }
.rs-calc-app .rs-calc-cal-cell.rs-calc-cal-other { opacity: .35 !important; cursor: default !important; }
.rs-calc-app .rs-calc-cal-cell.rs-calc-cal-other:hover { transform: none !important; box-shadow: none !important; }
.rs-calc-app .rs-calc-cal-day {
  font-size: .8rem !important; font-weight: 800 !important;
  line-height: 1 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-score {
  font-size: .6rem !important; font-weight: 700 !important;
  line-height: 1 !important; opacity: .88 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-price {
  font-size: .62rem !important; font-weight: 800 !important;
  line-height: 1 !important; opacity: .95 !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-chg {
  font-size: .58rem !important; font-weight: 700 !important;
  line-height: 1 !important; opacity: .8 !important; font-family: var(--a-fn) !important;
}

/* カレンダー詳細パネル */
.rs-calc-app .rs-calc-cal-detail-panel {
  margin: 0 14px 14px !important; padding: 14px 16px !important;
  background: #f8f9fc !important; border-radius: var(--a-rs) !important;
  border: 1px solid var(--a-bdr) !important; min-height: 60px !important;
  font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-detail-placeholder {
  font-size: .8rem !important; color: var(--a-i3) !important;
  text-align: center !important; padding: 10px !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-cal-detail-inner {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
}
@media (max-width: 500px) { .rs-calc-app .rs-calc-cal-detail-inner { grid-template-columns: 1fr 1fr !important; } }
.rs-calc-app .rs-calc-cdd {
  text-align: center !important;
}
.rs-calc-app .rs-calc-cdd-lbl { font-size: .66rem !important; font-weight: 700 !important; color: var(--a-i3) !important; margin: 0 0 3px !important; display: block !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-cdd-val { font-size: 1rem !important; font-weight: 900 !important; color: var(--a-ink) !important; letter-spacing: -.03em !important; display: block !important; font-family: var(--a-fn) !important; }

/* ============================================================
   ヒートマップ
   ============================================================ */
.rs-calc-app .rs-calc-hm-legend {
  display: flex !important; align-items: center !important;
  gap: 8px !important; margin-left: auto !important;
  font-size: .72rem !important; font-weight: 700 !important;
  color: var(--a-i3) !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-leg-swatch { width: 12px !important; height: 12px !important; border-radius: 3px !important; display: inline-block !important; }
.rs-calc-app .rs-calc-hm-low  { background: #93c5fd !important; }
.rs-calc-app .rs-calc-hm-mid  { background: #fbbf24 !important; }
.rs-calc-app .rs-calc-hm-high { background: #ef4444 !important; }

.rs-calc-app .rs-calc-hm-wrap { padding: 10px 14px !important; }
.rs-calc-app .rs-calc-hm-scroll { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }
.rs-calc-app .rs-calc-heatmap {
  display: grid !important; min-width: 520px !important;
  gap: 3px !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-hm-lbl {
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: .62rem !important; font-weight: 700 !important; color: var(--a-i3) !important;
  padding: 3px 2px !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-hm-cell {
  position: relative !important; border-radius: 5px !important;
  padding: 4px 2px !important; display: flex !important; flex-direction: column !important;
  align-items: center !important; justify-content: center !important;
  cursor: default !important; transition: transform .1s; min-height: 46px !important;
}
.rs-calc-app .rs-calc-hm-cell:hover { transform: scale(1.1) !important; z-index: 3 !important; }
.rs-calc-app .rs-calc-hm-s { font-size: .58rem !important; font-weight: 800 !important; line-height: 1 !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-hm-p { font-size: .56rem !important; font-weight: 700 !important; line-height: 1.2 !important; margin-top: 2px !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-hm-c { font-size: .54rem !important; font-weight: 700 !important; line-height: 1 !important; margin-top: 1px !important; opacity: .8 !important; font-family: var(--a-fn) !important; }

/* ============================================================
   AIレポート
   ============================================================ */
.rs-calc-app .rs-calc-report-placeholder {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 12px !important; padding: 36px 20px !important; color: rgba(255,255,255,.38) !important;
  font-size: .84rem !important; text-align: center !important; font-family: var(--a-fn) !important;
}
.rs-calc-app .rs-calc-report-inner { padding: 20px !important; display: flex !important; flex-direction: column !important; gap: 20px !important; }
.rs-calc-app .rs-calc-report-section {}
.rs-calc-app .rs-calc-report-h {
  font-size: .7rem !important; font-weight: 800 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: #60a5fa !important; margin: 0 0 10px !important; padding: 0 !important;
  font-family: var(--a-fn) !important; display: block !important;
}
.rs-calc-app .rs-calc-report-verdict {
  display: flex !important; align-items: center !important; gap: 12px !important;
  padding: 14px 16px !important; border-radius: 10px !important;
  background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.1) !important;
}
.rs-calc-app .rs-calc-verdict-icon { font-size: 1.6rem !important; flex-shrink: 0 !important; }
.rs-calc-app .rs-calc-verdict-text { font-size: .86rem !important; font-weight: 700 !important; color: #fff !important; font-family: var(--a-fn) !important; margin: 0 !important; }
.rs-calc-app .rs-calc-verdict-text small { display: block !important; font-size: .76rem !important; font-weight: 400 !important; color: rgba(255,255,255,.6) !important; margin-top: 3px !important; }
.rs-calc-app .rs-calc-report-items { display: flex !important; flex-direction: column !important; gap: 9px !important; }
.rs-calc-app .rs-calc-report-item {
  display: flex !important; gap: 10px !important; align-items: flex-start !important;
  padding: 10px 13px !important; border-radius: 9px !important;
  background: rgba(255,255,255,.05) !important;
}
.rs-calc-app .rs-calc-ri-icon { font-size: 1rem !important; flex-shrink: 0 !important; margin-top: 1px !important; }
.rs-calc-app .rs-calc-ri-text { font-size: .8rem !important; color: rgba(255,255,255,.78) !important; line-height: 1.65 !important; font-family: var(--a-fn) !important; margin: 0 !important; }
.rs-calc-app .rs-calc-ri-text strong { color: #fff !important; font-weight: 700 !important; }
.rs-calc-app .rs-calc-ri-text em { color: #60a5fa !important; font-style: normal !important; }

/* スコアバーセクション */
.rs-calc-app .rs-calc-score-list { display: flex !important; flex-direction: column !important; gap: 9px !important; }
.rs-calc-app .rs-calc-score-row { display: flex !important; align-items: center !important; gap: 10px !important; }
.rs-calc-app .rs-calc-score-name { font-size: .74rem !important; font-weight: 700 !important; color: rgba(255,255,255,.65) !important; min-width: 88px !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-score-track { flex: 1 !important; height: 7px !important; background: rgba(255,255,255,.1) !important; border-radius: 99px !important; overflow: hidden !important; }
.rs-calc-app .rs-calc-score-fill { height: 100% !important; border-radius: 99px !important; background: var(--a-acc) !important; transition: width .6s ease !important; }
.rs-calc-app .rs-calc-score-fill-gr { background: var(--a-gr) !important; }
.rs-calc-app .rs-calc-score-fill-am { background: var(--a-am) !important; }
.rs-calc-app .rs-calc-score-fill-pu { background: var(--a-pu) !important; }
.rs-calc-app .rs-calc-score-num { font-size: .76rem !important; font-weight: 700 !important; color: #fff !important; min-width: 28px !important; text-align: right !important; font-family: var(--a-fn) !important; }

/* 競合カード */
.rs-calc-app .rs-calc-comp-inner { padding: 18px !important; display: flex !important; flex-direction: column !important; gap: 14px !important; }
.rs-calc-app .rs-calc-comp-pos { display: flex !important; align-items: center !important; gap: 14px !important; padding: 14px 16px !important; border-radius: 10px !important; background: var(--a-acc2) !important; border: 1px solid rgba(26,86,219,.18) !important; }
.rs-calc-app .rs-calc-comp-badge { font-size: 1.6rem !important; flex-shrink: 0 !important; }
.rs-calc-app .rs-calc-comp-detail { flex: 1 !important; }
.rs-calc-app .rs-calc-comp-title { font-size: .86rem !important; font-weight: 800 !important; color: var(--a-ink) !important; margin: 0 0 3px !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-comp-desc { font-size: .78rem !important; color: var(--a-i2) !important; margin: 0 !important; font-family: var(--a-fn) !important; }
.rs-calc-app .rs-calc-comp-recs { display: flex !important; flex-direction: column !important; gap: 7px !important; }
.rs-calc-app .rs-calc-comp-rec { font-size: .79rem !important; color: var(--a-i2) !important; padding: 8px 12px !important; border-radius: 8px !important; background: #f4f6fb !important; border: 1px solid var(--a-bdr) !important; font-family: var(--a-fn) !important; margin: 0 !important; }
.rs-calc-app .rs-calc-comp-rec::before { content: '💡 ' !important; }

/* ============================================================
   固定バー
   ============================================================ */
.rs-calc-fixbar {
  position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 999999 !important; background: rgba(10,14,22,.97) !important;
  backdrop-filter: blur(14px) !important; -webkit-backdrop-filter: blur(14px) !important;
  border-top: 1px solid rgba(255,255,255,.1) !important;
  box-shadow: 0 -4px 28px rgba(0,0,0,.36) !important;
  padding: 9px 20px !important;
  padding-bottom: calc(11px + env(safe-area-inset-bottom, 0px)) !important;
}
@media (max-width: 640px) { .rs-calc-fixbar { padding: 7px 12px !important; padding-bottom: calc(9px + env(safe-area-inset-bottom, 0px)) !important; } }
.rs-calc-fixbar .rs-calc-fixbar-in {
  max-width: 960px !important; margin: 0 auto !important;
  display: grid !important; grid-template-columns: repeat(4, 1fr) auto !important;
  gap: 0 18px !important; align-items: center !important;
}
@media (max-width: 640px) { .rs-calc-fixbar .rs-calc-fixbar-in { grid-template-columns: 1fr 1fr !important; gap: 5px 14px !important; } }
@media (max-width: 640px) { .rs-calc-fixbar .rs-calc-fb-btn { grid-column: 1 / -1 !important; } }
.rs-calc-fixbar .rs-calc-fb-item { display: block !important; }
.rs-calc-fixbar .rs-calc-fb-lbl { display: block !important; font-size: .57rem !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: rgba(255,255,255,.38) !important; margin: 0 0 2px !important; font-family: 'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif !important; }
.rs-calc-fixbar .rs-calc-fb-val { display: block !important; font-size: clamp(.85rem, 1.5vw, 1rem) !important; font-weight: 800 !important; letter-spacing: -.03em !important; color: #fff !important; white-space: nowrap !important; margin: 0 !important; transition: color .3s; font-family: 'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif !important; }
.rs-calc-fixbar .rs-calc-fb-val.rs-calc-fb-up { color: #34d399 !important; }
.rs-calc-fixbar .rs-calc-fb-val.rs-calc-fb-dn { color: #f87171 !important; }
.rs-calc-fixbar .rs-calc-fb-btn,
.rs-calc-fixbar a.rs-calc-fb-btn {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  background: #10b981 !important; color: #fff !important;
  font-size: .8rem !important; font-weight: 800 !important; padding: 9px 14px !important;
  border-radius: 8px !important; text-decoration: none !important; white-space: nowrap !important;
  flex-shrink: 0 !important; box-shadow: 0 3px 14px rgba(16,185,129,.4) !important;
  font-family: 'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif !important;
  border: none !important; transition: background .18s;
}
.rs-calc-fixbar .rs-calc-fb-btn:hover { background: #059669 !important; color: #fff !important; text-decoration: none !important; }

/* フェードアニメ */
.rs-calc-app .rs-calc-fade { transition: opacity .1s ease !important; }
.rs-calc-app .rs-calc-fade.rs-calc-upd { opacity: 0 !important; }
.rs-calc-fixbar .rs-calc-fade { transition: opacity .1s ease !important; }
.rs-calc-fixbar .rs-calc-fade.rs-calc-upd { opacity: 0 !important; }







































/* ============================================================
   レンタルスペースAI診断システム — CSS
   外観 → カスタマイズ → 追加CSS に貼り付け
   ============================================================ */

/* ── 全体リセット & フルワイド ── */
.rsd-app,
.rsd-app *,
.rsd-app *::before,
.rsd-app *::after { box-sizing: border-box !important; }

.rsd-app {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;

  /* CSS変数 */
  --d-bg:   #f0f2f8;
  --d-w:    #ffffff;
  --d-ink:  #0d1117;
  --d-i2:   #3d4452;
  --d-i3:   #7a8394;
  --d-bdr:  rgba(0,0,0,.09);
  --d-acc:  #1a56db;
  --d-aL:   #e8efff;
  --d-gr:   #059669;
  --d-grL:  #ecfdf5;
  --d-rd:   #dc2626;
  --d-rdL:  #fef2f2;
  --d-am:   #d97706;
  --d-amL:  #fffbeb;
  --d-pu:   #7c3aed;
  --d-or:   #ea580c;
  --d-sh:   0 2px 14px rgba(0,0,0,.07);
  --d-shM:  0 8px 30px rgba(0,0,0,.11);
  --d-r:    14px;
  --d-rs:   9px;
  --d-fn:   'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif;

  font-family: var(--d-fn) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--d-ink) !important;
  background: var(--d-bg) !important;
  -webkit-font-smoothing: antialiased;
}

/* ── ヘッダー ── */
.rsd-app .rsd-header {
  background: var(--d-ink) !important;
  position: sticky !important; top: 0 !important; z-index: 800 !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
}
.rsd-app .rsd-header-in {
  max-width: 900px !important; margin: 0 auto !important;
  padding: 12px 20px !important; display: flex !important;
  align-items: center !important; justify-content: space-between !important;
}
.rsd-app .rsd-logo {
  display: flex !important; align-items: center !important; gap: 9px !important;
  font-size: .95rem !important; font-weight: 800 !important;
  color: #fff !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-logo em { color: #60a5fa !important; font-style: normal !important; }
.rsd-app .rsd-logo svg { background: var(--d-acc) !important; padding: 6px !important; border-radius: 8px !important; flex-shrink: 0 !important; }
.rsd-app .rsd-header-status { font-size: .72rem !important; color: rgba(255,255,255,.4) !important; font-family: var(--d-fn) !important; }

/* ── ラッパー ── */
.rsd-app .rsd-wrap {
  max-width: 900px !important; margin: 0 auto !important;
  padding: 24px 18px 0 !important; display: flex !important;
  flex-direction: column !important; gap: 24px !important;
}
@media (max-width: 640px) { .rsd-app .rsd-wrap { padding: 14px 12px 0 !important; gap: 16px !important; } }

/* ── カード ── */
.rsd-app .rsd-card {
  background: var(--d-w) !important; border: 1px solid var(--d-bdr) !important;
  border-radius: var(--d-r) !important; box-shadow: var(--d-sh) !important; overflow: hidden !important;
}
.rsd-app .rsd-dark-card {
  background: linear-gradient(135deg, #0a1628 0%, #162040 100%) !important;
  border-color: rgba(255,255,255,.07) !important;
}
.rsd-app .rsd-card-head {
  display: flex !important; align-items: center !important;
  gap: 8px !important; flex-wrap: wrap !important;
  padding: 13px 18px !important; background: #f4f6fb !important;
  border-bottom: 1px solid var(--d-bdr) !important;
  font-size: .8rem !important; font-weight: 700 !important;
  color: var(--d-i2) !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-head-warn { background: #fffbeb !important; border-color: #fde68a !important; color: #92400e !important; }
.rsd-app .rsd-head-ok   { background: #ecfdf5 !important; border-color: #a7f3d0 !important; color: #065f46 !important; }
.rsd-app .rsd-card-body { padding: 18px !important; }
@media (max-width: 640px) { .rsd-app .rsd-card-body { padding: 14px !important; } }

/* ── STEPカード ── */
.rsd-app .rsd-step-card {
  background: var(--d-w) !important; border: 1px solid var(--d-bdr) !important;
  border-radius: var(--d-r) !important; box-shadow: var(--d-sh) !important;
  padding: 24px 22px !important;
}
@media (max-width: 640px) { .rsd-app .rsd-step-card { padding: 18px 14px !important; } }
.rsd-app .rsd-step-badge {
  display: inline-block !important; font-size: .62rem !important;
  font-weight: 800 !important; letter-spacing: .16em !important;
  color: var(--d-acc) !important; background: var(--d-aL) !important;
  padding: 2px 9px !important; border-radius: 4px !important;
  margin-bottom: 10px !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-badge-2 { color: #7c3aed !important; background: #f3e8ff !important; }
.rsd-app .rsd-step-title {
  font-size: 1.05rem !important; font-weight: 800 !important;
  color: var(--d-ink) !important; margin: 0 0 6px !important;
  padding: 0 !important; border: none !important; background: none !important;
  letter-spacing: -.02em !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-step-desc { font-size: .82rem !important; color: var(--d-i3) !important; margin: 0 0 20px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-form-body { display: flex !important; flex-direction: column !important; gap: 18px !important; }

/* ── フィールド ── */
.rsd-app .rsd-field { display: block !important; }
.rsd-app .rsd-label {
  display: block !important; font-size: .76rem !important; font-weight: 700 !important;
  color: var(--d-i2) !important; margin: 0 0 6px !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-required::after { content: ' *' !important; color: var(--d-rd) !important; }
.rsd-app .rsd-field.rsd-field-err .rsd-sel,
.rsd-app .rsd-field.rsd-field-err .rsd-inp { border-color: var(--d-rd) !important; box-shadow: 0 0 0 3px rgba(220,38,38,.12) !important; }

/* input / select */
.rsd-app .rsd-inp,
.rsd-app input.rsd-inp,
.rsd-app select.rsd-sel {
  display: block !important; width: 100% !important; height: 46px !important;
  border: 1.5px solid #d1d5db !important; border-radius: var(--d-rs) !important;
  font-size: .92rem !important; font-weight: 600 !important;
  font-family: var(--d-fn) !important; color: var(--d-ink) !important;
  background: #fafbfc !important; padding: 0 12px !important;
  margin: 0 !important; outline: none !important; box-shadow: none !important;
  transition: border-color .18s, box-shadow .18s;
  -webkit-appearance: none !important; appearance: none !important;
  -moz-appearance: textfield !important;
}
.rsd-app input.rsd-inp-n::-webkit-inner-spin-button,
.rsd-app input.rsd-inp-n::-webkit-outer-spin-button { -webkit-appearance: none !important; }
.rsd-app .rsd-has-pfx { padding-left: 26px !important; }
.rsd-app .rsd-inp:focus, .rsd-app input.rsd-inp:focus, .rsd-app select.rsd-sel:focus {
  border-color: var(--d-acc) !important; box-shadow: 0 0 0 3px rgba(26,86,219,.14) !important;
  background: #fff !important; outline: none !important;
}

/* select ラッパー */
.rsd-app .rsd-sel-wrap { position: relative !important; }
.rsd-app .rsd-sel { padding-right: 36px !important; cursor: pointer !important; }
.rsd-app .rsd-sel-icon {
  position: absolute !important; right: 12px !important; top: 50% !important;
  transform: translateY(-50%) !important; color: var(--d-i3) !important;
  pointer-events: none !important;
}

/* inp-wrap */
.rsd-app .rsd-inp-wrap { position: relative !important; display: flex !important; align-items: center !important; }
.rsd-app .rsd-inp-pfx { position: absolute !important; left: 11px !important; font-size: .85rem !important; font-weight: 600 !important; color: var(--d-i3) !important; pointer-events: none !important; }
.rsd-app .rsd-inp-sfx { position: absolute !important; right: 10px !important; font-size: .78rem !important; font-weight: 600 !important; color: var(--d-i3) !important; pointer-events: none !important; white-space: nowrap !important; }

/* エラー */
.rsd-app .rsd-err {
  font-size: .74rem !important; font-weight: 700 !important;
  color: var(--d-rd) !important; margin-top: 5px !important;
  display: none !important; align-items: center !important; gap: 4px !important;
  font-family: var(--d-fn) !important;
}
.rsd-app .rsd-err.rsd-err-show { display: flex !important; }
.rsd-app .rsd-err::before { content: '❗' !important; }

/* ── ラジオ (エリアタイプ) ── */
.rsd-app .rsd-radio-grid {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 8px !important;
}
@media (max-width: 480px) { .rsd-app .rsd-radio-grid { grid-template-columns: 1fr 1fr !important; } }
.rsd-app .rsd-radio-card {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 5px !important; padding: 10px 6px !important; cursor: pointer !important;
  border: 1.5px solid var(--d-bdr) !important; border-radius: 10px !important;
  background: #fafbfc !important; transition: all .16s; user-select: none !important;
}
.rsd-app .rsd-radio-card:has(.rsd-radio-inp:checked) {
  border-color: var(--d-acc) !important; background: var(--d-aL) !important;
}
.rsd-app .rsd-radio-inp { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.rsd-app .rsd-radio-icon { font-size: 1.3rem !important; line-height: 1 !important; }
.rsd-app .rsd-radio-lbl { font-size: .71rem !important; font-weight: 700 !important; color: var(--d-i2) !important; text-align: center !important; font-family: var(--d-fn) !important; line-height: 1.3 !important; }

/* ── 用途 ── */
.rsd-app .rsd-use-grid {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 8px !important;
}
@media (max-width: 400px) { .rsd-app .rsd-use-grid { grid-template-columns: 1fr 1fr !important; } }
.rsd-app .rsd-use-card {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 4px !important; padding: 10px 4px !important; cursor: pointer !important;
  border: 1.5px solid var(--d-bdr) !important; border-radius: 10px !important;
  background: #fafbfc !important; transition: all .16s; user-select: none !important;
  font-family: var(--d-fn) !important;
}
.rsd-app .rsd-use-card:has(.rsd-radio-inp:checked) { border-color: var(--d-acc) !important; background: var(--d-acc) !important; }
.rsd-app .rsd-use-card:has(.rsd-radio-inp:checked) small { color: rgba(255,255,255,.9) !important; }
.rsd-app .rsd-use-card > span { font-size: 1.3rem !important; line-height: 1 !important; }
.rsd-app .rsd-use-card small { font-size: .7rem !important; font-weight: 700 !important; color: var(--d-i2) !important; line-height: 1.3 !important; text-align: center !important; }

/* ── 2カラム ── */
.rsd-app .rsd-two-col { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 14px !important; }
@media (max-width: 480px) { .rsd-app .rsd-two-col { grid-template-columns: 1fr !important; } }

/* ── スライダー ── */
.rsd-app .rsd-sl-row { display: flex !important; align-items: center !important; gap: 10px !important; margin-top: 7px !important; }
.rsd-app .rsd-sl, .rsd-app input[type="range"].rsd-sl {
  flex: 1 !important; -webkit-appearance: none !important; appearance: none !important;
  height: 4px !important; background: linear-gradient(to right, var(--d-acc) var(--rp, 0%), #d1d5db var(--rp, 0%)) !important;
  border-radius: 99px !important; outline: none !important; cursor: pointer !important;
  padding: 0 !important; margin: 0 !important; border: none !important; box-shadow: none !important;
}
.rsd-app .rsd-sl::-webkit-slider-thumb {
  -webkit-appearance: none !important; width: 18px !important; height: 18px !important;
  background: var(--d-acc) !important; border-radius: 50% !important;
  box-shadow: 0 2px 7px rgba(26,86,219,.4) !important; border: none !important; cursor: pointer !important;
}
.rsd-app .rsd-sl::-moz-range-thumb { width: 18px !important; height: 18px !important; background: var(--d-acc) !important; border: none !important; border-radius: 50% !important; cursor: pointer !important; }
.rsd-app .rsd-sl-val { font-size: .78rem !important; font-weight: 700 !important; color: var(--d-acc) !important; min-width: 40px !important; text-align: right !important; font-family: var(--d-fn) !important; }

/* ── セグメントボタン ── */
.rsd-app .rsd-seg { display: flex !important; gap: 6px !important; flex-wrap: wrap !important; }
.rsd-app .rsd-seg-btn, .rsd-app button.rsd-seg-btn {
  padding: 6px 13px !important; border: 1.5px solid var(--d-bdr) !important;
  border-radius: 999px !important; background: #fafbfc !important;
  font-size: .76rem !important; font-weight: 700 !important;
  color: var(--d-i2) !important; cursor: pointer !important;
  font-family: var(--d-fn) !important; transition: all .15s;
  -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important;
}
.rsd-app .rsd-seg-btn.rsd-seg-on { border-color: var(--d-acc) !important; background: var(--d-acc) !important; color: #fff !important; }

/* ── 実行ボタン ── */
.rsd-app .rsd-run-btn, .rsd-app button.rsd-run-btn {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 8px !important; width: 100% !important; padding: 14px !important;
  margin-top: 6px !important; background: linear-gradient(135deg, #1a56db 0%, #1e40af 100%) !important;
  color: #fff !important; font-size: .94rem !important; font-weight: 800 !important;
  border: none !important; border-radius: var(--d-r) !important; cursor: pointer !important;
  font-family: var(--d-fn) !important; box-shadow: 0 4px 18px rgba(26,86,219,.36) !important;
  transition: transform .14s, box-shadow .14s; -webkit-appearance: none !important;
}
.rsd-app .rsd-run-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 26px rgba(26,86,219,.44) !important; }
.rsd-app .rsd-run-btn:disabled { opacity: .65 !important; transform: none !important; cursor: not-allowed !important; }
.rsd-app .rsd-run-detail { background: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%) !important; box-shadow: 0 4px 18px rgba(124,58,237,.36) !important; }
.rsd-app .rsd-run-detail:hover { box-shadow: 0 6px 26px rgba(124,58,237,.44) !important; }

/* ── アコーディオン ── */
.rsd-app .rsd-accordion-btn, .rsd-app button.rsd-accordion-btn {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  width: 100% !important; padding: 0 !important; background: none !important;
  border: none !important; cursor: pointer !important; font-family: var(--d-fn) !important;
  font-size: .88rem !important; font-weight: 700 !important; color: var(--d-i2) !important;
  -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important;
  gap: 10px !important;
}
.rsd-app .rsd-acc-arrow { transition: transform .22s; flex-shrink: 0; }
.rsd-app .rsd-acc-arrow.rsd-open { transform: rotate(180deg) !important; }
.rsd-app .rsd-accordion-body { padding-top: 18px !important; }

/* ── 時間帯別稼働 ── */
.rsd-app .rsd-timeocc-grid { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.rsd-app .rsd-timeocc-row { display: flex !important; align-items: center !important; gap: 10px !important; }
.rsd-app .rsd-timeocc-row > span:first-child { font-size: .76rem !important; font-weight: 600 !important; color: var(--d-i2) !important; min-width: 100px !important; flex-shrink: 0 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-timeocc-inp { max-width: 80px !important; height: 36px !important; }

/* ============================================================
   結果セクション
   ============================================================ */

/* スコアリング */
.rsd-app .rsd-score-card {
  background: var(--d-w) !important; border: 1px solid var(--d-bdr) !important;
  border-radius: var(--d-r) !important; box-shadow: var(--d-shM) !important;
  padding: 24px 20px !important; display: flex !important;
  align-items: center !important; gap: 24px !important;
}
@media (max-width: 480px) { .rsd-app .rsd-score-card { flex-direction: column !important; } }
.rsd-app .rsd-score-ring-wrap { position: relative !important; width: 110px !important; height: 110px !important; flex-shrink: 0 !important; }
.rsd-app .rsd-score-ring { width: 110px !important; height: 110px !important; transform: rotate(-90deg) !important; }
.rsd-app .rsd-ring-bg { fill: none !important; stroke: #e9ecef !important; stroke-width: 10 !important; }
.rsd-app .rsd-ring-fill { fill: none !important; stroke: var(--d-acc) !important; stroke-width: 10 !important; stroke-linecap: round !important; transition: stroke-dashoffset .8s ease, stroke .4s; }
.rsd-app .rsd-score-num {
  position: absolute !important; top: 50% !important; left: 50% !important;
  transform: translate(-50%,-50%) !important; font-size: 1.55rem !important;
  font-weight: 900 !important; color: var(--d-ink) !important; letter-spacing: -.05em !important;
  font-family: var(--d-fn) !important;
}
.rsd-app .rsd-score-right { flex: 1 !important; }
.rsd-app .rsd-score-badge {
  display: inline-flex !important; align-items: center !important; gap: 6px !important;
  font-size: .78rem !important; font-weight: 800 !important; padding: 4px 12px !important;
  border-radius: 999px !important; margin-bottom: 8px !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-badge-optimal { background: var(--d-grL) !important; color: var(--d-gr) !important; border: 1px solid rgba(5,150,105,.2) !important; }
.rsd-app .rsd-badge-improve { background: var(--d-amL) !important; color: var(--d-am) !important; border: 1px solid rgba(217,119,6,.2) !important; }
.rsd-app .rsd-badge-danger  { background: #fff7ed !important; color: var(--d-or) !important; border: 1px solid rgba(234,88,12,.2) !important; }
.rsd-app .rsd-badge-exit    { background: var(--d-rdL) !important; color: var(--d-rd) !important; border: 1px solid rgba(220,38,38,.2) !important; }
.rsd-app .rsd-score-verdict { font-size: 1.1rem !important; font-weight: 800 !important; color: var(--d-ink) !important; margin-bottom: 5px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-score-desc { font-size: .81rem !important; color: var(--d-i2) !important; line-height: 1.65 !important; font-family: var(--d-fn) !important; }

/* KPIグリッド */
.rsd-app .rsd-kpi-row { display: grid !important; grid-template-columns: 1fr 1fr 1fr 1fr !important; gap: 10px !important; }
@media (max-width: 640px) { .rsd-app .rsd-kpi-row { grid-template-columns: 1fr 1fr !important; } }
.rsd-app .rsd-kpi-card {
  background: var(--d-w) !important; border: 1px solid var(--d-bdr) !important;
  border-radius: var(--d-r) !important; box-shadow: var(--d-sh) !important;
  padding: 14px 12px 10px !important;
}
.rsd-app .rsd-kpi-main { background: linear-gradient(135deg, #0d1740 0%, #1a56db 100%) !important; border-color: transparent !important; }
.rsd-app .rsd-kpi-lbl { font-size: .63rem !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--d-i3) !important; margin-bottom: 4px !important; display: block !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-kpi-main .rsd-kpi-lbl { color: rgba(255,255,255,.5) !important; }
.rsd-app .rsd-kpi-val { display: block !important; font-size: clamp(1.2rem, 2.5vw, 1.7rem) !important; font-weight: 900 !important; letter-spacing: -.04em !important; line-height: 1 !important; color: var(--d-ink) !important; margin-bottom: 3px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-kpi-main .rsd-kpi-val { color: #fff !important; }
.rsd-app .rsd-kpi-sm { font-size: clamp(1rem, 2vw, 1.35rem) !important; }
.rsd-app .rsd-kpi-sub { display: block !important; font-size: .68rem !important; color: var(--d-i3) !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-kpi-main .rsd-kpi-sub { color: rgba(255,255,255,.48) !important; }

/* 診断バー */
.rsd-app .rsd-diag-bars { display: flex !important; flex-direction: column !important; gap: 10px !important; }
.rsd-app .rsd-diag-row { display: flex !important; align-items: center !important; gap: 10px !important; }
.rsd-app .rsd-diag-name { font-size: .74rem !important; font-weight: 700 !important; color: var(--d-i2) !important; min-width: 72px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-diag-track { flex: 1 !important; height: 7px !important; background: #e9ecef !important; border-radius: 99px !important; overflow: hidden !important; }
.rsd-app .rsd-diag-fill { height: 100% !important; border-radius: 99px !important; background: var(--d-acc) !important; transition: width .7s ease !important; }
.rsd-app .rsd-fill-gr { background: var(--d-gr) !important; }
.rsd-app .rsd-fill-am { background: var(--d-am) !important; }
.rsd-app .rsd-fill-pu { background: var(--d-pu) !important; }
.rsd-app .rsd-fill-or { background: var(--d-or) !important; }
.rsd-app .rsd-diag-n { font-size: .76rem !important; font-weight: 700 !important; color: var(--d-ink) !important; min-width: 24px !important; text-align: right !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-diag-wt { font-size: .66rem !important; color: var(--d-i3) !important; min-width: 26px !important; font-family: var(--d-fn) !important; }

/* 問題点・提案 */
.rsd-app .rsd-diag-cols .rsd-issue-card,
.rsd-app .rsd-diag-cols .rsd-action-card { border-radius: var(--d-r) !important; }
.rsd-app .rsd-issue-list, .rsd-app .rsd-action-list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 8px !important; }
.rsd-app .rsd-issue-placeholder { font-size: .8rem !important; color: var(--d-i3) !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-issue-item { display: flex !important; gap: 8px !important; padding: 9px 11px !important; border-radius: 8px !important; background: #fff8f8 !important; border: 1px solid rgba(220,38,38,.1) !important; font-size: .8rem !important; color: var(--d-ink) !important; line-height: 1.55 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-action-item { display: flex !important; gap: 8px !important; padding: 9px 11px !important; border-radius: 8px !important; background: #f0fdf4 !important; border: 1px solid rgba(5,150,105,.12) !important; font-size: .8rem !important; color: var(--d-ink) !important; line-height: 1.55 !important; font-family: var(--d-fn) !important; }

/* ============================================================
   AIレポート（詳細）
   ============================================================ */
.rsd-app .rsd-report-placeholder {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 12px !important; padding: 36px !important; color: rgba(255,255,255,.3) !important;
  font-size: .84rem !important; text-align: center !important; font-family: var(--d-fn) !important;
}
.rsd-app .rsd-report-body { padding: 22px !important; display: flex !important; flex-direction: column !important; gap: 22px !important; }
.rsd-app .rsd-report-sec {}
.rsd-app .rsd-rpt-h { font-size: .68rem !important; font-weight: 800 !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: #60a5fa !important; display: block !important; margin-bottom: 10px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-rpt-verdict { display: flex !important; gap: 13px !important; align-items: flex-start !important; padding: 14px 16px !important; border-radius: 10px !important; background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.1) !important; }
.rsd-app .rsd-rpt-ico { font-size: 1.7rem !important; flex-shrink: 0 !important; }
.rsd-app .rsd-rpt-vtext { font-size: .9rem !important; font-weight: 800 !important; color: #fff !important; font-family: var(--d-fn) !important; margin: 0 !important; line-height: 1.5 !important; }
.rsd-app .rsd-rpt-vtext small { display: block !important; font-size: .78rem !important; font-weight: 400 !important; color: rgba(255,255,255,.56) !important; margin-top: 4px !important; }
.rsd-app .rsd-rpt-items { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.rsd-app .rsd-rpt-item { display: flex !important; gap: 10px !important; padding: 11px 13px !important; border-radius: 9px !important; background: rgba(255,255,255,.05) !important; align-items: flex-start !important; }
.rsd-app .rsd-rpt-item-ico { font-size: .95rem !important; flex-shrink: 0 !important; margin-top: 1px !important; }
.rsd-app .rsd-rpt-item-text { font-size: .8rem !important; color: rgba(255,255,255,.78) !important; line-height: 1.65 !important; font-family: var(--d-fn) !important; margin: 0 !important; }
.rsd-app .rsd-rpt-item-text strong { color: #fff !important; font-weight: 700 !important; }
.rsd-app .rsd-rpt-item-text em { color: #93c5fd !important; font-style: normal !important; }
.rsd-app .rsd-rpt-pred {
  display: grid !important; grid-template-columns: 1fr 1fr 1fr !important; gap: 10px !important;
}
@media (max-width: 480px) { .rsd-app .rsd-rpt-pred { grid-template-columns: 1fr 1fr !important; } }
.rsd-app .rsd-pred-box { background: rgba(255,255,255,.06) !important; border: 1px solid rgba(255,255,255,.1) !important; border-radius: 9px !important; padding: 12px !important; }
.rsd-app .rsd-pred-lbl { font-size: .65rem !important; font-weight: 700 !important; letter-spacing: .1em !important; color: rgba(255,255,255,.45) !important; display: block !important; margin-bottom: 4px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-pred-val { font-size: 1.05rem !important; font-weight: 900 !important; color: #fff !important; letter-spacing: -.03em !important; display: block !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-pred-val.rsd-pv-up { color: #34d399 !important; }
.rsd-app .rsd-pred-val.rsd-pv-dn { color: #f87171 !important; }

/* ============================================================
   カレンダー
   ============================================================ */
.rsd-app .rsd-cal-ctrl { display: flex !important; align-items: center !important; gap: 8px !important; margin-left: auto !important; }
.rsd-app .rsd-cal-btn, .rsd-app button.rsd-cal-btn {
  width: 28px !important; height: 28px !important; border-radius: 7px !important;
  border: 1.5px solid var(--d-bdr) !important; background: var(--d-w) !important;
  font-size: 1.1rem !important; color: var(--d-i2) !important;
  cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-appearance: none !important; box-shadow: none !important; margin: 0 !important; transition: all .14s;
}
.rsd-app .rsd-cal-btn:hover { border-color: var(--d-acc) !important; color: var(--d-acc) !important; }
.rsd-app .rsd-cal-ym { font-size: .86rem !important; font-weight: 800 !important; color: var(--d-ink) !important; min-width: 86px !important; text-align: center !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-cal-legend { display: flex !important; gap: 14px !important; padding: 8px 16px !important; border-bottom: 1px solid var(--d-bdr) !important; flex-wrap: wrap !important; font-size: .7rem !important; font-weight: 700 !important; color: var(--d-i3) !important; align-items: center !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-cal-legend span { display: flex !important; align-items: center !important; gap: 4px !important; }
.rsd-app .rsd-leg-dot { width: 9px !important; height: 9px !important; border-radius: 3px !important; display: inline-block !important; }
.rsd-app .rsd-leg-hot  { background: #ef4444 !important; }
.rsd-app .rsd-leg-warm { background: #f59e0b !important; }
.rsd-app .rsd-leg-mid  { background: #3b82f6 !important; }
.rsd-app .rsd-leg-cool { background: #93c5fd !important; }
.rsd-app .rsd-cal-wrap { padding: 10px 12px !important; }
.rsd-app .rsd-cal-dows { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 2px !important; margin-bottom: 3px !important; }
.rsd-app .rsd-cal-dows > div { text-align: center !important; font-size: .66rem !important; font-weight: 700 !important; color: var(--d-i3) !important; padding: 3px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-fri,.rsd-app .rsd-sat { color: #1a56db !important; }
.rsd-app .rsd-sun { color: #dc2626 !important; }
.rsd-app .rsd-cal-grid { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 2px !important; }
.rsd-app .rsd-cal-cell {
  border-radius: 6px !important; padding: 4px 2px !important;
  min-height: 56px !important; display: flex !important; flex-direction: column !important;
  align-items: center !important; gap: 1px !important;
  cursor: pointer !important; transition: transform .11s; border: 1.5px solid transparent !important;
}
.rsd-app .rsd-cal-cell:hover { transform: scale(1.07) !important; z-index: 2 !important; box-shadow: 0 3px 12px rgba(0,0,0,.18) !important; }
.rsd-app .rsd-cal-cell.rsd-today { border-color: var(--d-acc) !important; }
.rsd-app .rsd-cal-cell.rsd-selected { box-shadow: 0 0 0 2px var(--d-acc) !important; }
.rsd-app .rsd-cal-cell.rsd-other { opacity: .3 !important; cursor: default !important; pointer-events: none !important; }
.rsd-app .rsd-cal-day { font-size: .78rem !important; font-weight: 800 !important; line-height: 1 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-cal-sc  { font-size: .58rem !important; font-weight: 700 !important; line-height: 1 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-cal-pr  { font-size: .6rem !important; font-weight: 800 !important; line-height: 1 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-cal-detail { margin: 0 12px 12px !important; padding: 12px 14px !important; background: #f8f9fc !important; border-radius: var(--d-rs) !important; border: 1px solid var(--d-bdr) !important; }
.rsd-app .rsd-cal-detail-ph { font-size: .78rem !important; color: var(--d-i3) !important; text-align: center !important; padding: 8px !important; font-family: var(--d-fn) !important; }

/* ============================================================
   ヒートマップ
   ============================================================ */
.rsd-app .rsd-hm-legend { display: flex !important; align-items: center !important; gap: 8px !important; margin-left: auto !important; font-size: .7rem !important; font-weight: 700 !important; color: var(--d-i3) !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-hm-leg { width: 11px !important; height: 11px !important; border-radius: 3px !important; display: inline-block !important; }
.rsd-app .rsd-hm-low  { background: #93c5fd !important; }
.rsd-app .rsd-hm-mid  { background: #fbbf24 !important; }
.rsd-app .rsd-hm-high { background: #ef4444 !important; }
.rsd-app .rsd-hm-scroll-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; padding: 10px 14px !important; }
.rsd-app .rsd-hm-container { display: grid !important; min-width: 500px !important; gap: 3px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-hm-lbl { display: flex !important; align-items: center !important; justify-content: center !important; font-size: .61rem !important; font-weight: 700 !important; color: var(--d-i3) !important; padding: 2px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-hm-cell { border-radius: 5px !important; padding: 4px 2px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; cursor: default !important; min-height: 44px !important; transition: transform .1s; }
.rsd-app .rsd-hm-cell:hover { transform: scale(1.1) !important; z-index: 3 !important; }
.rsd-app .rsd-hm-s { font-size: .57rem !important; font-weight: 800 !important; line-height: 1 !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-hm-p { font-size: .55rem !important; font-weight: 700 !important; margin-top: 2px !important; line-height: 1 !important; font-family: var(--d-fn) !important; }

/* ============================================================
   競合比較・トグル
   ============================================================ */
.rsd-app .rsd-toggle-wrap { display: flex !important; align-items: center !important; gap: 7px !important; margin-left: auto !important; cursor: pointer !important; user-select: none !important; }
.rsd-app .rsd-toggle-inp { position: absolute !important; opacity: 0 !important; width: 0 !important; height: 0 !important; }
.rsd-app .rsd-toggle { width: 36px !important; height: 20px !important; background: #d1d5db !important; border-radius: 999px !important; position: relative !important; transition: background .2s; flex-shrink: 0 !important; }
.rsd-app .rsd-toggle::after { content: '' !important; position: absolute !important; top: 2px !important; left: 2px !important; width: 16px !important; height: 16px !important; background: #fff !important; border-radius: 50% !important; transition: transform .2s; }
.rsd-app .rsd-toggle-inp:checked + .rsd-toggle { background: var(--d-acc) !important; }
.rsd-app .rsd-toggle-inp:checked + .rsd-toggle::after { transform: translateX(16px) !important; }
.rsd-app .rsd-toggle-lbl { font-size: .74rem !important; font-weight: 700 !important; color: var(--d-i2) !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-comp-placeholder { font-size: .8rem !important; color: var(--d-i3) !important; text-align: center !important; padding: 12px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-comp-inner { padding: 16px !important; display: flex !important; flex-direction: column !important; gap: 12px !important; }
.rsd-app .rsd-comp-pos { display: flex !important; gap: 12px !important; align-items: center !important; padding: 14px 16px !important; border-radius: 10px !important; background: var(--d-aL) !important; border: 1px solid rgba(26,86,219,.18) !important; }
.rsd-app .rsd-comp-ico { font-size: 1.6rem !important; flex-shrink: 0 !important; }
.rsd-app .rsd-comp-title { font-size: .88rem !important; font-weight: 800 !important; color: var(--d-ink) !important; margin: 0 0 3px !important; font-family: var(--d-fn) !important; }
.rsd-app .rsd-comp-sub { font-size: .77rem !important; color: var(--d-i2) !important; font-family: var(--d-fn) !important; margin: 0 !important; }
.rsd-app .rsd-comp-recs { display: flex !important; flex-direction: column !important; gap: 6px !important; }
.rsd-app .rsd-comp-rec { font-size: .78rem !important; color: var(--d-i2) !important; padding: 8px 12px !important; border-radius: 7px !important; background: #f4f6fb !important; border: 1px solid var(--d-bdr) !important; font-family: var(--d-fn) !important; margin: 0 !important; }

/* ============================================================
   固定バー
   ============================================================ */
.rsd-fixbar {
  position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 999999 !important; background: rgba(10,14,22,.97) !important;
  backdrop-filter: blur(14px) !important; -webkit-backdrop-filter: blur(14px) !important;
  border-top: 1px solid rgba(255,255,255,.1) !important; box-shadow: 0 -4px 28px rgba(0,0,0,.36) !important;
  padding: 9px 18px !important; padding-bottom: calc(11px + env(safe-area-inset-bottom, 0px)) !important;
}
@media (max-width: 640px) { .rsd-fixbar { padding: 7px 12px !important; padding-bottom: calc(9px + env(safe-area-inset-bottom, 0px)) !important; } }
.rsd-fixbar .rsd-fixbar-in {
  max-width: 900px !important; margin: 0 auto !important;
  display: grid !important; grid-template-columns: 1fr 1fr 1fr auto !important;
  gap: 0 18px !important; align-items: center !important;
}
@media (max-width: 640px) { .rsd-fixbar .rsd-fixbar-in { grid-template-columns: 1fr 1fr auto !important; } }
.rsd-fixbar .rsd-fb-item { display: block !important; }
.rsd-fixbar .rsd-fb-lbl { display: block !important; font-size: .56rem !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; color: rgba(255,255,255,.38) !important; margin-bottom: 2px !important; font-family: var(--d-fn, sans-serif) !important; }
.rsd-fixbar .rsd-fb-val { display: block !important; font-size: clamp(.84rem, 1.5vw, 1rem) !important; font-weight: 800 !important; letter-spacing: -.03em !important; color: #fff !important; white-space: nowrap !important; margin: 0 !important; font-family: var(--d-fn, sans-serif) !important; transition: color .3s; }
.rsd-fixbar .rsd-fb-val.rsd-up { color: #34d399 !important; }
.rsd-fixbar .rsd-fb-val.rsd-dn { color: #f87171 !important; }
.rsd-fixbar .rsd-fb-btn, .rsd-fixbar a.rsd-fb-btn {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  background: #10b981 !important; color: #fff !important; font-size: .78rem !important;
  font-weight: 800 !important; padding: 8px 13px !important; border-radius: 8px !important;
  text-decoration: none !important; white-space: nowrap !important; flex-shrink: 0 !important;
  box-shadow: 0 3px 14px rgba(16,185,129,.4) !important; font-family: var(--d-fn, sans-serif) !important;
  border: none !important; transition: background .18s;
}
.rsd-fixbar .rsd-fb-btn:hover { background: #059669 !important; color: #fff !important; text-decoration: none !important; }
@media (max-width: 480px) { .rsd-fixbar .rsd-fb-item:last-of-type { display: none !important; } }



.rs-calc-disclaimer {
  margin-top: 40px;
  padding: 20px;
  background: #f8f9fb;
  border: 1px solid #e0e4ea;
  border-radius: 8px;
  font-size: 14px;
  color: #555;
  line-height: 1.7;
}

.rs-calc-disclaimer h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #333;
}

.rs-calc-disclaimer p {
  margin-bottom: 8px;
}