/*
Theme Name: Radar B（子育てレーダー）
Theme URI: https://kosodateradar.jp/
Author: Kosodate Radar
Description: 子育てレーダー専用の薄型テーマ。B案「あたたかい」— パステルのピーチ〜テラコッタ基調、丸みのある見出し、スマホ前提＋下部タブバー。データとロジックは「子育てレーダー コア」プラグイン側が担います。
Version: 0.1.63
License: GPL-2.0-or-later
Text Domain: radar-b
*/

/* ============ Base ============ */
:root {
	--cream: #fffbf7;
	--peach-50: #fff7f1;
	--peach-100: #ffead9;
	--peach-200: #ffd9be;
	--terra: #e07856;
	--terra-dark: #c85a3c;
	--terra-soft: #f6a183;
	--ink: #3d3330;
	--ink-soft: #857068;
	--line: #f3ddd0;
	--card: #ffffff;
	--danger: #d64541;
	--warn: #dd8f1f;
	--ok: #4d9a6d;
	--info: #7a8a99;
	--shadow: 0 4px 18px rgba(200, 120, 80, 0.13);
	--radius: 16px;
	--tabbar-h: 60px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: "Hiragino Maru Gothic ProN", "Hiragino Sans", "Noto Sans JP",
		"Yu Gothic UI", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));
}

h1, h2, h3, .rb-heading {
	font-family: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;
	font-weight: 700;
	line-height: 1.4;
	margin: 0 0 0.5em;
}

a { color: var(--terra-dark); }
img { max-width: 100%; height: auto; }

.rb-wrap {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 16px 32px;
}
.rb-wrap--ad {
	padding-bottom: 0;
}
.rb-wrap--ad .rb-ad {
	margin-top: 0;
}

/* Amounts & dates: always crisp, tabular figures. */
.rb-amount, .rb-date, .rb-count {
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
}

/* ============ Header ============ */
.rb-header {
	background: linear-gradient(180deg, var(--peach-100), var(--peach-50));
	border-bottom: 1px solid var(--line);
	padding: 14px 16px 12px;
	position: sticky;
	top: 0;
	z-index: 40;
}
.rb-header__inner {
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.rb-logo {
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 800;
	font-size: 1.3rem;
	color: var(--terra-dark);
	text-decoration: none;
}
.rb-logo small {
	display: block;
	font-size: 0.68rem;
	font-weight: 500;
	color: var(--ink-soft);
	letter-spacing: 0.04em;
}
.rb-header__city {
	font-size: 0.8rem;
	color: var(--ink-soft);
	text-align: right;
	min-width: 0;
}
.rb-header__city strong {
	color: var(--ink);
	display: block;
	max-width: 8em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ============ Bottom tab bar ============ */
.rb-tabbar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px));
	padding-bottom: env(safe-area-inset-bottom, 0px);
	background: rgba(255, 255, 255, 0.97);
	border-top: 1px solid var(--line);
	display: flex;
	z-index: 50;
	box-shadow: 0 -4px 16px rgba(200, 120, 80, 0.08);
}
.rb-tabbar a {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	text-decoration: none;
	color: var(--ink-soft);
	font-size: 0.68rem;
	font-weight: 600;
}
.rb-tabbar a .rb-tabbar__icon { font-size: 1.25rem; line-height: 1; }
.rb-tabbar a { position: relative; }
.rb-tabbar__badge {
	position: absolute;
	top: 5px;
	right: calc(50% - 19px);
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #e5484d;
	box-shadow: 0 0 0 2px #fff;
}
.rb-mycity { color: var(--terra-dark); font-weight: 700; font-size: 0.85rem; margin: 6px 0 0; }
.rb-back-mycity { margin: 10px 0 0; }
.rb-back-mycity__btn {
	display: inline-block;
	background: var(--terra);
	color: #fff;
	font-weight: 700;
	font-size: 0.9rem;
	padding: 10px 18px;
	border-radius: 999px;
	text-decoration: none;
}
.rb-back-mycity__btn:hover { background: var(--terra-dark); }
.rb-japan-links {
	background: #fdf3ec;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 14px 16px;
	margin: 24px 0;
}
.rb-japan-links__title { font-weight: 700; color: var(--terra-dark); margin: 0 0 6px; }
.rb-japan-links ul { margin: 0; padding-left: 1.2em; }
.rb-tabbar a.is-active { color: var(--terra-dark); }

/* ============ Sections & cards ============ */
.rb-section { margin: 32px 0; }
.rb-section__title {
	font-size: 1.08rem;
	display: flex;
	align-items: center;
	gap: 8px;
	background: #fdeee7;
	color: var(--terra-dark);
	border-radius: 12px;
	padding: 9px 14px;
	margin: 0 0 14px;
}
.rb-section__title::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--terra);
	flex: none;
}

.rb-card {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 16px;
	margin: 0 0 12px;
}
.rb-card__title {
	font-size: 1.05rem;
	margin: 0 0 6px;
}
.rb-card__title a { color: var(--ink); text-decoration: none; }
/* Whole-card tap target: the title link stretches over the card (0.1.26). */
.rb-card { position: relative; }
.rb-card__title a::after { content: ""; position: absolute; inset: 0; }
.rb-card a:not(.rb-card__title a), .rb-card button { position: relative; z-index: 2; }
.rb-card__meta {
	font-size: 0.82rem;
	color: var(--ink-soft);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin: 4px 0;
}
.rb-card__amount {
	font-size: 1.35rem;
	color: var(--terra-dark);
}
.rb-card__summary { margin: 6px 0 0; font-size: 0.95rem; }

.rb-badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 2px 9px;
	border-radius: 999px;
	background: var(--peach-100);
	color: var(--terra-dark);
	vertical-align: middle;
}
.rb-badge.is-new { background: #ffe3e3; color: var(--danger); }
.rb-badge.is-changed { background: #fff0d6; color: var(--warn); }
.rb-badge.is-recurring { background: #e2f2e7; color: var(--ok); }
.rb-srcdate { font-size: 0.72rem; font-weight: 400; color: #9a887e; white-space: nowrap; margin-left: 0.15em; }

.rb-deadline {
	display: inline-block;
	font-weight: 700;
	font-size: 0.85rem;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--peach-50);
	border: 1px solid var(--line);
}
.rb-deadline.is-urgent { background: #ffe3e3; border-color: #f5b8b5; color: var(--danger); }
.rb-deadline.is-warn { background: #fff0d6; border-color: #f0d29a; color: var(--warn); }
.rb-deadline.is-past { background: #eee; color: var(--ink-soft); }
.rb-deadline.is-info { color: var(--info); }
.rb-deadline.is-open { background: #e2f2e7; border-color: #bfe3c6; color: var(--ok); }

/* Countdown cards on the front page */
.rb-countdown {
	border-left: 6px solid var(--terra-soft);
}
.rb-countdown .rb-count {
	font-size: 1.6rem;
	color: var(--danger);
}

/* Category filter chips */
.rb-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 18px;
	align-items: center;
}
.rb-sort {
	margin-left: auto;
	font: inherit;
	font-size: 0.85rem;
	padding: 6px 10px;
	border-radius: 999px;
	border: 1.5px solid var(--peach-200);
	background: #fff;
	color: var(--ink);
}
.rb-chip {
	border: 1.5px solid var(--peach-200);
	background: #fff;
	color: var(--ink);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
}
.rb-chip.is-active {
	background: var(--terra);
	border-color: var(--terra);
	color: #fff;
}

/* ============ City picker ============ */
.kr-picker { position: relative; }
.kr-city-input {
	width: 100%;
	font-size: 1.05rem;
	padding: 14px 16px;
	border: 2px solid var(--peach-200);
	border-radius: 999px;
	background: #fff;
	outline: none;
}
.kr-city-input:focus { border-color: var(--terra-soft); }
.kr-city-results {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 6px);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	z-index: 30;
	overflow: hidden;
}
.kr-city-hit {
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	border-bottom: 1px solid var(--peach-50);
	padding: 12px 16px;
	font-size: 1rem;
	cursor: pointer;
}
.kr-city-hit:last-child { border-bottom: none; }
.kr-city-hit:active { background: var(--peach-50); }
.kr-city-none { margin: 0; padding: 12px 16px; color: var(--ink-soft); }

/* ============ Fact box (detail pages) ============ */
.rb-facts {
	background: var(--peach-50);
	border: 1.5px dashed var(--peach-200);
	border-radius: var(--radius);
	padding: 16px;
	margin: 16px 0;
}
.rb-facts dl {
	display: grid;
	grid-template-columns: 5.5em 1fr;
	gap: 8px 12px;
	margin: 0;
}
.rb-facts dt { font-weight: 700; color: var(--terra-dark); }
.rb-facts dd { margin: 0; }
.rb-facts .rb-amount { font-size: 1.5rem; color: var(--terra-dark); }
.rb-facts .rb-amount--text { font-size: 1rem; font-weight: 600; color: var(--ink); line-height: 1.6; }

.rb-source {
	font-size: 0.85rem;
	color: var(--ink-soft);
	margin-top: 20px;
}
.rb-source a { font-weight: 700; }

.rb-history { margin: 20px 0; }
.rb-history li { margin-bottom: 10px; }
.rb-history .rb-diff-before { color: var(--ink-soft); text-decoration: line-through; }
.rb-history .rb-diff-after { font-weight: 700; }

/* ============ Total box (city page) ============ */
.rb-total {
	background: linear-gradient(135deg, var(--peach-100), #ffe9d2);
	border-radius: var(--radius);
	padding: 18px 16px;
	text-align: center;
	margin: 16px 0;
}
.rb-total .rb-amount { font-size: 2rem; color: var(--terra-dark); }
.rb-total p { margin: 4px 0 0; font-size: 0.85rem; color: var(--ink-soft); }

.rb-neighbours__intro { margin: 0 0 10px; font-size: 0.92rem; }
.rb-card-muni { margin: 14px 0 4px; font-size: 0.8rem; font-weight: 700; color: var(--terra-dark); }
.rb-neighbours { display: flex; flex-wrap: wrap; gap: 8px; }
.rb-neighbours a {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 6px 14px;
	text-decoration: none;
	font-size: 0.9rem;
}

/* Benefit kind label on cards (現金でもらえる / 費用の助成 / サービス) */
.rb-kind { display: inline-block; background: #fdeee7; color: var(--terra-dark); border: 1px solid #f6cfc0; border-radius: 999px; padding: 1px 9px; font-size: 0.72rem; font-weight: 700; }

/* Prefecture directory (page-prefectures.php) */
.rb-pref-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rb-pref-list a {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 6px 14px;
	text-decoration: none;
	font-size: 0.9rem;
}
.rb-pref-count { font-size: 0.78rem; color: var(--ink-soft); }

/* Static (no-JS) fallback lists on the checklist / perks pages */
.rb-static-list { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin: 0 0 16px; }
.rb-static-list__title { font-weight: 700; color: var(--terra-dark); margin: 0 0 8px; }
.rb-static-list ul { margin: 0 0 10px; padding-left: 1.2em; line-height: 1.8; }

/* ============ Ad slot (fixed position, always labelled) ============ */
.rb-ad {
	margin: 24px 0;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	padding: 10px;
	text-align: center;
}
.rb-ad__label {
	display: block;
	font-size: 0.68rem;
	color: var(--ink-soft);
	letter-spacing: 0.2em;
	margin-bottom: 2px;
}
.rb-ad__note {
	display: block;
	font-size: 0.68rem;
	color: var(--ink-soft);
	margin-bottom: 6px;
}
.rb-ad__body {
	min-height: 90px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink-soft);
	font-size: 0.8rem;
	background: var(--peach-50);
	border-radius: 8px;
}

/* ============ Subscribe form ============ */
.kr-subscribe {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 18px 16px;
}
.kr-subscribe label { font-weight: 700; font-size: 0.9rem; display: block; margin-bottom: 6px; }
.kr-subscribe input[type="email"] {
	width: 100%;
	font-size: 1.05rem;
	padding: 12px 14px;
	border: 2px solid var(--peach-200);
	border-radius: 12px;
}
.kr-subscribe__row { margin: 0 0 16px; }
.kr-subscribe__toggles { border: none; padding: 0; margin: 0 0 16px; }
.kr-subscribe__toggles legend { font-weight: 700; font-size: 0.9rem; margin-bottom: 6px; }
.kr-subscribe__toggles label { font-weight: 500; display: flex; gap: 8px; align-items: center; }
.kr-subscribe__btn {
	width: 100%;
	background: var(--terra);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 14px;
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
}
.kr-subscribe__btn:active { background: var(--terra-dark); }
.kr-subscribe__note { font-size: 0.8rem; color: var(--ink-soft); margin: 0; }
.kr-subscribe__hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.kr-subscribe__msg {
	background: #e2f2e7;
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 0.9rem;
}

/* ============ Events split ============ */
.rb-event-group { margin: 26px 0; }
.rb-event-group__title { font-size: 1.05rem; }

/* ============ Footer ============ */
.rb-footer {
	border-top: 1px solid var(--line);
	background: var(--peach-50);
	padding: 28px 16px 40px;
	font-size: 0.82rem;
	color: var(--ink-soft);
}
.rb-footer__inner { max-width: 720px; margin: 0 auto; }
.rb-footer a { color: var(--ink-soft); }
.rb-footer ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }

/* ============ Misc ============ */
.rb-empty {
	background: #fff;
	border: 1px dashed var(--peach-200);
	border-radius: var(--radius);
	padding: 20px 16px;
	text-align: center;
	color: var(--ink-soft);
}
.rb-howto ol { padding-left: 1.3em; }
.rb-howto li { margin-bottom: 8px; }
.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

@media (min-width: 640px) {
	.rb-wrap { padding: 0 24px 40px; }
	.rb-card { padding: 20px; }
}

/* Columns (editorial posts) */
.rb-card__thumb { display: block; margin: -4px 0 10px; }
.rb-card__thumb img { width: 100%; height: auto; border-radius: 10px; display: block; }
.rb-more { margin: 12px 0 0; }
.rb-article__cat { margin: 0 0 6px; font-size: 0.85rem; }
.rb-article__cat a { color: var(--terra-dark); text-decoration: none; font-weight: 700; }
.rb-article__title { margin: 0 0 8px; font-size: 1.4rem; line-height: 1.5; color: var(--ink); border-bottom: 3px solid var(--terra-soft); padding-bottom: 10px; }
.rb-article__date { margin: 0 0 14px; color: var(--ink-soft); font-size: 0.85rem; }
.rb-article__thumb img { width: 100%; height: auto; border-radius: 12px; display: block; }
.rb-keybox { background: #fdeee7; border: 1px solid #f3d9c8; border-left: 5px solid var(--terra); border-radius: 12px; padding: 14px 16px; margin: 18px 0; }
.rb-keybox__title { font-weight: 700; color: var(--terra-dark); margin: 0 0 8px; }
.rb-keybox ul { margin: 0; padding-left: 1.2em; }
.rb-keybox li { margin: 4px 0; line-height: 1.6; }
.rb-article__body { line-height: 1.9; }
.rb-article__body h2 { font-size: 1.05rem; margin: 30px 0 10px; background: #fdeee7; color: var(--terra-dark); border-radius: 10px; padding: 7px 12px; }
.rb-article__body p { margin: 0 0 14px; }
.rb-article__body figure { margin: 18px 0; }
.rb-article__body figure img { width: 100%; height: auto; border-radius: 10px; display: block; }
.rb-article__body figcaption { font-size: 0.8rem; color: var(--ink-soft); margin-top: 6px; }

/* Share buttons (round icon buttons) */
.rb-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 22px 0 6px; }
.rb-share__label { font-size: 0.85rem; color: var(--ink-soft); margin-right: 2px; }
.rb-share__btn { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; text-decoration: none; cursor: pointer; box-shadow: 0 2px 5px rgba(61, 51, 48, 0.15); }
.rb-share__btn--line { background: #e7f8ee; color: #0a9d4d; border: 1.5px solid #bfe9d2; }
.rb-share__btn--x { background: #eceff3; color: #3a4450; border: 1.5px solid #d3dae2; }
.rb-share__btn--threads { background: #f3eafd; color: #6b4fa1; border: 1.5px solid #ddcdf5; }
.rb-share__btn--copy { background: #fdeee7; color: var(--terra-dark); border: 1.5px solid #f6cfc0; position: relative; }
.rb-share__btn--copy.is-copied { background: #e2f2e7; color: var(--ok); border-color: #bfe3cc; }
.rb-share__btn--copy.is-copied::after { content: "コピーしました"; position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; font-size: 0.75rem; font-weight: 700; padding: 5px 11px; border-radius: 999px; white-space: nowrap; pointer-events: none; box-shadow: 0 2px 6px rgba(61, 51, 48, 0.25); }
.rb-share__glyph { display: block; }
.rb-share__glyph--line { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.02em; }
.rb-share__glyph--at { font-size: 1.35rem; font-weight: 800; line-height: 1; }

/* Comments */
.rb-comments { margin-top: 30px; }
.rb-comments__list { list-style: none; margin: 0; padding: 0; }
.rb-comments__list .comment { background: #fff; border: 1px solid #f0e4dc; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
.rb-comments__list .comment-author { font-weight: 700; }
.rb-comments__list .comment-meta { font-size: 0.78rem; color: var(--ink-soft); }
.rb-comments__note { font-size: 0.85rem; color: var(--ink-soft); }
.rb-comments .comment-form label { display: block; font-size: 0.85rem; margin-bottom: 4px; }
.rb-comments .comment-form input[type="text"],
.rb-comments .comment-form input[type="email"],
.rb-comments .comment-form input[type="url"],
.rb-comments .comment-form textarea { width: 100%; box-sizing: border-box; border: 1px solid #e3d5cc; border-radius: 8px; padding: 9px 10px; font-size: 1rem; background: #fff; }
.rb-comments .form-submit input { background: var(--terra); color: #fff; border: 0; border-radius: 999px; padding: 10px 22px; font-weight: 700; cursor: pointer; }
.rb-chip-col { display: inline-block; background: #fdeee7; color: var(--terra-dark); border: 1px solid #f6cfc0; border-radius: 999px; padding: 1px 9px; font-size: 0.72rem; font-weight: 700; margin-right: 6px; text-decoration: none; }
.rb-catnav { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0 14px; }
.rb-catnav a { display: inline-block; background: #fff; color: var(--ink); border: 1.5px solid #ecd9cf; border-radius: 999px; padding: 6px 14px; font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.rb-catnav a.is-active { background: var(--terra); border-color: var(--terra); color: #fff; }
.rb-cta-comments { background: #fff6ef; border: 1.5px solid #f6cfc0; border-radius: 14px; padding: 14px 16px; margin: 18px 0 4px; }
.rb-cta-comments__title { font-weight: 800; color: var(--terra-dark); margin: 0 0 4px; }
.rb-cta-comments p:last-child { margin: 0; font-size: 0.92rem; }
.rb-rank__tabs { display: flex; gap: 8px; margin: 2px 0 12px; }
.rb-rank__tab { background: #fff; border: 1.5px solid #ecd9cf; color: var(--ink); border-radius: 999px; padding: 6px 16px; font-weight: 700; font-size: 0.85rem; cursor: pointer; }
.rb-rank__tab.is-active { background: var(--terra); border-color: var(--terra); color: #fff; }
.rb-rank__list { list-style: none; margin: 0; padding: 0; }
.rb-rank__list li { display: flex; gap: 10px; align-items: flex-start; padding: 9px 2px; border-bottom: 1px dashed #f0ddd2; }
.rb-rank__list li:last-child { border-bottom: 0; }
.rb-rank__no { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--terra-soft); color: #fff; font-weight: 800; font-size: 0.95rem; display: flex; align-items: center; justify-content: center; margin-top: 1px; box-shadow: 0 1px 3px rgba(61,51,48,.18); }
.rb-rank__list li:nth-child(1) .rb-rank__no { background: linear-gradient(135deg, #ffd76e, #f5a623); color: #6b4400; width: 36px; height: 36px; font-size: 1.1rem; }
.rb-rank__list li:nth-child(2) .rb-rank__no { background: linear-gradient(135deg, #f2f4f6, #b9c4cc); color: #54606a; }
.rb-rank__list li:nth-child(3) .rb-rank__no { background: linear-gradient(135deg, #f6cd9f, #dd9250); color: #6e3f14; }
.rb-rank__list li:nth-child(1) a { font-size: 1.03rem; }
.rb-rank__list a { color: var(--ink); text-decoration: none; font-weight: 600; }
/* Whole-row tap target for ranking items (0.1.27). */
.rb-rank__list li { position: relative; }
.rb-rank__list a::after { content: ""; position: absolute; inset: 0; }
.rb-rank__empty { color: #a08b80; font-size: 0.9rem; }
.rb-sources { border: 1.5px solid #ecd9cf; border-radius: 12px; padding: 10px 14px; margin: 16px 0; background: #fff; }
.rb-sources summary { cursor: pointer; font-weight: 700; color: var(--terra-dark); list-style: none; }
.rb-sources summary::-webkit-details-marker { display: none; }
.rb-sources summary::after { content: "▼"; font-size: 0.7rem; margin-left: 6px; }
.rb-sources[open ] summary::after { content: "▲"; }
.rb-sources ul { margin: 8px 0 4px; }
.rb-note { font-size: 0.85rem; color: var(--ink-soft); padding-left: 40px; text-indent: -1em; margin: 6px 0 18px; }

/* ============ Header: my-page button (0.1.36, two-line since 0.1.38) ============ */
.rb-header__side { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rb-mypage-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	flex-shrink: 0;
	background: var(--terra);
	color: #fff;
	padding: 6px 12px;
	border-radius: 999px;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(200, 120, 80, 0.25);
}
.rb-mypage-btn:hover { background: var(--terra-dark); }
.rb-mypage-btn__label {
	font-weight: 700;
	font-size: 0.78rem;
	line-height: 1.3;
}
/* Second line: remaining-count text. Always rendered (even when empty)
   with a fixed height so the button height never jumps. */
.rb-mypage-btn__count {
	font-size: 0.68rem;
	font-weight: 600;
	line-height: 1.3;
	min-height: calc(0.68rem * 1.3);
	color: rgba(255, 255, 255, 0.92);
}

/* ============ Checklist page (0.1.36) ============ */
.rb-cl-note { font-size: 0.85rem; color: var(--ink-soft); margin: 10px 0; }
.rb-cl-msg { font-size: 0.88rem; color: var(--terra-dark); font-weight: 600; margin: 8px 0; min-height: 1.2em; }
.rb-cl-field { margin: 0 0 14px; }
.rb-cl-field label { display: block; font-weight: 700; font-size: 0.9rem; margin-bottom: 5px; }
.rb-cl-field input[type="date"],
.rb-cl-emailrow input[type="email"] {
	font: inherit;
	font-size: 1rem;
	padding: 10px 12px;
	border: 1.5px solid #ecd9cf;
	border-radius: 10px;
	background: #fff;
	color: var(--ink);
	width: 100%;
}
.rb-cl-btn {
	display: inline-block;
	background: var(--terra);
	color: #fff;
	font: inherit;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 11px 22px;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	text-decoration: none;
}
.rb-cl-btn:hover { background: var(--terra-dark); }
.rb-cl-linkbtn {
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--terra-dark);
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
}
.rb-cl-status__row { display: flex; gap: 10px; font-size: 0.9rem; padding: 4px 0; }
.rb-cl-status__row b { flex: 0 0 86px; color: var(--ink-soft); }
.rb-cl-prog { margin-top: 10px; }
.rb-cl-prog__lab { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--ink-soft); margin-bottom: 5px; }
.rb-cl-prog__lab b { color: var(--terra-dark); }
.rb-cl-track { height: 10px; background: #f3ece7; border-radius: 999px; overflow: hidden; }
.rb-cl-fill { height: 100%; width: 0; background: linear-gradient(90deg, var(--terra-soft), var(--terra)); border-radius: 999px; transition: width 0.3s ease; }
.rb-cl-saved { font-size: 0.78rem; color: var(--ink-soft); line-height: 1.6; margin: 9px 0 0; }
.rb-cl-editrow { margin: 8px 0 0; }
.rb-cl-now {
	margin-left: auto;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--terra-dark);
	background: #fff;
	border-radius: 999px;
	padding: 3px 9px;
}
.rb-cl-task {
	display: flex;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 12px 13px;
	margin-bottom: 9px;
	cursor: pointer;
}
.rb-cl-box {
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 7px;
	border: 2px solid #e5cfc2;
	margin-top: 1px;
	background: #fff;
	cursor: pointer;
	position: relative;
	padding: 0;
}
.rb-cl-task.is-done .rb-cl-box { background: var(--terra); border-color: var(--terra); }
.rb-cl-task.is-done .rb-cl-box::after {
	content: "✓";
	position: absolute;
	inset: 0;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	line-height: 21px;
}
.rb-cl-main { flex: 1; min-width: 0; }
.rb-cl-name { font-size: 0.95rem; font-weight: 700; line-height: 1.45; margin: 0 0 4px; }
.rb-cl-task.is-done .rb-cl-name { color: #a08d84; }
.rb-cl-desc { font-size: 0.82rem; color: var(--ink-soft); line-height: 1.6; margin: 0; }
.rb-cl-row2 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rb-cl-due { font-size: 0.72rem; font-weight: 700; border-radius: 999px; padding: 3px 9px; background: #fdeee7; color: var(--terra-dark); }
.rb-cl-due.is-hot { background: var(--terra); color: #fff; }
.rb-cl-due.is-done { background: #e2f2e7; color: #3e7d4e; }
.rb-cl-due.is-later { background: #f3ece7; color: var(--ink-soft); }
.rb-cl-link { margin-left: auto; font-size: 0.8rem; font-weight: 700; color: var(--terra-dark); text-decoration: none; white-space: nowrap; }
.rb-cl-link::after { content: " ›"; }
.rb-cl-perk { border: 1.5px dashed var(--terra-soft); background: #fff7f2; border-radius: 14px; padding: 12px 13px; margin-bottom: 9px; }
.rb-cl-perk__tag { display: inline-block; font-size: 0.68rem; font-weight: 700; color: var(--terra-dark); background: #fdeee7; border-radius: 6px; padding: 2px 7px; margin-bottom: 6px; }
.rb-cl-perk__name { font-size: 0.9rem; font-weight: 700; line-height: 1.45; margin: 0 0 4px; }
.rb-cl-perk__desc { font-size: 0.82rem; color: var(--ink-soft); line-height: 1.6; margin: 0; }
.rb-cl-perk__btn { margin-top: 10px; font-size: 0.85rem; padding: 9px 16px; }
.rb-cl-perk__pr { font-size: 0.7rem; color: #a08d84; margin: 8px 0 0; line-height: 1.5; }
.rb-perk-notes { font-size: 0.82rem; color: var(--ink-soft); line-height: 1.7; margin: 0 0 14px; padding-left: 1.2em; }
.rb-perk-chips { margin: 0 0 5px; }
.rb-perk-kind { display: inline-block; font-size: 0.68rem; font-weight: 700; border-radius: 6px; padding: 2px 7px; margin-right: 4px; }
.rb-perk-kind.is-all { color: #2e7d4f; background: #e6f4ec; }
.rb-perk-kind.is-lot { color: #33658a; background: #e8f1f8; }
.rb-perk-kind.is-store { color: #8a6d3b; background: #faf3e0; }
.rb-perk-kind.is-mix { color: #6b4f9e; background: #f0eaf8; }
.rb-perk-when { display: inline-block; font-size: 0.68rem; font-weight: 700; color: var(--ink-soft); background: #f3ece8; border-radius: 6px; padding: 2px 7px; }
.rb-perk-go { font-size: 0.82rem; padding: 7px 14px; text-decoration: none; }
.rb-perk-thumb { width: 62px; height: 62px; object-fit: cover; border-radius: 10px; flex-shrink: 0; }
.rb-perk-artlink { color: inherit; text-decoration: none; }
.rb-perk-artlink:hover { text-decoration: underline; }
.rb-perk-logo { height: 18px; width: auto; max-width: 110px; object-fit: contain; vertical-align: middle; margin-right: 6px; }
.rb-cl-feature { background: linear-gradient(135deg, #fdf0e8, #fdeee7); border: 1px solid #f3d9cb; border-radius: 14px; padding: 14px 13px; }
.rb-cl-feature__tag { display: inline-block; font-size: 0.68rem; font-weight: 700; color: #fff; background: var(--terra); border-radius: 6px; padding: 2px 8px; margin-bottom: 7px; }
.rb-cl-feature__name { font-size: 1rem; font-weight: 700; line-height: 1.45; margin: 0 0 5px; }
.rb-cl-feature__desc { font-size: 0.82rem; color: var(--ink-soft); line-height: 1.6; margin: 0; }
.rb-cl-feature__go { display: inline-block; margin-top: 10px; font-size: 0.85rem; font-weight: 700; color: var(--terra-dark); text-decoration: none; }
.rb-cl-feature__go::after { content: " ›"; }
.rb-cl-notify__name { font-size: 0.92rem; font-weight: 700; margin: 0 0 6px; }
.rb-cl-notify ul { margin: 0 0 12px; padding: 0; list-style: none; }
.rb-cl-notify li { font-size: 0.82rem; color: var(--ink-soft); line-height: 1.55; padding: 4px 0 4px 16px; position: relative; }
.rb-cl-notify li::before { content: ""; position: absolute; left: 2px; top: 11px; width: 6px; height: 6px; border-radius: 50%; background: var(--terra-soft); }
.rb-cl-notify label { display: block; font-weight: 700; font-size: 0.88rem; margin-bottom: 5px; }
.rb-cl-emailrow { display: flex; gap: 8px; }
.rb-cl-emailrow input[type="email"] { flex: 1; min-width: 0; }
.rb-cl-emailrow .rb-cl-btn { flex: none; padding: 10px 16px; }
.rb-cl-delrow { margin: 14px 0 0; }
.rb-cl-delbtn {
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.8rem;
	color: #a08d84;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
}
.rb-cl-point {
	background: #fdeee7;
	border: 1.5px solid var(--terra-soft);
	border-radius: 12px;
	padding: 12px 14px;
	font-weight: 700;
	font-size: 0.92rem;
	line-height: 1.65;
	color: var(--terra-dark);
	margin: 14px 0;
}
.rb-cl-login { margin-top: 16px; }
.rb-cl-login__name { font-size: 0.92rem; font-weight: 700; margin: 0 0 4px; }
.rb-cl-login label { display: block; font-weight: 700; font-size: 0.88rem; margin-bottom: 5px; }

/* ============ Benefit picks (0.1.36) ============ */
.rb-pick-row { margin: 14px 0 4px; }
.rb-pick-btn {
	display: inline-block;
	background: #fff;
	color: var(--terra-dark);
	font: inherit;
	font-weight: 700;
	font-size: 0.88rem;
	padding: 10px 18px;
	border: 1.5px solid var(--terra);
	border-radius: 999px;
	cursor: pointer;
}
.rb-pick-btn:hover { background: #fdeee7; }
.rb-pick-btn.is-in { background: var(--terra); color: #fff; }
.rb-pick-btn.is-in:hover { background: var(--terra-dark); }
.rb-cl-picklink { color: var(--ink); text-decoration: none; }
.rb-cl-picklink:hover { text-decoration: underline; }
.rb-cl-removebtn {
	margin-left: auto;
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--ink-soft);
	cursor: pointer;
	padding: 2px 4px;
	text-decoration: underline;
	white-space: nowrap;
}
.rb-cl-excludebtn {
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	color: #a08d84;
	cursor: pointer;
	padding: 2px 4px;
	margin-left: auto;
	text-decoration: underline;
	white-space: nowrap;
}
.rb-cl-row2 .rb-cl-link + .rb-cl-excludebtn { margin-left: 0; }
.rb-cl-excluded-item {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 10px 13px;
	margin-bottom: 9px;
}
.rb-cl-excluded-name { flex: 1; min-width: 0; font-size: 0.88rem; color: var(--ink-soft); line-height: 1.45; }
.rb-cl-restorebtn {
	flex: none;
	background: none;
	border: 0;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--terra-dark);
	cursor: pointer;
	padding: 2px 4px;
	text-decoration: underline;
	white-space: nowrap;
}
.kr-auth-btns { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.kr-auth-btn {
	display: block;
	text-align: center;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--ink);
	background: #fff;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	padding: 10px 16px;
	text-decoration: none;
}
.kr-auth-btn:hover { border-color: var(--terra-soft); background: #fff7f2; }
.rb-cl-textbtn {
	background: none; border: none; padding: 0; margin: 0;
	font: inherit; font-size: 0.82rem; color: var(--terra);
	text-decoration: underline; cursor: pointer; text-align: left;
}
