/*
Theme Name: Rinchan Mori Native
Theme URI: https://hayashi.fun/
Description: WordPress-native theme for りんちゃんの杜.
Version: 1.10.29
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: rinchan-mori-native
*/

:root {
  --rc-navy:#0b3562;
  --rc-blue:#23a9db;
  --rc-cyan:#28bed0;
  --rc-green:#65c965;
  --rc-lime:#9dd94f;
  --rc-bg:#f7fbf8;
  --rc-line:rgba(29,78,116,.10);
  --rc-muted:#6d8298;
  --rc-shadow:0 14px 36px rgba(35,92,126,.10);
  --rc-radius:30px;
  --rc-max:820px;
  --rc-home-gap:12px;
}

* { box-sizing:border-box; }
html {
  background:var(--rc-bg);
  color:var(--rc-navy);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  -webkit-text-size-adjust:100%;
}
body {
  margin:0;
  background:linear-gradient(180deg,#f8fcff 0%,#f6fbf8 52%,#fbfdfb 100%);
  overflow-x:hidden;
}
a { color:inherit; }
img,svg { max-width:100%; }

/* Shell */
.rinchan-shell {
  width:min(100%,var(--rc-max));
  min-height:0;
  margin:0 auto;
  padding:10px 14px 0;
  overflow-x:clip;
}
.rinchan-footer { display:none; }

/* App bar */
.rinchan-appbar {
  position:sticky;
  top:8px;
  z-index:60;
  display:grid;
  grid-template-columns:96px minmax(0,1fr) 96px;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:80px;
  margin:0 0 12px;
  padding:8px 6px;
  background:rgba(255,255,255,.92);
  border:0;
  border-radius:24px;
  box-shadow:0 8px 26px rgba(35,92,126,.08);
  backdrop-filter:blur(16px);
}
.rinchan-brand,
.rinchan-news-button,
.rinchan-menu-toggle,
.rinchan-drawer-close {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:var(--rc-navy);
  text-decoration:none;
  cursor:pointer;
}
.rinchan-brand { width:58px; height:58px; justify-self:start; }
.rinchan-brand img {
  width:50px;
  height:50px;
  object-fit:contain;
  background:transparent;
}
.rinchan-appbar-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  width:96px;
  min-width:0;
}
.rinchan-news-button,
.rinchan-menu-toggle { position:relative; width:48px; height:48px; }
.rinchan-news-button svg,
.rinchan-menu-toggle svg { width:27px; height:27px; display:block; }
.rinchan-menu-toggle { font-size:0; line-height:1; }
.rinchan-news-button .rinchan-bell-svg,
.rinchan-menu-toggle .rinchan-menu-svg { display:grid; place-items:center; width:100%; height:100%; }
.rinchan-news-badge {
  position:absolute;
  top:1px;
  right:0;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  background:#ef6078;
  color:#fff;
  font-size:11px;
  line-height:20px;
  font-weight:900;
  text-align:center;
}
.rinchan-menu-badge { display:none!important; }
.rinchan-title {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
  font-size:clamp(22px,5.5vw,30px);
  font-weight:900;
  letter-spacing:.04em;
}
.rinchan-title:before,
.rinchan-title:after {
  content:"";
  display:inline-block;
  width:9px;
  height:6px;
  margin:0 8px;
  border-radius:100% 0 100% 0;
  background:#52bd87;
  vertical-align:middle;
  transform:rotate(25deg);
}

/* Drawer */
.rinchan-drawer { position:fixed; inset:0; z-index:100; visibility:hidden; pointer-events:none; }
.rinchan-drawer.is-open { visibility:visible; pointer-events:auto; }
.rinchan-drawer-backdrop {
  position:absolute;
  inset:0;
  background:rgba(13,41,66,.42);
  opacity:0;
  transition:opacity .2s;
}
.rinchan-drawer.is-open .rinchan-drawer-backdrop { opacity:1; }
.rinchan-drawer-panel {
  position:absolute;
  top:0;
  right:0;
  width:min(86vw,372px);
  height:100%;
  padding:18px 18px calc(18px + env(safe-area-inset-bottom));
  overflow:auto;
  background:#fff;
  box-shadow:-18px 0 46px rgba(18,56,95,.18);
  transform:translateX(102%);
  transition:transform .22s ease;
}
.rinchan-drawer.is-open .rinchan-drawer-panel { transform:translateX(0); }
.rinchan-drawer-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--rc-line);
}
.rinchan-drawer-head>div { display:grid; gap:2px; }
.rinchan-drawer-head small { color:var(--rc-muted); font-weight:700; }
.rinchan-drawer-head strong { font-size:24px; }
.rinchan-drawer-close {
  width:48px;
  height:48px;
  border:1px solid var(--rc-line);
  border-radius:50%;
  background:#fff;
  font-size:28px;
}
.rinchan-nav { display:grid; gap:7px; padding:14px 0; }
.rinchan-wp-menu { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.rinchan-wp-menu li { margin:0; }
.rinchan-nav a,
.rinchan-wp-menu a {
  display:block;
  padding:16px;
  border-radius:16px;
  background:#f7fafc;
  text-decoration:none;
  font-weight:800;
}
.rinchan-wp-menu .current-menu-item a,
.rinchan-nav a.is-current { background:linear-gradient(100deg,rgba(44,167,221,.14),rgba(95,199,123,.16)); }
.rinchan-account { padding-top:16px; border-top:1px solid var(--rc-line); }

/* Shared cards and typography */
.rinchan-card,
.rinchan-form,
.rinchan-form label,
.rinchan-grid,
.rinchan-actions,
.department-card,
.member,
.rinchan-timeline,
.timeline-row { min-width:0; max-width:100%; }
.rinchan-card {
  width:100%;
  margin:0 0 16px;
  padding:24px;
  overflow-wrap:anywhere;
  border:1px solid rgba(34,102,132,.09);
  border-radius:var(--rc-radius);
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 30px rgba(35,92,126,.08);
}
.rinchan-card h1,
.rinchan-card h2,
.rinchan-card h3 { margin:0 0 10px; color:var(--rc-navy); line-height:1.35; }
.rinchan-card h1 { font-size:24px; }
.rinchan-card h2 { font-size:22px; }
.rinchan-card h3 { font-size:17px; }
.eyebrow { margin:0 0 7px; color:#269866; font-size:13px; font-weight:800; letter-spacing:.04em; }
.muted { color:var(--rc-muted); line-height:1.8; }
.rinchan-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.rinchan-pill {
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  background:#eef8fc;
  color:var(--rc-navy);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.rinchan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.rinchan-stat { padding:18px; border:1px solid var(--rc-line); border-radius:18px; background:#fbfdff; text-align:center; }
.rinchan-stat strong { display:block; font-size:22px; }
.rinchan-stat small { display:block; margin-top:5px; color:var(--rc-muted); }
.rinchan-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.rinchan-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  max-width:100%;
  padding:0 20px;
  border:0;
  border-radius:999px;
  background:linear-gradient(105deg,#26b7df,#62cc73);
  box-shadow:0 9px 20px rgba(35,161,164,.15);
  color:#fff!important;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
}
.rinchan-button.secondary { background:#eef6fa; color:var(--rc-navy)!important; border:1px solid var(--rc-line); box-shadow:none; }
.rinchan-alert { margin:12px 0; padding:12px 14px; border-radius:14px; background:#fff1f1; color:#a53b3b; }
.rinchan-alert.rinchan-success { background:#effbf2; color:#247a48; }
.empty { padding:20px; border-radius:16px; background:#f8fbfd; color:var(--rc-muted); }

/* Forms */
.rinchan-form { display:grid; width:100%; gap:15px; overflow:visible; }
.rinchan-form label { display:grid; gap:7px; font-weight:700; }
.rinchan-form input,
.rinchan-form textarea,
.rinchan-form select {
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:50px;
  padding:11px 13px;
  border:1px solid #cfdde7;
  border-radius:14px;
  background:#fff;
  color:var(--rc-navy);
  font:inherit;
  font-size:15px;
  line-height:1.35;
  -webkit-appearance:none;
  appearance:none;
}
.rinchan-form textarea { min-height:96px; resize:vertical; }
.rinchan-form select {
  padding-right:38px;
  background-image:linear-gradient(45deg,transparent 50%,#61768b 50%),linear-gradient(135deg,#61768b 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
}
.rinchan-form input[type=date] { overflow:hidden; }

/* Generic feature layouts */
.rinchan-hero { background:linear-gradient(145deg,#ecfaff,#f0fde8); }
.rinchan-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:18px; align-items:center; }
.rinchan-hero-grid img { width:100px; height:100px; object-fit:contain; }
.rinchan-message { margin-top:18px; padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.78); font-weight:700; line-height:1.65; }
.event-banner { display:grid; grid-template-columns:68px minmax(0,1fr); gap:16px; align-items:center; }
.event-emoji { font-size:50px; text-align:center; }
.department-grid { display:grid; gap:14px; }
.department-card { padding:18px; border:1px solid var(--rc-line); border-radius:20px; background:#fbfdff; }
.member-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.member { padding:14px; border:1px solid var(--rc-line); border-radius:16px; background:#fff; }
.member strong,.member small { display:block; }
.member small { margin-top:4px; color:var(--rc-muted); }
.history { display:grid; gap:8px; }
.history-row { display:grid; grid-template-columns:60px 100px minmax(0,1fr); gap:10px; align-items:center; padding:12px 0; border-bottom:1px solid var(--rc-line); }
.rinchan-news-list,.rinchan-timeline { display:grid; gap:12px; margin-top:18px; }
.rinchan-news-item { padding:18px; border:1px solid var(--rc-line); border-radius:18px; background:#fbfdff; }
.rinchan-news-item time { color:var(--rc-muted); font-size:12px; font-weight:700; }
.rinchan-news-item h3 { margin:6px 0 8px; }
.rinchan-news-body { color:#435e78; line-height:1.8; }
.rinchan-news-body p:last-child { margin-bottom:0; }
.rinchan-passport-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; background:linear-gradient(145deg,#ecfaff,#f0fde8); }
.passport-h { min-width:112px; padding:18px 12px; border:1px solid var(--rc-line); border-radius:20px; background:#fff; text-align:center; }
.passport-h strong { display:block; font-size:28px; }
.passport-h small { color:var(--rc-muted); }
.timeline-row { display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; align-items:start; padding:14px; border:1px solid var(--rc-line); border-radius:16px; background:#fbfdff; }
.timeline-row>span { display:flex; align-items:center; justify-content:center; min-height:42px; border-radius:13px; background:#fff; font-weight:900; }
.timeline-row strong,.timeline-row small { display:block; }
.timeline-row small { margin-top:5px; color:var(--rc-muted); }
.timeline-row p { margin:7px 0; color:#526b82; line-height:1.6; }
.point-amount.plus { color:#208758; }
.point-amount.minus { color:#b24c5a; }
.thanks-mark { font-size:22px; }

/* Home hero */
.rinchan-home-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 210px;
  grid-template-areas:"copy face" "message face";
  column-gap:24px;
  row-gap:14px;
  align-items:center;
  margin:0 0 14px;
  padding:34px 38px 28px;
  overflow:hidden;
  isolation:isolate;
  border-radius:34px;
  background:linear-gradient(145deg,#edf9ff 0%,#f8fcff 48%,#eefaf3 100%);
  box-shadow:0 16px 42px rgba(38,106,139,.10);
}
.rinchan-hero-sky { position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.72) 0 8%,transparent 9%),radial-gradient(circle at 88% 16%,rgba(255,255,255,.58) 0 7%,transparent 8%); }
.cloud,.cloud:before,.cloud:after,.bird,.rinchan-landscape { display:none!important; }
.rinchan-hero-copy { grid-area:copy; position:relative; z-index:4; min-width:0; padding:0; }
.rinchan-home-eyebrow { margin:0 0 9px; color:#179b67; font-size:18px; font-weight:900; letter-spacing:.06em; }
.rinchan-hero-copy h1 { margin:0; color:var(--rc-navy); font-size:clamp(32px,7vw,48px); line-height:1.14; letter-spacing:.02em; }
.rinchan-dotted-line { width:min(100%,440px); margin:12px 0 14px; border-top:4px dotted rgba(64,190,137,.62); }
.rinchan-hero-copy>p:last-child { margin:0; color:#173e67; font-size:16px; font-weight:650; line-height:1.7; }
.rinchan-hero-face { grid-area:face; position:relative; z-index:5; justify-self:center; align-self:center; width:min(100%,200px); height:auto; object-fit:contain; background:transparent; filter:drop-shadow(0 8px 6px rgba(11,53,98,.06)); }
.rinchan-hero-message { grid-area:message; position:relative; z-index:6; justify-self:start; display:inline-flex; align-items:center; gap:6px; max-width:100%; margin:0; padding:9px 14px; border:1px solid rgba(255,255,255,.75); border-radius:999px; background:rgba(255,255,255,.86); box-shadow:0 8px 20px rgba(33,92,121,.07); backdrop-filter:blur(8px); font-size:13px; }
.rinchan-mini-icon { flex:0 0 auto; margin:0; }

/* Home step dashboard */
.rinchan-dashboard-section { margin-bottom:var(--rc-home-gap); }
.rinchan-dashboard-section .rinchan-steps-visual {
  display:grid;
  grid-template-columns:minmax(280px,.92fr) minmax(340px,1.08fr);
  gap:16px;
  margin:0;
}
.rinchan-dashboard-section .rinchan-goal-card,
.rinchan-dashboard-section .rinchan-week-chart {
  min-width:0;
  border:1px solid rgba(34,102,132,.10);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--rc-shadow);
}
.rinchan-dashboard-section .rinchan-goal-card {
  position:relative;
  min-height:0;
  padding:22px;
  overflow:hidden;
  background:linear-gradient(180deg,#fff 0%,#fbfffd 100%);
}
.rinchan-dashboard-section .rinchan-visual-title { display:flex; align-items:center; gap:9px; color:var(--rc-navy); font-size:19px; }
.rinchan-dashboard-section .rinchan-visual-title .visual-icon {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:#e9f8ee;
  color:#2caf6d;
}
.rinchan-dashboard-section .rinchan-goal-ring {
  position:relative;
  display:grid;
  place-items:center;
  width:min(250px,72vw);
  aspect-ratio:1 / 1;
  margin:12px auto 0;
  border-radius:50%;
  background:#fff;
}
.rinchan-goal-ring-svg {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  transform:rotate(-90deg);
}
.rinchan-goal-ring-track,
.rinchan-goal-ring-progress { fill:none; stroke-width:9; }
.rinchan-goal-ring-track { stroke:#e8f0f1; }
.rinchan-goal-ring-progress {
  stroke:url(#rinchanGoalGradient);
  stroke-linecap:round;
  stroke-dasharray:var(--ring-pct) 100;
  transition:stroke-dasharray .35s ease;
}
.rinchan-dashboard-section .rinchan-goal-ring-inner {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.rinchan-dashboard-section .rinchan-goal-ring-inner small { order:-1; margin:0 0 7px; color:#2ca166; font-size:13px; font-weight:850; }
.rinchan-dashboard-section .rinchan-goal-ring-inner strong { color:#0a3869; font-size:42px; font-weight:900; line-height:1; }
.rinchan-dashboard-section .rinchan-goal-ring-inner strong em { margin-left:3px; color:#299b5e; font-size:16px; font-style:normal; }
.rinchan-dashboard-section .rinchan-goal-ring-inner span { margin-top:9px; color:#687e90; font-size:16px; font-weight:700; }
.rinchan-dashboard-section .rinchan-goal-note {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  max-width:92%;
  margin:10px auto 0;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.93);
  box-shadow:0 7px 18px rgba(43,102,88,.08);
  color:#215270;
  font-size:12px;
}
.rinchan-dashboard-section .rinchan-mini-landscape { display:none; }
.rinchan-dashboard-section .rinchan-mini-landscape:before,
.rinchan-dashboard-section .rinchan-mini-landscape:after { display:none; }
.rinchan-dashboard-section .rinchan-mini-landscape:before { display:none; }
.rinchan-dashboard-section .rinchan-mini-landscape:after { display:none; }
.rinchan-dashboard-section .rinchan-mini-landscape i { display:none; }

.rinchan-dashboard-section .rinchan-week-chart { min-height:350px; padding:24px 20px 20px; }
.rinchan-dashboard-section .rinchan-week-chart-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; color:var(--rc-navy); font-size:19px; }
.rinchan-dashboard-section .rinchan-week-chart-head a { padding:7px 11px; border:1px solid #bfe6d3; border-radius:999px; background:#effbf5; color:#248b5d; text-decoration:none; font-size:12px; font-weight:800; }
.rinchan-dashboard-section .rinchan-bars {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
  height:225px;
}
.rinchan-dashboard-section .rinchan-bar-col {
  display:grid;
  grid-template-rows:24px 1fr 28px;
  align-items:end;
  min-width:0;
  text-align:center;
}
.rinchan-dashboard-section .rinchan-bar-value { overflow:hidden; color:var(--rc-muted); font-size:10px; font-weight:800; white-space:nowrap; }
.rinchan-dashboard-section .rinchan-bar-track {
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  height:100%;
  overflow:visible;
  border-radius:0;
  background:transparent;
}
.rinchan-dashboard-section .rinchan-bar-track span {
  display:block;
  width:min(28px,62%);
  min-height:0;
  border-radius:999px;
  background:linear-gradient(180deg,#8ed94d 0%,#46c78a 48%,#21acd5 100%);
}
.rinchan-dashboard-section .rinchan-bar-label { padding-top:7px; color:#63788c; font-size:13px; font-weight:800; }
.rinchan-dashboard-section .rinchan-bar-col.is-today .rinchan-bar-label { color:#179a65; }
.rinchan-dashboard-section .rinchan-week-footer { display:flex; align-items:center; justify-content:space-between; margin-top:13px; padding:10px 13px; border-radius:15px; background:#f4faf7; color:#5e7a6d; }
.rinchan-dashboard-section .rinchan-week-footer strong { color:#179a65; font-size:18px; }


/* v1.4.5 home icon system */
.rinchan-visual-title .visual-icon svg,.chart-head-icon svg,.note-icon svg,.rinchan-mini-icon svg,.challenge-ribbon svg,.thanks-icon svg,.wellness-icon svg { width:22px; height:22px; display:block; }
.rinchan-week-chart-head>strong { display:flex; align-items:center; gap:8px; }
.chart-head-icon { display:inline-grid; place-items:center; color:#31aa73; }
.note-icon { display:inline-grid; place-items:center; color:#2ea66c; }
.rinchan-mini-icon { display:inline-grid; place-items:center; color:#2b9cc8; }
.challenge-ribbon svg { width:17px; height:17px; }
.thanks-icon svg { width:25px; height:25px; }
.wellness-icon svg { width:25px; height:25px; }
/* Home actions: slimmer, one integrated icon, no circular arrow badge */
.rinchan-home-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 var(--rc-home-gap); }
.rinchan-home-action {
  position:relative;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 12px;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:9px 16px;
  overflow:hidden;
  border-radius:999px;
  box-shadow:0 8px 20px rgba(21,110,121,.13);
  color:#fff!important;
  text-decoration:none;
}
.rinchan-home-action.walk { background:linear-gradient(105deg,#68d768 0%,#25c79c 55%,#19b9c6 100%); }
.rinchan-home-action.forest { background:linear-gradient(105deg,#26b9db 0%,#2ca4e0 50%,#57c8ab 100%); }
.rinchan-home-action .action-art {
  position:static;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:0;
  background:transparent;
  color:#fff;
}
.rinchan-home-action .action-art svg { width:28px; height:28px; filter:drop-shadow(0 2px 3px rgba(0,0,0,.08)); }
.rinchan-home-action strong { display:block; min-width:0; overflow:visible; text-overflow:clip; white-space:nowrap; font-size:clamp(14px,2.7vw,17px); line-height:1.2; }
.rinchan-home-action small { display:none; }
.rinchan-home-action .action-arrow {
  position:static;
  width:auto;
  height:auto;
  background:none;
  color:#fff;
  font-size:22px;
  line-height:1;
  transform:none;
}
.mobile-break { display:none; }

/* Challenge */
.rinchan-challenge-card,
.rinchan-thanks-home-card {
  position:relative;
  margin:0 0 var(--rc-home-gap);
  padding:22px 24px 24px;
  overflow:hidden;
  border:1px solid rgba(34,102,132,.09);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--rc-shadow);
}
.rinchan-challenge-card { background:linear-gradient(145deg,#fffef9,#f4fff7); }
.challenge-ribbon {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 18px;
  padding:9px 18px;
  border-radius:999px;
  background:linear-gradient(100deg,#259fd1,#4386e5);
  box-shadow:0 7px 16px rgba(48,127,203,.16);
  color:#fff;
  font-weight:900;
  line-height:1;
}
.challenge-ribbon span:first-child { font-size:16px; }
.challenge-body { display:grid; grid-template-columns:1fr 180px; gap:24px; align-items:center; }
.challenge-lead { margin:0 0 8px; font-size:20px; }
.challenge-lead strong { color:#0b72bd; font-size:28px; }
.challenge-progress-wrap { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; }
.challenge-progress { height:16px; overflow:hidden; border-radius:999px; background:#e9edef; }
.challenge-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#6dce68,#25c3af); }
.challenge-progress-wrap>strong { color:#0b72bd; }
.challenge-decor { position:absolute; right:22px; top:22px; color:#efb45a; letter-spacing:7px; }

/* Thanks and wellness */
.rinchan-thanks-home-card { background:linear-gradient(145deg,#fff,#f4fff8); }
.rinchan-thanks-heading { display:flex; gap:13px; align-items:center; }
.thanks-icon,
.thanks-leaf,
.wellness-icon { display:grid; place-items:center; border-radius:50%; }
.thanks-icon { width:52px; height:52px; background:#eaf9f1; font-size:28px; }
.rinchan-thanks-heading h2 { margin:0; font-size:22px; }
.rinchan-thanks-feed { margin-top:16px; }
.thanks-feed-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; align-items:center; padding:13px 0; border-top:1px solid rgba(38,94,120,.08); }
.thanks-feed-row:first-child { border-top:0; }
.thanks-feed-row strong,.thanks-feed-row small { display:block; }
.thanks-feed-row small { margin-top:4px; color:var(--rc-muted); }
.thanks-feed-row time { color:var(--rc-muted); font-size:12px; }
.thanks-leaf { width:32px; height:32px; background:#edf9ef; }
.rinchan-thanks-empty { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0; padding:18px 20px; border-radius:22px; background:rgba(255,255,255,.8); }
.rinchan-thanks-empty span { font-size:40px; }
.rinchan-inline-link { display:flex; justify-content:flex-end; gap:8px; color:#238c60; font-weight:850; text-decoration:none; }
.rinchan-wellness-strip {
  display:grid;
  grid-template-columns:36px 1fr 24px;
  gap:14px;
  align-items:center;
  margin:0;
  padding:12px 18px;
  border-radius:999px;
  background:linear-gradient(90deg,#dff8ec,#edfaff);
  box-shadow:0 10px 24px rgba(38,93,118,.08);
  text-decoration:none;
}
.wellness-icon { width:34px; height:34px; background:transparent; color:#39a978; font-size:22px; font-weight:900; }
.rinchan-wellness-strip small,.rinchan-wellness-strip strong { display:block; }
.rinchan-wellness-strip small { color:#3c7b6d; }
.rinchan-wellness-strip strong { margin-top:2px; font-size:19px; }
.wellness-arrow { display:grid; place-items:center; width:24px; height:24px; border:0; border-radius:0; color:#38a66e; font-size:26px; }

@media (max-width:700px) {
  :root { --rc-home-gap:10px; }
  .rinchan-shell { padding:6px 10px 0; }
  .rinchan-appbar { grid-template-columns:84px minmax(0,1fr) 84px; min-height:72px; }
  .rinchan-title { font-size:23px; }
  .rinchan-title:before,.rinchan-title:after { width:7px; height:5px; margin:0 5px; }
  .rinchan-brand { width:50px; height:50px; }
  .rinchan-brand img { width:46px; height:46px; }
  .rinchan-news-button,.rinchan-menu-toggle { width:40px; height:44px; }
  .rinchan-appbar-actions { width:84px; gap:2px; }
  .rinchan-card { padding:20px; border-radius:24px; }
  .rinchan-card h1 { font-size:27px; }
  .rinchan-section-head { align-items:center; }
  .rinchan-passport-hero { align-items:flex-start; }
  .passport-h { min-width:96px; padding:15px 8px; }
  .passport-h strong { font-size:24px; }
  .member-list { grid-template-columns:1fr; }
  .history-row { grid-template-columns:52px 90px minmax(0,1fr); }

  .rinchan-home-hero { grid-template-columns:minmax(0,1fr) 118px; grid-template-areas:"copy face" "message face"; column-gap:12px; row-gap:12px; min-height:0; padding:24px 18px 20px; border-radius:28px; }
  .rinchan-hero-copy { min-width:0; padding:0; }
  .rinchan-home-eyebrow { font-size:16px; }
  .rinchan-hero-copy h1 { font-size:clamp(29px,8.7vw,36px); }
  .rinchan-hero-copy>p:last-child { font-size:14px; line-height:1.65; }
  .rinchan-dotted-line { margin:10px 0 12px; }
  .rinchan-hero-face { width:112px; max-width:100%; }
  .rinchan-hero-message { max-width:100%; padding:8px 12px; font-size:12px; }

  .rinchan-dashboard-section .rinchan-steps-visual { grid-template-columns:1fr; gap:14px; }
  .rinchan-dashboard-section .rinchan-goal-card,
  .rinchan-dashboard-section .rinchan-week-chart { min-height:0; }
  .rinchan-dashboard-section .rinchan-goal-ring { width:min(230px,70vw); }
  .rinchan-dashboard-section .rinchan-week-chart { padding:22px 13px 18px; }
  .rinchan-dashboard-section .rinchan-bars { height:205px; gap:5px; }
  .rinchan-dashboard-section .rinchan-bar-track span { width:min(25px,60%); }

  .rinchan-home-actions { gap:10px; }
  .rinchan-home-action { grid-template-columns:25px minmax(0,1fr) 10px; gap:7px; min-height:54px; padding:8px 12px; }
  .rinchan-home-action .action-art { width:25px; height:25px; }
  .rinchan-home-action .action-art svg { width:24px; height:24px; }
  .rinchan-home-action strong { font-size:clamp(12px,3.6vw,14px); letter-spacing:-.03em; }
  .rinchan-home-action .action-arrow { font-size:20px; }
  .mobile-break { display:none; }

  .rinchan-challenge-card,.rinchan-thanks-home-card { padding:18px 18px 20px; border-radius:25px; }
  .challenge-ribbon { margin:0 0 15px; padding:8px 14px; font-size:14px; }
  .challenge-decor { right:17px; top:18px; }
  .challenge-body { grid-template-columns:1fr; gap:10px; }
  .challenge-progress-wrap { grid-template-columns:1fr auto; }
  .thanks-feed-row { grid-template-columns:32px minmax(0,1fr); }
  .thanks-feed-row time { display:none; }
}

@media (max-width:420px) {
  .rinchan-home-hero { grid-template-columns:minmax(0,1fr) 102px; padding:21px 15px 17px; column-gap:9px; row-gap:10px; }
  .rinchan-hero-copy h1 { font-size:29px; }
  .rinchan-hero-copy>p:last-child { font-size:13px; line-height:1.6; }
  .rinchan-hero-face { width:98px; }
  .rinchan-hero-message { padding:7px 10px; font-size:11px; }
  .rinchan-dashboard-section .rinchan-goal-ring { width:min(230px,70vw); }
  .rinchan-dashboard-section .rinchan-goal-ring-inner strong { font-size:39px; }
  .rinchan-home-action { min-height:52px; padding:8px 10px; }
  .rinchan-home-action strong { font-size:12.5px; }
  .rinchan-home-action .action-art { width:23px; height:23px; }
  .rinchan-home-action .action-art svg { width:22px; height:22px; }
  .rinchan-wellness-strip { border-radius:22px; padding:11px 14px; }
}

/* v1.4.7 layout closure */
body.home .rinchan-wellness-strip, body.page .rinchan-wellness-strip { margin-bottom:0; }
.rinchan-shell > :last-child { margin-bottom:0!important; }

/* v1.4.8 hard page-end closure */
html, body {
  min-height:0 !important;
  height:auto !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
body::after { content:none !important; display:none !important; }
.rinchan-shell {
  min-height:0 !important;
  height:auto !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.rinchan-shell > p:empty,
.rinchan-shell > .wp-block-spacer:last-child,
.rinchan-shell > .wp-block-group:empty:last-child { display:none !important; margin:0 !important; padding:0 !important; height:0 !important; }
body.home .rinchan-wellness-strip,
body.page .rinchan-wellness-strip { margin-bottom:0 !important; }

/* v1.4.9: isolate app page from footer-injected flow boxes */
body > .rinchan-shell ~ *:not(script):not(style):not(link):not(#wpadminbar):not(.rinchan-mobile-tabs) {
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
body > .rinchan-shell {
  display:block;
  overflow:visible;
}

/* v1.5.0: unified iOS-like circular action icons + hard page-end boundary */
.rinchan-appbar-actions {
  gap:8px;
}
.rinchan-news-button,
.rinchan-menu-toggle,
.rinchan-drawer-close {
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  border:1px solid rgba(11,53,98,.10);
  border-radius:50%;
  background:rgba(247,251,253,.96);
  box-shadow:0 5px 14px rgba(23,66,96,.07), inset 0 1px 0 rgba(255,255,255,.92);
}
.rinchan-news-button:hover,
.rinchan-menu-toggle:hover,
.rinchan-drawer-close:hover {
  background:#f0f7fa;
}
.rinchan-news-button svg,
.rinchan-menu-toggle svg,
.rinchan-drawer-close svg {
  width:23px;
  height:23px;
  stroke-width:2.7;
}
.rinchan-news-button .rinchan-bell-svg,
.rinchan-menu-toggle .rinchan-menu-svg {
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.rinchan-news-badge {
  top:-3px;
  right:-3px;
}
.rinchan-page-end {
  display:block;
  width:100%;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
  visibility:hidden;
}
.rinchan-page-end ~ * { margin:0!important; padding:0!important; }
.rinchan-shell {
  /* clip accidental vertical paint/overflow without creating a scroll container */
  overflow-x:clip;
  overflow-y:clip;
}
.rinchan-shell > .rinchan-page-end:last-child { margin:0!important; }
body.home .rinchan-shell,
body.page .rinchan-shell {
  padding-bottom:0!important;
  margin-bottom:0!important;
}

@media (max-width:700px) {
  .rinchan-appbar-actions { gap:6px; }
  .rinchan-news-button,
  .rinchan-menu-toggle { width:42px; height:42px; min-width:42px; min-height:42px; }
  .rinchan-news-button svg,
  .rinchan-menu-toggle svg { width:22px; height:22px; }
}

/* v1.6.1 compact native pages - repaired from malformed escaped CSS */
.rinchan-page-hero {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  padding:16px 18px;
  border:1px solid rgba(34,102,132,.08);
  border-radius:24px;
  background:linear-gradient(135deg,#f5fbff 0%,#f7fffb 100%);
  box-shadow:0 8px 22px rgba(35,92,126,.055);
}
.rinchan-page-hero.compact { padding-top:14px; padding-bottom:14px; }
.rinchan-page-hero.forest { background:linear-gradient(135deg,#f3fbf7,#f2fbff); }
.rinchan-page-hero.passport { grid-template-columns:44px minmax(0,1fr) auto; }
.page-hero-icon,.section-icon,.member-avatar,.department-sprout {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:#289e6e;
  overflow:hidden;
}
.page-hero-icon {
  width:44px;
  height:44px;
  border-radius:50%;
  background:#eaf8f0;
}
.page-hero-icon svg { width:24px!important; height:24px!important; max-width:24px!important; display:block; }
.rinchan-page-hero h1 { margin:0 0 4px; font-size:clamp(23px,4.8vw,30px); line-height:1.2; }
.rinchan-page-hero p { margin-top:0; margin-bottom:0; }
.rinchan-page-hero .eyebrow { margin-bottom:4px; }
.section-icon { width:40px; height:40px; border-radius:50%; background:#eff8f4; }
.section-icon svg { width:22px!important; height:22px!important; max-width:22px!important; display:block; }
.member-avatar { width:36px; height:36px; border-radius:50%; background:#f0f7fb; color:#2d8caf; }
.member-avatar svg { width:20px!important; height:20px!important; max-width:20px!important; }
.department-sprout { width:38px; height:38px; border-radius:50%; background:#edf9f1; }
.department-sprout svg { width:21px!important; height:21px!important; max-width:21px!important; }
.rinchan-form-card { background:linear-gradient(180deg,#fff,#fbfefd); }
.rinchan-form label>span { color:#36566f; font-size:13px; font-weight:850; }
.rinchan-form input,.rinchan-form textarea,.rinchan-form select {
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  border-color:rgba(38,86,119,.15);
  background:#fbfdff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.rinchan-form input:focus,.rinchan-form textarea:focus,.rinchan-form select:focus {
  outline:none;
  border-color:#56bfa2;
  box-shadow:0 0 0 4px rgba(73,190,155,.12);
}
.rinchan-form-two-col { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-full { grid-column:1/-1; }
.rinchan-button-wide { width:100%; }
.rinchan-sub-link { margin-top:16px; text-align:center; }
.rinchan-sub-link a { color:#1b7da8; font-weight:800; }
.rinchan-form-note { margin:14px 0 0; color:var(--rc-muted); font-size:12px; line-height:1.7; text-align:center; }
.rinchan-action-card { text-align:center; }
.rinchan-callout { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; text-align:left; }
.rinchan-callout p { margin:5px 0 0; }
.rinchan-visual-card { padding:16px; background:transparent; border:0; box-shadow:none; }
.rinchan-visual-card .rinchan-steps-visual { margin:0; }
.rinchan-history-list .history-row:last-child { border-bottom:0; }
.rinchan-department-grid { margin-top:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.department-card { background:linear-gradient(180deg,#fff,#fbfffd); border-radius:22px; box-shadow:0 8px 22px rgba(35,92,126,.05); }
.department-head,.member-head { display:flex; align-items:center; gap:10px; }
.department-head h3 { margin:0; }
.member { display:grid; gap:10px; border-radius:18px; }
.member .rinchan-button { min-height:38px; padding:0 14px; justify-self:start; }
.forest-progress { grid-column:2; height:8px; overflow:hidden; border-radius:999px; background:#dfedef; }
.forest-progress span { display:block; height:100%; width:var(--forest-pct); border-radius:inherit; background:linear-gradient(90deg,#6cd06a,#25bcae); }
.rinchan-thanks-compose[hidden] { display:none; }
.rinchan-news-list { gap:10px; }
.rinchan-news-item { position:relative; padding:18px 18px 18px 20px; border-radius:20px; background:#fff; box-shadow:0 7px 20px rgba(35,92,126,.045); }
.news-meta { display:flex; align-items:center; gap:8px; }
.news-dot { width:8px; height:8px; border-radius:50%; background:#4fc58b; }
.rinchan-page-hero .passport-h { min-width:96px; padding:12px 14px; border-radius:18px; box-shadow:none; }
.rinchan-stat-grid { margin-top:14px; }
.rinchan-stat { border-radius:20px; background:linear-gradient(180deg,#fff,#f9fcfd); }
.rinchan-pill-inline { margin-top:12px; }
.timeline-row { border-radius:18px; background:#fff; box-shadow:0 6px 18px rgba(35,92,126,.035); }
.timeline-row>span { width:42px; height:42px; min-height:42px; border-radius:50%; background:#eff8f4; color:#28996a; }
.timeline-row>span svg,.thanks-mark svg { width:21px!important; height:21px!important; max-width:21px!important; }
.rinchan-drawer-close span { display:grid; place-items:center; width:100%; height:100%; }
.rinchan-drawer-close svg { width:22px!important; height:22px!important; max-width:22px!important; }

/* defensive SVG sizing for page chrome */
.rinchan-page-hero svg,.rinchan-section-head svg,.department-card svg,.timeline-row svg { flex:none; }

@media (max-width:700px){
  .rinchan-page-hero { grid-template-columns:40px minmax(0,1fr); gap:10px; padding:14px 15px; border-radius:22px; }
  .rinchan-page-hero.passport { grid-template-columns:40px minmax(0,1fr); }
  .rinchan-page-hero.passport .passport-h { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; width:100%; min-width:0; padding:10px 14px; }
  .page-hero-icon { width:40px; height:40px; }
  .page-hero-icon svg { width:22px!important; height:22px!important; max-width:22px!important; }
  .rinchan-page-hero h1 { font-size:24px; }
  .rinchan-form-two-col,.rinchan-department-grid { grid-template-columns:1fr; }
  .form-full { grid-column:auto; }
  .rinchan-visual-card { padding:0; }
  .history-row { grid-template-columns:46px 84px minmax(0,1fr); }
}
@media (max-width:430px){
  .rinchan-page-hero { padding:13px 14px; }
  .rinchan-page-hero h1 { font-size:23px; }
  .rinchan-card { padding:18px; }
  .history-row { grid-template-columns:40px 76px minmax(0,1fr); font-size:13px; }
}

/* v1.6.3: mobile app scroll boundary + activity visual repair */
html.rinchan-app-scroll-lock,
html.rinchan-app-scroll-lock body {
  height:100%;
  min-height:0 !important;
  overflow:hidden !important;
}
body.rinchan-native-scroll-lock {
  height:100dvh !important;
  min-height:0 !important;
  overflow:hidden !important;
  overscroll-behavior:none;
}
body.rinchan-native-scroll-lock .rinchan-shell {
  width:min(100%,var(--rc-max));
  height:100dvh !important;
  min-height:0 !important;
  max-height:100dvh !important;
  margin:0 auto !important;
  padding-bottom:max(8px,env(safe-area-inset-bottom)) !important;
  overflow-x:clip !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-gutter:auto;
}
body.rinchan-native-scroll-lock .rinchan-page-end {
  height:1px !important;
  min-height:1px !important;
  max-height:1px !important;
}

/* Activity page uses the same visual system, but in a compact stacked layout. */
.rinchan-activity-visual {
  margin-bottom:14px !important;
  padding:0 !important;
}
.rinchan-activity-visual .rinchan-steps-visual {
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin:0;
}
.rinchan-activity-visual .rinchan-goal-card,
.rinchan-activity-visual .rinchan-week-chart {
  min-height:0;
  padding:20px 16px 18px;
  border:1px solid var(--rc-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 8px 24px rgba(35,92,126,.06);
  overflow:hidden;
}
.rinchan-activity-visual .rinchan-visual-title,
.rinchan-activity-visual .rinchan-week-chart-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
  color:var(--rc-navy);
  font-size:18px;
  font-weight:850;
}
.rinchan-activity-visual .rinchan-visual-title {
  justify-content:flex-start;
}
.rinchan-activity-visual .visual-icon,
.rinchan-activity-visual .chart-head-icon {
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  color:#31a96f;
}
.rinchan-activity-visual .visual-icon svg,
.rinchan-activity-visual .chart-head-icon svg {
  width:22px !important;
  height:22px !important;
}
.rinchan-activity-visual .rinchan-goal-ring {
  position:relative;
  width:min(250px,72vw);
  aspect-ratio:1/1;
  margin:4px auto 12px;
}
.rinchan-activity-visual .rinchan-goal-ring-svg {
  display:block;
  width:100%;
  height:100%;
  transform:rotate(-90deg);
  overflow:visible;
}
.rinchan-activity-visual .rinchan-goal-ring-track,
.rinchan-activity-visual .rinchan-goal-ring-progress {
  fill:none;
  stroke-width:9;
}
.rinchan-activity-visual .rinchan-goal-ring-track { stroke:#e7f0f2; }
.rinchan-activity-visual .rinchan-goal-ring-progress {
  stroke:url(#rinchanGoalGradient);
  stroke-linecap:round;
  stroke-dasharray:var(--ring-pct) 100;
}
.rinchan-activity-visual .rinchan-goal-ring-inner {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.rinchan-activity-visual .rinchan-goal-ring-inner small {
  order:-1;
  margin-bottom:6px;
  color:#2ca166;
  font-size:12px;
  font-weight:850;
}
.rinchan-activity-visual .rinchan-goal-ring-inner strong {
  color:#0a3869;
  font-size:38px;
  line-height:1;
  font-weight:900;
}
.rinchan-activity-visual .rinchan-goal-ring-inner strong em {
  margin-left:3px;
  color:#299b5e;
  font-size:15px;
  font-style:normal;
}
.rinchan-activity-visual .rinchan-goal-ring-inner span {
  margin-top:8px;
  color:#6d8298;
  font-size:15px;
  font-weight:700;
}
.rinchan-activity-visual .rinchan-goal-note {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin:0 auto;
  padding:9px 13px;
  border-radius:999px;
  background:#f5faf7;
  color:#17476d;
  font-size:12px;
}
.rinchan-activity-visual .note-icon { display:grid; place-items:center; width:22px; height:22px; color:#39a970; }
.rinchan-activity-visual .note-icon svg { width:20px !important; height:20px !important; }
.rinchan-activity-visual .rinchan-mini-landscape { display:none !important; }
.rinchan-activity-visual .rinchan-week-chart-head a {
  padding:7px 11px;
  border:1px solid #bfe6d3;
  border-radius:999px;
  background:#effbf5;
  color:#248b5d;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.rinchan-activity-visual .rinchan-bars {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:end;
  gap:6px;
  height:190px;
  margin-top:4px;
}
.rinchan-activity-visual .rinchan-bar-col {
  display:grid;
  grid-template-rows:20px 1fr 26px;
  min-width:0;
  height:100%;
  text-align:center;
}
.rinchan-activity-visual .rinchan-bar-value { color:#6d8298; font-size:10px; font-weight:800; white-space:nowrap; }
.rinchan-activity-visual .rinchan-bar-track {
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-height:0;
  background:transparent !important;
}
.rinchan-activity-visual .rinchan-bar-track span {
  display:block;
  width:min(24px,62%);
  min-height:0;
  border-radius:999px;
  background:linear-gradient(180deg,#92d94e 0%,#4dc889 48%,#24add6 100%);
}
.rinchan-activity-visual .rinchan-bar-label { padding-top:6px; color:#63788c; font-size:13px; font-weight:800; }
.rinchan-activity-visual .rinchan-bar-col.is-today .rinchan-bar-label { color:#179a65; }
.rinchan-activity-visual .rinchan-week-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:12px;
  padding:10px 13px;
  border-radius:15px;
  background:#f4faf7;
  color:#5e7a6d;
}
.rinchan-activity-visual .rinchan-week-footer strong { color:#179a65; font-size:18px; }

@media (max-width:700px) {
  body.rinchan-native-scroll-lock .rinchan-shell {
    padding-bottom:max(6px,env(safe-area-inset-bottom)) !important;
  }
  .rinchan-activity-visual .rinchan-goal-card,
  .rinchan-activity-visual .rinchan-week-chart { padding:18px 13px 16px; }
  .rinchan-activity-visual .rinchan-goal-ring { width:min(230px,70vw); }
  .rinchan-activity-visual .rinchan-bars { height:178px; gap:4px; }
}

/* v1.6.3: home and activity use the same compact goal-ring size. */
.rinchan-dashboard-section .rinchan-goal-ring,
.rinchan-activity-visual .rinchan-goal-ring { width:min(250px,72vw); }
@media (max-width:700px){
  .rinchan-dashboard-section .rinchan-goal-ring,
  .rinchan-activity-visual .rinchan-goal-ring { width:min(230px,70vw); }
}

/* v1.6.4: restore GitHub-era information architecture and editorial rhythm. */
.rinchan-story-hero{grid-template-columns:minmax(0,1fr);padding:20px 22px;background:linear-gradient(145deg,#f6fcfa,#f3fbff);}
.rinchan-story-hero h1{font-size:clamp(28px,6vw,38px);letter-spacing:-.02em;}
.activity-story-hero h1 span{display:block;}
.activity-story-hero h1 span+span{margin-top:2px;}
.rinchan-summary-card>.rinchan-activity-visual{margin-top:8px;}
.rinchan-summary-card .rinchan-activity-visual{padding:0;background:transparent;border:0;box-shadow:none;}
.rinchan-forest-status{display:flex;align-items:center;gap:14px;margin:16px 0;}
.section-icon.large{width:48px;height:48px;}
.compact-note{margin:8px 0 0;font-size:13px;}
.rinchan-info-grid{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);gap:10px 14px;align-items:center;}
.rinchan-info-grid span{color:var(--rc-muted);font-size:13px;font-weight:700;}
.rinchan-info-grid strong{min-width:0;overflow-wrap:anywhere;}
.rinchan-subheading{margin:20px 0 8px;font-size:16px;}
.rinchan-story-note{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.72);color:var(--rc-ink);}
.rinchan-story-note span{width:26px;height:26px;color:var(--rc-green);}
.rinchan-story-note svg{width:26px;height:26px;}
.rinchan-join-steps{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none;}
.rinchan-join-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.72);}
.rinchan-join-steps li span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8f8ef;color:var(--rc-green);font-weight:900;}
.rinchan-join-steps li strong{font-size:14px;}
.rinchan-sub-link{margin-top:16px;text-align:center;color:var(--rc-muted);font-size:13px;}
.rinchan-sub-link a{font-weight:800;}
@media(max-width:640px){
  .rinchan-story-hero{padding:18px 17px;}
  .rinchan-story-hero h1{font-size:30px;}
  .rinchan-info-grid{grid-template-columns:84px minmax(0,1fr);}
}


/* v1.6.5 typography + formal navigation labels */
.rinchan-button,
button.rinchan-button,
a.rinchan-button {
  font-size:15px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:0;
}
.rinchan-title.is-long {
  font-size:clamp(18px,4.3vw,24px);
  letter-spacing:0;
}
@media (max-width:700px) {
  .rinchan-appbar {
    grid-template-columns:82px minmax(0,1fr) 82px;
    gap:4px;
  }
  .rinchan-brand { width:52px; height:52px; justify-self:center; }
  .rinchan-brand img { width:46px; height:46px; }
  .rinchan-appbar-actions { width:82px; gap:0; justify-self:center; justify-content:center; }
  .rinchan-title { font-size:22px; letter-spacing:.02em; }
  .rinchan-title.is-long { font-size:clamp(17px,4.15vw,19px); letter-spacing:-.02em; }
  .rinchan-title.is-long:before,
  .rinchan-title.is-long:after { width:6px; margin:0 4px; }
  .rinchan-button,
  button.rinchan-button,
  a.rinchan-button { font-size:16px; }
}
@media (max-width:390px) {
  .rinchan-title.is-long { font-size:16.5px; }
}
.rinchan-button,
button.rinchan-button,
a.rinchan-button { font-family:inherit; }

/* v1.7.0: passport administrator entry */
.passport-story-hero{display:flex;align-items:center;justify-content:space-between;gap:16px}
.passport-story-hero>div{min-width:0;flex:1}
.rinchan-admin-link{width:64px;min-width:64px;height:64px;border-radius:50%;border:1px solid #d8e5ea;background:#fff;color:#0d3b6d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;box-shadow:0 8px 22px rgba(35,75,95,.07)}
.rinchan-admin-link span{width:26px;height:26px;display:block;color:#15996c}.rinchan-admin-link svg{width:100%;height:100%;display:block}.rinchan-admin-link small{font-size:11px;font-weight:800;color:#60758a;line-height:1}
.rinchan-admin-link:hover,.rinchan-admin-link:focus{color:#0d3b6d;border-color:#9fd9c0;background:#f7fffb}
@media(max-width:520px){.rinchan-admin-link{width:56px;min-width:56px;height:56px}.rinchan-admin-link span{width:23px;height:23px}.passport-story-hero h1{font-size:clamp(25px,7vw,32px)}}


/* v1.7.5 passport identity */
.passport-identity{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin-top:14px}
.passport-identity strong{font-size:18px;line-height:1.35;color:var(--rin-navy,#0c3d70)}
.passport-identity span{display:inline-flex;align-items:center;min-height:30px;padding:5px 11px;border-radius:999px;background:rgba(46,170,120,.11);color:#19855f;font-size:13px;font-weight:700}
@media(max-width:600px){.passport-identity{margin-top:11px}.passport-identity strong{font-size:17px}.passport-identity span{font-size:12px;min-height:28px}}

/* v1.8.0 GitHub badge medals / catalog */
.rinchan-badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.rinchan-medal-badge{position:relative;text-align:center;background:#f9fcf8;border:1px solid #dfe9df;border-radius:24px;padding:16px 10px 14px;box-shadow:0 8px 20px rgba(80,120,90,.08)}.rinchan-medal-wrap{position:relative;width:94px;height:106px;margin:0 auto 8px}.rinchan-medal-svg{display:block;width:94px;height:106px;overflow:visible}.badge-core-icon{font-size:28px;font-weight:900}.badge-ribbon-text{font-size:10px;font-weight:900;letter-spacing:.05em;fill:#fff}.rinchan-medal-lock{position:absolute;right:-2px;bottom:4px;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #d8e3d8;display:grid;place-items:center;box-shadow:0 5px 12px rgba(0,0,0,.1)}.rinchan-medal-lock svg{width:17px!important;height:17px!important;fill:none;stroke:#6e8077;stroke-width:2}.rinchan-medal-badge>strong{display:block;color:#244038;font-size:15px;font-weight:900;line-height:1.35;margin:3px 0}.rinchan-medal-badge>small{display:block;color:#73857c;font-size:12px;font-weight:700;line-height:1.45;min-height:34px}.rinchan-medal-badge.is-locked .rinchan-medal-svg{filter:grayscale(1) saturate(.45);opacity:.78}.badge-group-label{display:inline-flex;margin-top:8px;padding:4px 8px;border-radius:999px;background:#edf7f2;color:#2b8f68;font-size:10px;font-weight:800}.is-earned-grid .rinchan-medal-badge{background:linear-gradient(180deg,#fff,#f5fff9)}
@media(max-width:380px){.rinchan-badge-grid{grid-template-columns:1fr}.rinchan-medal-wrap,.rinchan-medal-svg{width:100px;height:108px}}

.rinchan-reward-list{display:grid;gap:8px;margin:10px 0 18px}.rinchan-reward-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:14px;background:#f7faf9;border:1px solid #e5ece9}.rinchan-reward-row strong{font-size:14px}.rinchan-reward-row span{font-weight:900;color:#178b62;white-space:nowrap}


/* v1.8.3 iPhone Health shortcut bridge */
.rinchan-health-card{overflow:hidden}.rinchan-health-status{display:flex;flex-direction:column;gap:4px;margin:16px 0;padding:14px 16px;border-radius:18px;background:#f2faf7;border:1px solid #d8eee5}.rinchan-health-status strong{color:#24483b}.rinchan-health-status small{color:#6f817a}.rinchan-health-actions{display:flex;gap:10px;flex-wrap:wrap}.rinchan-health-secret{margin-top:18px}.rinchan-health-secret label{display:block;margin-top:12px}.rinchan-health-secret label span{display:block;font-weight:800;margin-bottom:6px}.rinchan-health-secret input,.rinchan-health-secret textarea{width:100%;box-sizing:border-box;border:1px solid #d9e5df;border-radius:14px;background:#fff;padding:11px 12px;font:inherit;color:#30443d}.rinchan-health-guide{margin-top:18px;border-top:1px solid #e6eee9;padding-top:14px}.rinchan-health-guide summary{cursor:pointer;font-weight:900;color:#26684f}.rinchan-health-guide ol{padding-left:1.35rem;line-height:1.75}.rinchan-health-guide code{font-size:.88em;background:#eef5f1;padding:2px 5px;border-radius:6px}

/* v1.8.3 activity detail anchor */
#rinchan-recent-records{scroll-margin-top:24px;}

/* v1.8.8 iPhone shortcut guide */
.rinchan-health-guide-body{padding:8px 2px 2px}.rinchan-health-guide-body>p:first-child{margin-top:4px}.rinchan-health-guide-body ol{margin:14px 0 16px;padding-left:1.45em}.rinchan-health-guide-body li{margin:0 0 14px;line-height:1.75}.rinchan-health-guide-body li strong{color:#0c3d70}.rinchan-health-guide-body code{font-size:.92em;padding:2px 6px;border-radius:7px;background:#eef7f4;color:#11795c}.rinchan-health-caution{margin:16px 0;padding:14px 16px;border-radius:18px;background:#fff8e8;border:1px solid #f1dfac;color:#5e5337}.rinchan-health-caution strong{display:block;margin-bottom:5px;color:#8a6717}.rinchan-health-caution p{margin:0;line-height:1.7}@media(max-width:480px){.rinchan-health-guide-body ol{padding-left:1.25em}.rinchan-health-guide-body li{margin-bottom:12px}}

/* v1.8.8 per-news manual read control */
.rinchan-news-item.is-unread{border-color:#cfeede;background:#fbfffd}.rinchan-news-item.is-read{opacity:.82}.rinchan-news-item.is-unread .news-dot{background:#24ad74;box-shadow:0 0 0 4px rgba(36,173,116,.1)}.rinchan-news-item.is-read .news-dot{background:#b9c6c0}.rinchan-news-read-toggle{margin-left:auto;min-width:58px;padding:7px 12px;border:1px solid #5bc291;border-radius:999px;background:#effaf5;color:#16865e;font:inherit;font-size:12px;font-weight:800;line-height:1;cursor:pointer}.rinchan-news-read-toggle.is-read,.rinchan-news-read-toggle:disabled{border-color:#dce5e0;background:#f3f6f4;color:#7b8b83;cursor:default}.rinchan-news-read-toggle:not(.is-read):active{transform:scale(.97)}

/* v1.8.15: mobile text rhythm and orphan-wrap cleanup. */
@media (max-width:600px){
  .rinchan-stat-grid .rinchan-stat small{font-size:12px;line-height:1.45;white-space:nowrap;letter-spacing:-.02em}
  .rinchan-card > .muted{font-size:15px;line-height:1.75;word-break:normal;line-break:strict;overflow-wrap:normal}
}


/* v1.9.1 redesigned mobile drawer */
.rinchan-drawer-backdrop{
  background:rgba(18,48,72,.48);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.rinchan-drawer-panel{
  width:min(88vw,420px);
  padding:28px 24px calc(28px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,#ffffff 0%,#ffffff 72%,#fbfdff 100%);
  box-shadow:-24px 0 54px rgba(11,53,98,.18);
}
.rinchan-drawer-head{
  min-height:96px;
  padding:6px 0 22px;
  border-bottom:1px solid #e4ebf0;
}
.rinchan-drawer-head>div{gap:4px;}
.rinchan-drawer-head small{
  color:#7c91a7;
  font-size:14px;
  font-weight:800;
  letter-spacing:.03em;
}
.rinchan-drawer-head strong{
  color:#0b3562;
  font-size:31px;
  line-height:1.15;
  letter-spacing:.02em;
}
.rinchan-drawer-close{
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  color:#0b3562;
  border:1px solid #dce6ed;
  background:#fff;
  box-shadow:0 8px 20px rgba(11,53,98,.09);
}
.rinchan-drawer-nav{
  display:grid;
  gap:8px;
  padding:16px 0 18px;
}
.rinchan-drawer-link{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr) 20px;
  align-items:center;
  gap:12px;
  min-height:62px;
  padding:9px 12px!important;
  color:#0b3562!important;
  border:1px solid #e5ebef;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 5px 15px rgba(26,70,104,.055);
  text-decoration:none!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.rinchan-drawer-link:active{transform:scale(.992);}
.rinchan-drawer-link.is-current{
  color:#15916f!important;
  border-color:#cce9de;
  background:linear-gradient(105deg,#f4fbff 0%,#f0fbf7 48%,#f1fbed 100%)!important;
  box-shadow:0 7px 19px rgba(41,142,108,.075);
}
.rinchan-drawer-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:#3475c0;
  border-radius:50%;
  background:#f2f7fd;
}
.rinchan-drawer-link.is-current .rinchan-drawer-icon{
  color:#15916f;
  background:#e6f7f0;
}
.rinchan-drawer-icon svg{width:22px!important;height:22px!important;max-width:22px!important;}
.rinchan-drawer-label{
  min-width:0;
  font-size:15.5px;
  font-weight:900;
  line-height:1.3;
  letter-spacing:.01em;
}
.rinchan-drawer-chevron{
  display:grid;
  place-items:center;
  color:#8b969f;
}
.rinchan-drawer-link.is-current .rinchan-drawer-chevron{color:#3aa486;}
.rinchan-drawer-chevron svg{width:18px!important;height:18px!important;max-width:18px!important;}
.rinchan-account{
  padding-top:16px;
  border-top:1px solid #e4ebf0;
}
.rinchan-account-card{
  display:grid;
  grid-template-columns:60px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:16px;
  border:1px solid #dce9f2;
  border-radius:22px;
  background:linear-gradient(135deg,#ffffff 0%,#fbfdff 52%,#f4fafc 100%);
  box-shadow:0 10px 28px rgba(20,64,101,.07),inset 0 1px 0 rgba(255,255,255,.96);
}
.rinchan-account-avatar{
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  color:#62bf9f;
  border-radius:50%;
  background:linear-gradient(145deg,#f0faf6,#e7f7f0);
  box-shadow:inset 0 0 0 1px rgba(80,176,143,.08);
}
.rinchan-account-avatar svg{width:30px!important;height:30px!important;max-width:30px!important;}
.rinchan-account-main{min-width:0;}
.rinchan-account-name{
  display:block;
  margin:1px 0 8px;
  color:#0b3562;
  font-size:17px;
  font-weight:900;
  line-height:1.3;
}
.rinchan-account-name span{font-size:.82em;}
.rinchan-account-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:10px;
}
.rinchan-account-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-width:0;
  padding:5px 8px;
  color:#335778;
  border:1px solid #dce7ef;
  border-radius:999px;
  background:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
.rinchan-account-chip svg{width:14px!important;height:14px!important;max-width:14px!important;}
.rinchan-account-chip.is-h{
  color:#198f77;
  border-color:#cfeae1;
  background:#effaf6;
}
.rinchan-account-chip.is-h b{
  display:grid;
  place-items:center;
  width:15px;
  height:15px;
  border:1.5px solid currentColor;
  border-radius:50%;
  font-size:9px;
}
.rinchan-logout-form{margin:0;}
.rinchan-logout-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:40px;
  padding:8px 14px;
  color:#2465ad;
  border:1.5px solid #84aee0;
  border-radius:999px;
  background:rgba(255,255,255,.8);
  font-size:15px;
  font-weight:900;
  box-shadow:none;
}
.rinchan-logout-button svg{width:18px!important;height:18px!important;max-width:18px!important;}
.rinchan-logout-button:active{background:#f1f7fd;}

@media(max-width:430px){
  .rinchan-drawer-panel{
    width:min(84vw,350px);
    padding:16px 14px calc(16px + env(safe-area-inset-bottom));
  }
  .rinchan-drawer-head{min-height:0;padding:2px 0 12px;}
  .rinchan-drawer-head small{font-size:12px;}
  .rinchan-drawer-head strong{font-size:22px;}
  .rinchan-drawer-close{width:42px;height:42px;min-width:42px;min-height:42px;}
  .rinchan-drawer-nav{gap:7px;padding:12px 0 14px;}
  .rinchan-drawer-link{
    grid-template-columns:38px minmax(0,1fr) 18px;
    gap:10px;
    min-height:56px;
    padding:8px 11px!important;
    border-radius:18px!important;
  }
  .rinchan-drawer-icon{width:38px;height:38px;}
  .rinchan-drawer-icon svg{width:20px!important;height:20px!important;max-width:20px!important;}
  .rinchan-drawer-label{font-size:14px;}
  .rinchan-drawer-chevron svg{width:16px!important;height:16px!important;max-width:16px!important;}
  .rinchan-account{padding-top:14px;}
  .rinchan-account-card{
    grid-template-columns:52px minmax(0,1fr);
    gap:12px;
    padding:14px 13px;
    border-radius:20px;
  }
  .rinchan-account-avatar{width:52px;height:52px;}
  .rinchan-account-avatar svg{width:26px!important;height:26px!important;max-width:26px!important;}
  .rinchan-account-name{margin-top:0;font-size:16px;}
  .rinchan-account-meta{gap:5px;margin-bottom:9px;}
  .rinchan-account-chip{padding:5px 7px;font-size:11px;}
  .rinchan-logout-button{min-height:38px;font-size:14px;}
}

@media(max-width:360px){
  .rinchan-drawer-panel{width:min(84vw,332px);padding-left:12px;padding-right:12px;}
  .rinchan-drawer-link{min-height:52px;padding:7px 10px!important;}
  .rinchan-drawer-label{font-size:13.5px;}
  .rinchan-account-card{grid-template-columns:46px minmax(0,1fr);gap:10px;padding:12px;}
  .rinchan-account-avatar{width:46px;height:46px;}
  .rinchan-account-avatar svg{width:22px!important;height:22px!important;max-width:22px!important;}
  .rinchan-account-name{font-size:15px;}
  .rinchan-account-chip{font-size:10.5px;}
  .rinchan-logout-button{min-height:36px;font-size:13px;}
}


/* v1.9.4 - forest flowers grow with thanks */
.rinchan-flower-card{overflow:hidden;}
.rinchan-flower-scene{
  position:relative;
  min-height:230px;
  margin:16px 0 14px;
  overflow:hidden;
  border:1px solid rgba(70,151,128,.11);
  border-radius:24px;
  background:linear-gradient(180deg,#f0fbff 0%,#f7fff9 58%,#f0faed 100%);
}
.rinchan-flower-sky{position:absolute;inset:0 0 44% 0;pointer-events:none;}
.rinchan-flower-cloud{position:absolute;width:74px;height:22px;border-radius:999px;background:rgba(255,255,255,.78);filter:blur(.1px);}
.rinchan-flower-cloud:before,.rinchan-flower-cloud:after{content:"";position:absolute;border-radius:50%;background:inherit;}
.rinchan-flower-cloud:before{width:30px;height:30px;left:13px;top:-12px;}.rinchan-flower-cloud:after{width:38px;height:38px;right:10px;top:-17px;}
.rinchan-flower-cloud.cloud-a{left:11%;top:22%;}.rinchan-flower-cloud.cloud-b{right:10%;top:32%;transform:scale(.78);opacity:.72;}
.rinchan-flower-ground{position:absolute;left:-8%;right:-8%;bottom:-42px;height:105px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#dff4d9,#cdecc8);}
.rinchan-flower-field{position:absolute;inset:34px 18px 24px;z-index:2;}
.rinchan-flower{
  position:absolute;
  width:46px;
  height:112px;
  transform-origin:50% 100%;
  animation:rinchanFlowerSway 4.4s ease-in-out infinite alternate;
}
.rinchan-flower .stem{position:absolute;left:22px;bottom:4px;width:3px;height:58px;border-radius:999px;background:#62b878;}
.rinchan-flower .leaf{position:absolute;bottom:28px;width:18px;height:10px;background:#78c989;border-radius:100% 0 100% 0;}
.rinchan-flower .leaf-left{left:7px;transform:rotate(25deg);}.rinchan-flower .leaf-right{right:5px;bottom:38px;transform:scaleX(-1) rotate(25deg);}
.rinchan-flower .bloom{position:absolute;left:8px;top:5px;width:32px;height:32px;}
.rinchan-flower .bloom em{position:absolute;left:10px;top:1px;width:13px;height:18px;border-radius:70% 70% 58% 58%;background:#f6a9bd;transform-origin:50% 15px;}
.rinchan-flower .bloom em:nth-child(2){transform:rotate(72deg);}.rinchan-flower .bloom em:nth-child(3){transform:rotate(144deg);}.rinchan-flower .bloom em:nth-child(4){transform:rotate(216deg);}.rinchan-flower .bloom em:nth-child(5){transform:rotate(288deg);}
.rinchan-flower .bloom>i{position:absolute;left:11px;top:11px;width:11px;height:11px;border-radius:50%;background:#f4c85d;box-shadow:0 1px 4px rgba(120,90,28,.18);}
.rinchan-flower:nth-of-type(3n+2) .bloom em{background:#a8c7f4;}.rinchan-flower:nth-of-type(3n) .bloom em{background:#f5c880;}.rinchan-flower:nth-of-type(4n) .bloom em{background:#c7a9e9;}
.rinchan-flower:nth-of-type(even){animation-delay:-1.4s}.rinchan-flower:nth-of-type(3n){animation-delay:-2.2s}
.rinchan-flower-1{left:6%;bottom:2%;transform:scale(.92)}.rinchan-flower-2{left:23%;bottom:0;transform:scale(.76)}.rinchan-flower-3{left:42%;bottom:5%;transform:scale(1.02)}.rinchan-flower-4{left:64%;bottom:1%;transform:scale(.82)}.rinchan-flower-5{left:81%;bottom:4%;transform:scale(.95)}.rinchan-flower-6{left:14%;bottom:35%;transform:scale(.67)}.rinchan-flower-7{left:34%;bottom:31%;transform:scale(.74)}.rinchan-flower-8{left:55%;bottom:36%;transform:scale(.68)}.rinchan-flower-9{left:75%;bottom:30%;transform:scale(.72)}.rinchan-flower-10{left:2%;bottom:22%;transform:scale(.64)}.rinchan-flower-11{left:48%;bottom:19%;transform:scale(.59)}.rinchan-flower-12{left:88%;bottom:22%;transform:scale(.62)}
.rinchan-flower-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;color:#52776d;}
.rinchan-flower-empty strong{font-size:16px;color:#315e53}.rinchan-flower-empty small{font-size:12px;color:#738f88}
.rinchan-flower-bud{position:relative;width:18px;height:28px;margin-bottom:4px;border-radius:70% 70% 55% 55%;background:#7bc98f;transform:rotate(-12deg);}.rinchan-flower-bud:after{content:"";position:absolute;left:8px;top:24px;width:2px;height:25px;background:#65b477;}
.rinchan-flower-summary{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:10px;margin-bottom:12px;}
.rinchan-flower-summary>div{padding:13px 14px;border:1px solid rgba(45,111,93,.09);border-radius:16px;background:#f8fcfa;}
.rinchan-flower-summary strong,.rinchan-flower-summary small{display:block}.rinchan-flower-summary strong{color:var(--rc-navy);font-size:16px;line-height:1.35}.rinchan-flower-summary small{margin-top:4px;color:var(--rc-muted);font-size:12px;line-height:1.5}
.rinchan-personal-thanks{margin-top:0;}
@keyframes rinchanFlowerSway{0%{rotate:-1.8deg}100%{rotate:2.2deg}}
@media(max-width:520px){
  .rinchan-flower-scene{min-height:205px;border-radius:21px}.rinchan-flower-field{inset:28px 10px 20px}.rinchan-flower{width:40px;height:102px}.rinchan-flower .stem{left:19px;height:52px}.rinchan-flower .bloom{transform:scale(.9);transform-origin:center}.rinchan-flower-summary{grid-template-columns:1fr}.rinchan-flower-summary>div{padding:11px 12px}.rinchan-flower-summary strong{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.rinchan-flower{animation:none!important}}

/* v1.9.4 - butterflies arrive as the thanks flower field grows */
.rinchan-butterflies{position:absolute;inset:10px 8px 58px;z-index:4;pointer-events:none;overflow:visible}
.rinchan-butterfly{position:absolute;width:30px;height:24px;filter:drop-shadow(0 3px 4px rgba(55,83,109,.16));animation:rinchan-butterfly-drift 7.5s ease-in-out infinite alternate}
.rinchan-butterfly .wing{position:absolute;top:4px;width:14px;height:16px;border-radius:75% 25% 70% 30%;background:linear-gradient(145deg,#89c9f5,#8fa8eb 58%,#c5a8ee);transform-origin:100% 70%;animation:rinchan-wing-flap .48s ease-in-out infinite alternate}
.rinchan-butterfly .wing-left{left:1px;transform:rotate(-24deg)}
.rinchan-butterfly .wing-right{right:1px;transform:scaleX(-1) rotate(-24deg);transform-origin:0 70%}
.rinchan-butterfly .butterfly-body{position:absolute;left:13px;top:6px;width:4px;height:14px;border-radius:999px;background:#4c6070;box-shadow:0 -3px 0 -1px #4c6070}
.rinchan-butterfly .butterfly-body:before,.rinchan-butterfly .butterfly-body:after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:#4c6070;transform-origin:bottom}
.rinchan-butterfly .butterfly-body:before{left:0;transform:rotate(-31deg)}.rinchan-butterfly .butterfly-body:after{right:0;transform:rotate(31deg)}
.rinchan-butterfly.butterfly-1{left:19%;top:24%;animation-duration:7.2s}
.rinchan-butterfly.butterfly-2{right:22%;top:11%;transform:scale(.88);animation-duration:8.8s;animation-delay:-2.1s}
.rinchan-butterfly.butterfly-2 .wing{background:linear-gradient(145deg,#f5c071,#f3a8bb 62%,#d6a8e5)}
.rinchan-butterfly.butterfly-3{left:52%;top:42%;transform:scale(.76);animation-duration:6.9s;animation-delay:-3.7s}
.rinchan-butterfly.butterfly-3 .wing{background:linear-gradient(145deg,#8ad9bd,#66c7b5 58%,#92b8ec)}
.rinchan-butterfly-summary{grid-column:1 / -1;background:linear-gradient(135deg,#f7fbff,#f4fbf8)!important}
@keyframes rinchan-wing-flap{from{transform:rotate(-20deg) scaleX(.92)}to{transform:rotate(22deg) scaleX(.72)}}
@keyframes rinchan-butterfly-drift{0%{translate:0 0;rotate:-3deg}25%{translate:16px -12px;rotate:4deg}55%{translate:30px 4px;rotate:-2deg}78%{translate:10px 15px;rotate:5deg}100%{translate:-7px 3px;rotate:-3deg}}
@media(max-width:430px){.rinchan-butterflies{inset:8px 5px 52px}.rinchan-butterfly{width:26px;height:21px}.rinchan-butterfly .wing{width:12px;height:14px}.rinchan-butterfly .butterfly-body{left:11px;height:12px}.rinchan-butterfly.butterfly-1{left:14%;top:22%}.rinchan-butterfly.butterfly-2{right:16%;top:12%}.rinchan-butterfly.butterfly-3{left:48%;top:40%}}
@media(prefers-reduced-motion:reduce){.rinchan-butterfly,.rinchan-butterfly .wing{animation:none!important}}
.rinchan-butterfly .wing-left{animation-name:rinchan-wing-flap-left}.rinchan-butterfly .wing-right{animation-name:rinchan-wing-flap-right}
@keyframes rinchan-wing-flap-left{from{transform:rotate(-28deg) scaleX(.94)}to{transform:rotate(20deg) scaleX(.72)}}
@keyframes rinchan-wing-flap-right{from{transform:scaleX(-1) rotate(-28deg) scaleX(.94)}to{transform:scaleX(-1) rotate(20deg) scaleX(.72)}}


/* v1.9.5 - birds arrive after the flower field and butterflies grow */
.rinchan-birds{position:absolute;inset:4px 4px 62% 4px;z-index:5;pointer-events:none;overflow:visible}
.rinchan-bird{position:absolute;width:46px;height:24px;filter:drop-shadow(0 4px 5px rgba(48,73,94,.12));animation:rinchan-bird-glide 11s ease-in-out infinite alternate}
.rinchan-bird .bird-body{position:absolute;left:20px;top:9px;width:9px;height:6px;border-radius:70% 70% 60% 60%;background:#4f7184}
.rinchan-bird .bird-body:after{content:"";position:absolute;right:-5px;top:1px;width:7px;height:3px;border-radius:0 100% 100% 0;background:#e9ad63;transform:skewX(-22deg)}
.rinchan-bird .bird-wing{position:absolute;top:2px;width:23px;height:12px;border:3px solid #64879a;border-color:#64879a transparent transparent transparent;border-radius:50% 50% 0 0;transform-origin:100% 70%;animation:rinchan-bird-flap 1.4s ease-in-out infinite alternate}
.rinchan-bird .wing-left{left:0;transform:rotate(-7deg)}
.rinchan-bird .wing-right{right:0;transform:scaleX(-1) rotate(-7deg);transform-origin:0 70%}
.rinchan-bird.bird-1{left:14%;top:16%;animation-duration:10.8s}
.rinchan-bird.bird-2{right:12%;top:42%;transform:scale(.82);animation-duration:12.7s;animation-delay:-3s}
.rinchan-bird.bird-2 .bird-body{background:#5e8193}.rinchan-bird.bird-2 .bird-wing{border-top-color:#7599aa}
.rinchan-bird.bird-3{left:52%;top:6%;transform:scale(.68);animation-duration:9.6s;animation-delay:-5s}
.rinchan-bird.bird-3 .bird-body{background:#45677b}.rinchan-bird.bird-3 .bird-wing{border-top-color:#5d8193}
.rinchan-bird-summary{grid-column:1 / -1;background:linear-gradient(135deg,#f5fbff,#f4faf7)!important}
@keyframes rinchan-bird-flap{0%{rotate:-9deg;scale:1 .86}100%{rotate:9deg;scale:1 1.08}}
@keyframes rinchan-bird-glide{0%{translate:-8px 1px}24%{translate:28px -6px}52%{translate:62px 2px}78%{translate:30px 7px}100%{translate:-3px 0}}
@media(max-width:430px){.rinchan-birds{inset:3px 2px 64%}.rinchan-bird{width:38px;height:20px}.rinchan-bird .bird-body{left:16px;top:8px;width:8px;height:5px}.rinchan-bird .bird-wing{width:19px;height:10px;border-width:2.5px}.rinchan-bird.bird-1{left:10%}.rinchan-bird.bird-2{right:8%}.rinchan-bird.bird-3{left:48%}}
@media(prefers-reduced-motion:reduce){.rinchan-bird,.rinchan-bird .bird-wing{animation:none!important}}

/* v1.9.6 - seasonal forest scenery */
.rinchan-season-hero{
  grid-template-columns:minmax(0,1fr) auto;
  overflow:hidden;
}
.rinchan-season-hero-mark{
  display:grid;
  justify-items:center;
  gap:4px;
  min-width:76px;
  padding:10px 12px;
  border:1px solid rgba(27,92,120,.10);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  box-shadow:0 8px 18px rgba(35,92,126,.06);
}
.rinchan-season-hero-mark>span{font-size:30px;line-height:1}.rinchan-season-hero-mark small{max-width:92px;color:#526f87;font-size:11px;font-weight:850;line-height:1.25;text-align:center}
.rinchan-season-letter{position:relative;overflow:hidden}.rinchan-season-letter:after{content:"";position:absolute;right:-32px;bottom:-48px;width:130px;height:90px;border-radius:50%;background:rgba(79,187,135,.07);pointer-events:none}.rinchan-season-letter-emoji{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#f3faf7;font-size:24px}
.rinchan-season-scene-mark{position:absolute;left:12px;top:10px;z-index:8;display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.68);border-radius:999px;background:rgba(255,255,255,.76);box-shadow:0 5px 12px rgba(32,72,93,.07);backdrop-filter:blur(5px)}
.rinchan-season-scene-mark>span{font-size:16px}.rinchan-season-scene-mark small{color:#355a70;font-size:10.5px;font-weight:900;white-space:nowrap}
.rinchan-season-particles{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.season-particle{position:absolute;display:block;opacity:.76;animation:rinchanSeasonFall 8.5s linear infinite}
.season-particle.p-1{left:7%;top:-10%;animation-delay:-1s}.season-particle.p-2{left:16%;top:-19%;animation-delay:-4.7s}.season-particle.p-3{left:27%;top:-6%;animation-delay:-2.5s}.season-particle.p-4{left:38%;top:-23%;animation-delay:-7.3s}.season-particle.p-5{left:49%;top:-11%;animation-delay:-5.4s}.season-particle.p-6{left:59%;top:-18%;animation-delay:-3.2s}.season-particle.p-7{left:68%;top:-7%;animation-delay:-6.6s}.season-particle.p-8{left:78%;top:-20%;animation-delay:-2s}.season-particle.p-9{left:88%;top:-9%;animation-delay:-5.9s}.season-particle.p-10{left:95%;top:-17%;animation-delay:-3.8s}.season-particle.p-11{left:31%;top:-28%;animation-delay:-8s}.season-particle.p-12{left:72%;top:-29%;animation-delay:-1.8s}
@keyframes rinchanSeasonFall{0%{translate:0 -18px;rotate:0deg}50%{translate:14px 110px;rotate:150deg}100%{translate:-8px 250px;rotate:310deg}}

/* Spring: pale sky and drifting petals */
.rinchan-flower-scene.season-spring{background:linear-gradient(180deg,#f3fbff 0%,#fff8fb 50%,#eef9ed 100%)}
.rinchan-flower-scene.season-spring .rinchan-flower-ground{background:linear-gradient(180deg,#dff4d8,#caecc9)}
.season-spring .season-particle{width:9px;height:6px;border-radius:100% 0 100% 0;background:#f5a9bd;transform:rotate(28deg)}
.rinchan-season-hero.season-spring{background:linear-gradient(145deg,#fff7fb,#f2fbf7)}

/* Rainy season: cool blue sky and soft raindrops */
.rinchan-flower-scene.season-rain{background:linear-gradient(180deg,#dfeef6 0%,#eef7f8 55%,#e5f3e4 100%)}
.rinchan-flower-scene.season-rain .rinchan-flower-cloud{background:rgba(237,244,248,.90)}
.rinchan-flower-scene.season-rain .rinchan-flower-ground{background:linear-gradient(180deg,#d1ead8,#c5e4d0)}
.season-rain .season-particle{width:2px;height:13px;border-radius:999px;background:#6baacb;animation-name:rinchanRainFall;animation-duration:2.8s;opacity:.48}
@keyframes rinchanRainFall{0%{translate:0 -20px}100%{translate:-12px 260px}}
.rinchan-season-hero.season-rain{background:linear-gradient(145deg,#eef7fb,#edf8f5)}

/* Summer: brighter sky, sun glow and pollen-like light */
.rinchan-flower-scene.season-summer{background:linear-gradient(180deg,#dcf5ff 0%,#f4fcff 53%,#edf9df 100%)}
.rinchan-flower-scene.season-summer:before{content:"";position:absolute;right:22px;top:22px;width:52px;height:52px;border-radius:50%;background:#ffd969;box-shadow:0 0 0 12px rgba(255,217,105,.12),0 0 30px rgba(255,199,62,.20);z-index:1}
.rinchan-flower-scene.season-summer .rinchan-flower-ground{background:linear-gradient(180deg,#d9f0bd,#bfe5b6)}
.season-summer .season-particle{width:5px;height:5px;border-radius:50%;background:#fff4a5;animation-duration:10s;opacity:.62}
.rinchan-season-hero.season-summer{background:linear-gradient(145deg,#eaf9ff,#f6fce9)}

/* Autumn: warm sky and falling leaves */
.rinchan-flower-scene.season-autumn{background:linear-gradient(180deg,#fff0d9 0%,#fff9ec 54%,#eef2d5 100%)}
.rinchan-flower-scene.season-autumn .rinchan-flower-ground{background:linear-gradient(180deg,#dce7b9,#c9db9f)}
.season-autumn .season-particle{width:11px;height:7px;border-radius:100% 0 100% 0;background:#d99548;animation-duration:7.6s}.season-autumn .season-particle:nth-child(3n){background:#c96b45}.season-autumn .season-particle:nth-child(3n+2){background:#e5b85d}
.rinchan-season-hero.season-autumn{background:linear-gradient(145deg,#fff7e9,#f5f9e8)}

/* Winter: pale quiet forest with snow */
.rinchan-flower-scene.season-winter{background:linear-gradient(180deg,#eaf4fb 0%,#f5f9fc 56%,#edf4ef 100%)}
.rinchan-flower-scene.season-winter .rinchan-flower-ground{background:linear-gradient(180deg,#eef5ef,#dfeadf)}
.season-winter .season-particle{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(171,200,218,.28);animation-duration:9.8s;opacity:.92}
.rinchan-season-hero.season-winter{background:linear-gradient(145deg,#f4f8fc,#f3f8f6)}

/* Tanabata: dusk sky and stars */
.rinchan-flower-scene.season-tanabata{background:linear-gradient(180deg,#dfe8ff 0%,#edf2ff 45%,#eef8ed 100%)}
.rinchan-flower-scene.season-tanabata .rinchan-flower-cloud{opacity:.32}.rinchan-flower-scene.season-tanabata .rinchan-flower-ground{background:linear-gradient(180deg,#d9ecd2,#c3e3bd)}
.season-tanabata .season-particle{width:7px;height:7px;background:#f6d875;clip-path:polygon(50% 0,61% 36%,100% 38%,69% 59%,80% 100%,50% 76%,20% 100%,31% 59%,0 38%,39% 36%);animation-name:rinchanStarFloat;animation-duration:6s}
@keyframes rinchanStarFloat{0%{translate:0 10px;opacity:.2;scale:.7}50%{opacity:1;scale:1}100%{translate:8px 180px;opacity:.15;scale:.75}}
.rinchan-season-hero.season-tanabata{background:linear-gradient(145deg,#eef1ff,#f3f9f5)}

/* Birthday: celebratory confetti, still gentle enough for the app */
.rinchan-flower-scene.season-birthday{background:linear-gradient(180deg,#fff3f7 0%,#f7f5ff 52%,#eef9ed 100%)}
.season-birthday .season-particle{width:4px;height:11px;border-radius:3px;background:#6cc7ad;animation-duration:6.4s}.season-birthday .season-particle:nth-child(3n){background:#f5aa6c}.season-birthday .season-particle:nth-child(3n+2){background:#9aa8ea}
.rinchan-season-hero.season-birthday{background:linear-gradient(145deg,#fff5f9,#f2f6ff)}

@media(max-width:520px){
  .rinchan-season-hero{grid-template-columns:minmax(0,1fr) 66px;gap:10px}.rinchan-season-hero-mark{min-width:62px;padding:8px 6px;border-radius:17px}.rinchan-season-hero-mark>span{font-size:25px}.rinchan-season-hero-mark small{font-size:9.5px}.rinchan-season-scene-mark{left:9px;top:8px;padding:5px 8px}.rinchan-season-letter-emoji{width:40px;height:40px;font-size:21px}
}
@media(prefers-reduced-motion:reduce){.season-particle{animation:none!important}.season-particle:nth-child(n+7){display:none}}


/* v1.9.7 - seasonal event participation and badge unlock */
.rinchan-event-participation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 14px;align-items:center;margin-top:16px;padding:14px 15px;border:1px solid rgba(49,139,108,.16);border-radius:18px;background:rgba(255,255,255,.76)}
.rinchan-event-participation-copy{display:grid;gap:3px;min-width:0}.rinchan-event-participation-copy strong{color:#17496c;font-size:15px}.rinchan-event-participation-copy small{color:#688096;font-size:12px;line-height:1.55}.rinchan-event-participation .rinchan-button{min-height:40px;padding:0 15px;font-size:13px;white-space:nowrap}.rinchan-event-participation.is-participated{border-color:#c8e9da;background:#f4fcf7}.rinchan-event-participation.is-participated .rinchan-button{color:#25845f!important;border-color:#cce9dc;background:#eef9f3;opacity:1}.rinchan-event-participation-result{grid-column:1/-1;min-height:0;font-size:12px;font-weight:800}.rinchan-event-participation-result.is-success{color:#218259}.rinchan-event-participation-result.is-error{color:#b04d57}
@media(max-width:520px){.rinchan-event-participation{grid-template-columns:1fr;gap:9px;padding:13px}.rinchan-event-participation .rinchan-button{width:100%}}


/* v1.9.9 - forest progress spacing + four-stat balance */
.rinchan-forest-growth-stats{margin-bottom:22px;}
.rinchan-forest-progress{margin-top:0;}
@media(max-width:600px){
  .rinchan-forest-growth-stats{gap:10px;margin-bottom:20px;}
  .rinchan-forest-growth-stats .rinchan-stat{padding:15px 10px;}
  .rinchan-forest-growth-stats .rinchan-stat strong{font-size:21px;}
  .rinchan-forest-progress{height:14px;}
}

/* v1.9.9 - department tree growth engine */
.rinchan-department-tree-card{
  position:relative;
  overflow:hidden;
  padding:18px;
  background:linear-gradient(180deg,#fff 0%,#fbfffd 100%);
}
.rinchan-department-tree-top{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:16px;
  align-items:center;
}
.rinchan-department-tree-copy{min-width:0;}
.rinchan-department-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.rinchan-department-title-row h3{margin:0;font-size:18px;}
.rinchan-tree-stage-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 9px;
  border-radius:999px;
  background:#edf8f3;
  color:#258a67;
  font-size:11px;
  font-weight:900;
}
.rinchan-tree-stage-name{display:block;margin-top:3px;color:#278e68;font-size:13px;}
.rinchan-department-metrics{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.rinchan-department-metrics span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 8px;
  border:1px solid #e1ebef;
  border-radius:999px;
  background:#fff;
  color:#49667f;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.rinchan-dept-stage-progress{
  width:100%;
  height:8px;
  margin-top:14px;
  overflow:hidden;
  border-radius:999px;
  background:#e9f0ee;
}
.rinchan-dept-stage-progress span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#75d26a,#37bea0);
}
.rinchan-dept-next{margin:6px 0 0;color:#74879a;font-size:11px;font-weight:700;}
.rinchan-department-tree-card .member-list{margin-top:14px;padding-top:14px;border-top:1px solid #e8eef1;}

.rinchan-dept-tree{
  position:relative;
  width:92px;
  height:92px;
  margin:auto;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(180deg,#eefaff 0%,#f4fbf4 67%,#e7f4df 68%,#e7f4df 100%);
}
.dept-tree-ground{position:absolute;left:15px;right:15px;bottom:12px;height:7px;border-radius:50%;background:#cfe5c3;}
.dept-tree-trunk{position:absolute;left:50%;bottom:17px;width:9px;height:34px;margin-left:-4.5px;border-radius:7px;background:#9f7048;transform-origin:bottom;}
.dept-tree-crown{position:absolute;border-radius:50%;background:#62c879;box-shadow:inset 0 -5px 0 rgba(43,143,84,.08);}
.crown-a{width:42px;height:42px;left:24px;top:19px;}
.crown-b{width:34px;height:34px;left:11px;top:31px;}
.crown-c{width:35px;height:35px;right:10px;top:31px;}
.dept-tree-sprout{position:absolute;bottom:29px;width:18px;height:10px;border-radius:100% 0 100% 0;background:#48bb73;}
.leaf-a{left:38px;transform:rotate(24deg);}
.leaf-b{right:37px;transform:scaleX(-1) rotate(24deg);}
.dept-tree-bloom,.dept-tree-fruit{position:absolute;z-index:4;border-radius:50%;}
.dept-tree-bloom{width:8px;height:8px;background:#f4a7bd;box-shadow:0 0 0 2px rgba(255,255,255,.55);}
.bloom-a{left:28px;top:29px}.bloom-b{left:50px;top:22px}.bloom-c{right:21px;top:40px}
.dept-tree-fruit{width:7px;height:7px;background:#f4b64f;}
.fruit-a{left:38px;top:45px}.fruit-b{right:30px;top:35px}

.rinchan-dept-tree.stage-1 .dept-tree-trunk{height:18px;width:5px;margin-left:-2.5px;}
.rinchan-dept-tree.stage-1 .dept-tree-crown,
.rinchan-dept-tree.stage-1 .dept-tree-bloom,
.rinchan-dept-tree.stage-1 .dept-tree-fruit{display:none;}
.rinchan-dept-tree.stage-1 .dept-tree-sprout{bottom:33px;width:17px;height:10px;}

.rinchan-dept-tree.stage-2 .dept-tree-trunk{height:30px;width:7px;margin-left:-3.5px;}
.rinchan-dept-tree.stage-2 .dept-tree-crown{transform:scale(.55);transform-origin:50% 80%;}
.rinchan-dept-tree.stage-2 .dept-tree-bloom,
.rinchan-dept-tree.stage-2 .dept-tree-fruit{display:none;}
.rinchan-dept-tree.stage-2 .dept-tree-sprout{display:none;}

.rinchan-dept-tree.stage-3 .dept-tree-crown{transform:scale(.76);transform-origin:50% 80%;}
.rinchan-dept-tree.stage-3 .dept-tree-bloom,
.rinchan-dept-tree.stage-3 .dept-tree-fruit,
.rinchan-dept-tree.stage-3 .dept-tree-sprout{display:none;}

.rinchan-dept-tree.stage-4 .dept-tree-crown{transform:scale(.92);transform-origin:50% 80%;}
.rinchan-dept-tree.stage-4 .dept-tree-bloom,
.rinchan-dept-tree.stage-4 .dept-tree-fruit,
.rinchan-dept-tree.stage-4 .dept-tree-sprout{display:none;}

.rinchan-dept-tree.stage-5 .dept-tree-crown{background:linear-gradient(145deg,#62cb78,#48b96e);}
.rinchan-dept-tree.stage-5 .dept-tree-sprout{display:none;}

@media(max-width:600px){
  .rinchan-department-tree-card{padding:15px;}
  .rinchan-department-tree-top{grid-template-columns:76px minmax(0,1fr);gap:12px;}
  .rinchan-dept-tree{width:76px;height:76px;border-radius:20px;transform:scale(.96);}
  .rinchan-department-title-row{align-items:flex-start;}
  .rinchan-department-title-row h3{font-size:16px;}
  .rinchan-tree-stage-badge{min-height:23px;padding:0 7px;font-size:10px;}
  .rinchan-department-metrics{gap:5px;margin-top:7px;}
  .rinchan-department-metrics span{min-height:23px;padding:0 7px;font-size:10px;}
  .rinchan-dept-stage-progress{margin-top:11px;}
  .rinchan-department-tree-card .member-list{margin-top:11px;padding-top:11px;}
}


/* v1.9.10 - simplify home actions and make the forest letter the secondary forest entry */
.rinchan-home-actions.is-single{grid-template-columns:1fr;gap:0;margin-bottom:var(--rc-home-gap);}
.rinchan-home-actions.is-single .rinchan-home-action{min-height:56px;border-radius:20px;padding:10px 18px;}
.rinchan-home-actions.is-single .rinchan-home-action strong{font-size:16px;letter-spacing:0;}
.rinchan-home-actions.is-single .rinchan-home-action small{display:block;margin-top:2px;color:rgba(255,255,255,.86);font-size:11px;font-weight:700;}
.rinchan-home-actions.is-single .mobile-break{display:none!important;}

.rinchan-home-forest-letter{
  display:grid;grid-template-columns:46px minmax(0,1fr) 28px;gap:12px;align-items:center;
  margin:0 0 var(--rc-home-gap);padding:16px 18px;border:1px solid rgba(34,102,132,.09);border-radius:24px;
  background:linear-gradient(145deg,#fff 0%,#f7fcf9 100%);box-shadow:var(--rc-shadow);text-decoration:none;color:var(--rc-navy);
}
.rinchan-home-letter-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eef9f3;font-size:25px;}
.rinchan-home-letter-copy{display:grid;gap:2px;min-width:0;}
.rinchan-home-letter-copy small{color:#2d9c70;font-size:12px;font-weight:900;letter-spacing:.04em;}
.rinchan-home-letter-copy strong{font-size:18px;line-height:1.3;}
.rinchan-home-letter-copy span{margin-top:2px;color:var(--rc-muted);font-size:12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rinchan-home-letter-arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f1f8f4;color:#2b936c;font-size:22px;line-height:1;}
.rinchan-home-forest-letter:active{transform:scale(.995);}

/* quiet challenge heading: no competing blue pill */
.rinchan-challenge-card{padding-top:19px;}
.challenge-ribbon{margin:0 0 12px;padding:0;background:transparent;box-shadow:none;color:var(--rc-navy);font-size:15px;}
.challenge-ribbon span:first-child{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef8f4;color:#2a9a6f;}
.challenge-decor{top:20px;right:20px;opacity:.72;}

/* replace blob-like department tree with a crisp SVG tree */
.rinchan-dept-tree{display:grid;place-items:center;background:transparent;overflow:visible;border-radius:0;}
.rinchan-dept-tree-svg{display:block;width:100%;height:100%;filter:drop-shadow(0 6px 10px rgba(47,117,83,.06));}
.rinchan-dept-tree .dept-tree-ground,.rinchan-dept-tree .dept-tree-trunk,.rinchan-dept-tree .dept-tree-sprout,.rinchan-dept-tree .dept-tree-crown,.rinchan-dept-tree .dept-tree-bloom,.rinchan-dept-tree .dept-tree-fruit{display:none!important;}

@media(max-width:600px){
  .rinchan-home-actions.is-single .rinchan-home-action{min-height:54px;padding:9px 15px;grid-template-columns:25px minmax(0,1fr) 10px;}
  .rinchan-home-actions.is-single .rinchan-home-action strong{font-size:15px;}
  .rinchan-home-actions.is-single .rinchan-home-action small{font-size:10.5px;}
  .rinchan-home-forest-letter{grid-template-columns:42px minmax(0,1fr) 26px;padding:14px 15px;border-radius:22px;}
  .rinchan-home-letter-icon{width:42px;height:42px;font-size:22px;}
  .rinchan-home-letter-copy strong{font-size:16px;}
  .rinchan-home-letter-copy span{font-size:11px;}
  .challenge-ribbon{font-size:14px;}
}

/* v1.9.11 - unify CTA buttons as pill shapes and optically center labels */
.rinchan-button,
button.rinchan-button,
a.rinchan-button,
.rinchan-home-action,
.rinchan-home-actions.is-single .rinchan-home-action,
.rinchan-logout-button {
  border-radius:999px!important;
}

.rinchan-button,
button.rinchan-button,
a.rinchan-button,
.rinchan-logout-button {
  text-align:center;
  justify-content:center;
}

.rinchan-home-action,
.rinchan-home-actions.is-single .rinchan-home-action {
  grid-template-columns:30px minmax(0,1fr) 30px!important;
  gap:8px!important;
  text-align:center;
}
.rinchan-home-action > span:nth-child(2) {
  display:grid;
  justify-items:center;
  min-width:0;
  text-align:center;
}
.rinchan-home-action strong,
.rinchan-home-action small {
  width:100%;
  text-align:center;
}
.rinchan-home-action .action-art,
.rinchan-home-action .action-arrow {
  justify-self:center;
}

@media(max-width:600px){
  .rinchan-home-actions.is-single .rinchan-home-action {
    grid-template-columns:26px minmax(0,1fr) 26px!important;
    gap:6px!important;
  }
}

/* v1.9.12: direct home CTA to the step-entry form */
#rinchan-step-entry{scroll-margin-top:110px;}
@media(max-width:700px){#rinchan-step-entry{scroll-margin-top:94px;}}

/* v1.9.14 - personal achievements add gentle fruit and sparkle to the shared forest */
.rinchan-achievement-grove{
  position:absolute;
  right:5%;
  bottom:52px;
  z-index:3;
  width:106px;
  height:94px;
  pointer-events:none;
  opacity:.96;
}
.rinchan-achievement-branch{
  position:absolute;
  left:19px;
  bottom:11px;
  width:76px;
  height:5px;
  border-radius:999px;
  background:#7a9f70;
  transform:rotate(-24deg);
  transform-origin:left center;
  box-shadow:0 2px 4px rgba(64,96,69,.10);
}
.rinchan-achievement-branch:before,
.rinchan-achievement-branch:after{
  content:"";
  position:absolute;
  width:35px;
  height:4px;
  border-radius:999px;
  background:#7a9f70;
  transform-origin:left center;
}
.rinchan-achievement-branch:before{left:26px;top:-1px;transform:rotate(-42deg)}
.rinchan-achievement-branch:after{left:42px;top:2px;transform:rotate(34deg)}
.rinchan-achievement-leaf{
  position:absolute;
  width:24px;
  height:13px;
  border-radius:100% 0 100% 0;
  background:linear-gradient(145deg,#72c884,#4eb477);
  box-shadow:0 2px 5px rgba(64,117,82,.08);
}
.rinchan-achievement-leaf.leaf-a{left:38px;bottom:48px;transform:rotate(-16deg)}
.rinchan-achievement-leaf.leaf-b{left:61px;bottom:32px;transform:scaleX(-1) rotate(-12deg)}
.rinchan-achievement-leaf.leaf-c{left:23px;bottom:28px;transform:rotate(18deg)}
.rinchan-achievement-fruit{
  position:absolute;
  width:13px;
  height:15px;
  border-radius:48% 48% 58% 58%;
  background:linear-gradient(155deg,#ffc964,#efa84b);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.35),0 2px 5px rgba(117,85,41,.14);
}
.rinchan-achievement-fruit:before{content:"";position:absolute;left:6px;top:-5px;width:2px;height:6px;border-radius:999px;background:#6c9b69}
.rinchan-achievement-fruit.fruit-1{left:53px;bottom:49px}
.rinchan-achievement-fruit.fruit-2{left:74px;bottom:31px;transform:scale(.9)}
.rinchan-achievement-fruit.fruit-3{left:31px;bottom:25px;transform:scale(.82)}
.rinchan-achievement-fruit.fruit-4{left:65px;bottom:57px;transform:scale(.76)}
.rinchan-achievement-fruit.fruit-5{left:44px;bottom:14px;transform:scale(.72)}
.rinchan-achievement-sparkle{
  position:absolute;
  width:8px;
  height:8px;
  background:#ffe484;
  clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);
  filter:drop-shadow(0 0 4px rgba(244,196,70,.42));
  animation:rinchanAchievementTwinkle 2.6s ease-in-out infinite alternate;
}
.rinchan-achievement-sparkle.sparkle-1{right:7px;top:8px}
.rinchan-achievement-sparkle.sparkle-2{left:8px;top:19px;animation-delay:-.8s}
.rinchan-achievement-sparkle.sparkle-3{right:26px;top:28px;animation-delay:-1.5s}
.rinchan-achievement-summary{grid-column:1 / -1;background:linear-gradient(135deg,#fffaf0,#f7fbf7)!important}
.rinchan-achievement-summary strong{display:flex;align-items:center;gap:6px}
.rinchan-achievement-summary strong:before{content:"";display:inline-block;width:13px;height:13px;border-radius:48% 48% 58% 58%;background:linear-gradient(155deg,#ffc964,#efa84b);box-shadow:inset 0 2px 0 rgba(255,255,255,.35)}
@keyframes rinchanAchievementTwinkle{from{opacity:.42;transform:scale(.78) rotate(0deg)}to{opacity:1;transform:scale(1.12) rotate(18deg)}}
@media(max-width:430px){
  .rinchan-achievement-grove{right:2%;bottom:47px;width:88px;height:78px;transform:scale(.86);transform-origin:right bottom}
}
@media(prefers-reduced-motion:reduce){.rinchan-achievement-sparkle{animation:none!important}}

/* v1.9.14 - personal tree growth in passport */
.rinchan-personal-tree-card{overflow:hidden;background:linear-gradient(145deg,#fff 0%,#fbfffd 58%,#f3fbf7 100%)}
.rinchan-tree-stage-pill{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border-radius:999px;background:#edf9f2;color:#23865d;font-size:12px;font-weight:900;white-space:nowrap}
.rinchan-personal-tree-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center;margin-top:12px}
.rinchan-personal-tree-visual{display:grid;place-items:center}
.rinchan-personal-tree-visual .rinchan-dept-tree{width:138px;max-width:100%}
.rinchan-personal-tree-visual .rinchan-dept-tree-svg{display:block;width:100%;height:auto}
.rinchan-personal-tree-copy>.muted{margin:0 0 12px;line-height:1.65}
.rinchan-personal-tree-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rinchan-personal-tree-stats span{display:block;min-width:0;padding:10px 11px;border:1px solid rgba(34,102,132,.08);border-radius:15px;background:rgba(255,255,255,.88)}
.rinchan-personal-tree-stats small,.rinchan-personal-tree-stats strong{display:block}
.rinchan-personal-tree-stats small{margin-bottom:3px;color:var(--rc-muted);font-size:11px;font-weight:800}
.rinchan-personal-tree-stats strong{color:var(--rc-navy);font-size:14px;line-height:1.25;white-space:nowrap}
.rinchan-personal-tree-progress{margin-top:18px}
.rinchan-personal-tree-progress .challenge-progress{margin:0 0 8px}
.rinchan-personal-tree-progress>small{display:block;color:var(--rc-muted);font-size:12px;font-weight:700;text-align:right}
@media(max-width:520px){
  .rinchan-personal-tree-layout{grid-template-columns:108px minmax(0,1fr);gap:13px}
  .rinchan-personal-tree-visual .rinchan-dept-tree{width:104px}
  .rinchan-personal-tree-copy>.muted{font-size:12.5px;line-height:1.55}
  .rinchan-personal-tree-stats{gap:6px}
  .rinchan-personal-tree-stats span{padding:8px 9px;border-radius:13px}
  .rinchan-personal-tree-stats small{font-size:10px}
  .rinchan-personal-tree-stats strong{font-size:12.5px}
}

/* v1.9.16 passport growth history */
.rinchan-growth-history-card{overflow:hidden;}
.rinchan-growth-history-intro{margin:4px 0 18px;}
.rinchan-growth-timeline{position:relative;display:grid;gap:0;margin-top:6px;}
.rinchan-growth-timeline:before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:linear-gradient(180deg,#d9eee7,#dce9f4);}
.rinchan-growth-event{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;padding:9px 0 15px;}
.rinchan-growth-event:last-child{padding-bottom:4px;}
.rinchan-growth-event-icon{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border:4px solid #fff;border-radius:50%;background:#eef8f4;color:#279d70;box-shadow:0 5px 14px rgba(35,92,126,.08);}
.rinchan-growth-event-icon svg{width:21px!important;height:21px!important;max-width:21px!important;}
.rinchan-growth-event.is-steps .rinchan-growth-event-icon{background:#edf8fd;color:#2698c8;}
.rinchan-growth-event.is-thanks .rinchan-growth-event-icon{background:#fff1f5;color:#d66a8c;}
.rinchan-growth-event.is-challenge .rinchan-growth-event-icon{background:#fff7e8;color:#d99a29;}
.rinchan-growth-event.is-event .rinchan-growth-event-icon,.rinchan-growth-event.is-badge .rinchan-growth-event-icon{background:#f3f0ff;color:#7766cc;}
.rinchan-growth-event-body{min-width:0;padding:3px 0 0;}
.rinchan-growth-event-body strong{display:block;color:var(--rc-navy);font-size:15px;line-height:1.45;}
.rinchan-growth-event-body p{margin:3px 0 4px;color:#526b82;font-size:13px;line-height:1.55;overflow-wrap:anywhere;}
.rinchan-growth-event-body time{display:block;color:#8a9aaa;font-size:11px;font-weight:700;}
@media(max-width:430px){
  .rinchan-growth-history-intro{margin-bottom:14px;font-size:13px;line-height:1.65;}
  .rinchan-growth-timeline:before{left:18px;}
  .rinchan-growth-event{grid-template-columns:38px minmax(0,1fr);gap:11px;padding:7px 0 13px;}
  .rinchan-growth-event-icon{width:38px;height:38px;border-width:3px;}
  .rinchan-growth-event-icon svg{width:18px!important;height:18px!important;max-width:18px!important;}
  .rinchan-growth-event-body strong{font-size:14px;}
  .rinchan-growth-event-body p{font-size:12px;}
}

/* v1.9.16 - compact "today's growth" home summary */
.rinchan-today-growth{
  margin:0 0 var(--rc-home-gap);
  padding:18px 20px 16px;
  border:1px solid rgba(34,102,132,.09);
  border-radius:26px;
  background:linear-gradient(145deg,#ffffff 0%,#f7fdf9 100%);
  box-shadow:var(--rc-shadow);
}
.rinchan-today-growth-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px;}
.rinchan-today-growth-head .eyebrow{margin-bottom:3px;}
.rinchan-today-growth-head h2{margin:0;color:var(--rc-navy);font-size:18px;line-height:1.35;}
.rinchan-today-growth-leaf{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:#edf9f2;font-size:20px;}
.rinchan-today-growth-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.rinchan-today-growth-stat{min-width:0;padding:11px 8px;border:1px solid rgba(38,94,120,.08);border-radius:16px;background:rgba(255,255,255,.86);text-align:center;}
.rinchan-today-growth-stat>span{display:block;min-height:28px;color:var(--rc-muted);font-size:10.5px;font-weight:800;line-height:1.3;}
.rinchan-today-growth-stat strong{display:block;margin-top:4px;color:var(--rc-navy);font-size:18px;line-height:1.1;white-space:nowrap;}
.rinchan-today-growth-stat strong small{margin-left:2px;color:#4f7189;font-size:10px;font-weight:800;}
.rinchan-today-growth-message{margin:12px 0 0;padding-top:11px;border-top:1px solid rgba(38,94,120,.08);color:#42647d;font-size:12px;font-weight:750;line-height:1.55;text-align:center;}
@media(max-width:600px){
  .rinchan-today-growth{padding:16px 14px 14px;border-radius:23px;}
  .rinchan-today-growth-head h2{font-size:16px;}
  .rinchan-today-growth-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .rinchan-today-growth-stat{padding:10px 7px;border-radius:14px;}
  .rinchan-today-growth-stat>span{min-height:0;font-size:10.5px;}
  .rinchan-today-growth-stat strong{font-size:17px;}
}


/* v1.9.17 - one-time growth celebration cards */
.rinchan-achievement-stack{position:fixed;z-index:160;top:max(16px,env(safe-area-inset-top));left:50%;display:grid;gap:9px;width:min(calc(100vw - 28px),430px);transform:translateX(-50%);pointer-events:none}
.rinchan-achievement-card{display:grid;grid-template-columns:44px minmax(0,1fr) 28px;gap:11px;align-items:center;padding:13px 12px;border:1px solid rgba(57,151,111,.18);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 16px 40px rgba(27,77,105,.18);opacity:0;transform:translateY(-12px) scale(.985);transition:opacity .24s ease,transform .24s ease;pointer-events:auto;backdrop-filter:blur(14px)}
.rinchan-achievement-card.is-visible{opacity:1;transform:translateY(0) scale(1)}
.rinchan-achievement-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#edf9f2,#eef8ff);font-size:23px}
.rinchan-achievement-card strong{display:block;color:var(--rc-navy);font-size:14px;line-height:1.35}
.rinchan-achievement-card p{margin:3px 0 0;color:#587187;font-size:12px;font-weight:700;line-height:1.45}
.rinchan-achievement-close{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#f1f6f8;color:#718697;font-size:17px;line-height:1;cursor:pointer}
@media(max-width:430px){.rinchan-achievement-stack{top:max(10px,env(safe-area-inset-top));width:calc(100vw - 20px)}.rinchan-achievement-card{grid-template-columns:40px minmax(0,1fr) 26px;gap:9px;padding:11px 10px;border-radius:19px}.rinchan-achievement-icon{width:40px;height:40px;font-size:21px}.rinchan-achievement-card strong{font-size:13px}.rinchan-achievement-card p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.rinchan-achievement-card{transition:none}}


/* v1.9.20 operations messages */
.rinchan-ops-card{margin:0 0 14px;padding:18px 20px;border:1px solid rgba(49,145,121,.15);border-radius:24px;background:linear-gradient(135deg,#f8fffb,#f4fbff);box-shadow:0 10px 24px rgba(35,92,126,.07)}
.rinchan-ops-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.rinchan-ops-card-head>div{display:flex;align-items:center;gap:10px}.rinchan-ops-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e7f7f0;color:#24956e}.rinchan-ops-icon svg{width:20px!important;height:20px!important}.rinchan-ops-card h2{margin:0;font-size:18px}.rinchan-ops-card p{margin:7px 0 0;color:#45627c;line-height:1.7}.rinchan-ops-card time{color:var(--rc-muted);font-size:11px;font-weight:700}.rinchan-ops-link{display:inline-flex;align-items:center;gap:5px;margin-top:12px;color:#1a8467;font-size:13px;font-weight:850;text-decoration:none}
.rinchan-broadcast-list{display:grid;gap:12px;margin-top:16px}.rinchan-broadcast-item{padding:18px;border:1px solid var(--rc-line);border-radius:18px;background:#fbfffd}.rinchan-broadcast-item.is-unread{border-color:#bfe7d7;background:linear-gradient(135deg,#f6fffa,#f7fcff)}.rinchan-broadcast-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.rinchan-broadcast-meta time{font-size:12px;color:var(--rc-muted)}.rinchan-broadcast-target{display:inline-flex;padding:4px 8px;border-radius:999px;background:#ecf8f3;color:#248866;font-size:11px;font-weight:800}.rinchan-broadcast-read-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 10px;border:1px solid #83bca9;border-radius:999px;background:#fff;color:#237c61;font:inherit;font-size:12px;font-weight:800}.rinchan-broadcast-read-toggle.is-read{border-color:#dce5ea;color:#8090a0;background:#f7f9fa}
@media(max-width:430px){.rinchan-ops-card{padding:16px}.rinchan-broadcast-item{padding:15px}.rinchan-broadcast-meta{align-items:flex-start;flex-wrap:wrap}}


/* v1.9.21 H reward exchange */
.rinchan-reward-list.is-exchange-list{gap:10px}
.rinchan-reward-row.is-exchange{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 15px;border-radius:18px;background:#fbfefd}
.rinchan-reward-copy{min-width:0}.rinchan-reward-copy strong,.rinchan-reward-copy small{display:block}.rinchan-reward-copy small{margin-top:4px;color:var(--rc-muted);font-size:12px;line-height:1.5}
.rinchan-reward-action{display:flex;align-items:center;gap:9px}.rinchan-reward-action form{margin:0}.rinchan-reward-cost{font-weight:900;color:#178b62;white-space:nowrap}
.rinchan-reward-button{min-height:38px;padding:0 15px;font-size:13px;white-space:nowrap}.rinchan-reward-button:disabled{background:#e9eff1!important;color:#8b9aa5!important;box-shadow:none;cursor:not-allowed}
.rinchan-redemption-list{display:grid;gap:8px;margin:8px 0 18px}.rinchan-redemption-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid #e5ece9;border-radius:15px;background:#fbfdfc}.rinchan-redemption-row strong,.rinchan-redemption-row small{display:block}.rinchan-redemption-row small{margin-top:3px;color:var(--rc-muted);font-size:11px}.rinchan-redemption-status{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#eef7ff;color:#3475a8;font-size:11px;font-weight:900;white-space:nowrap}.rinchan-redemption-status.is-fulfilled{background:#edf9f2;color:#248058}.rinchan-redemption-status.is-cancelled{background:#f2f3f4;color:#75818a}
@media(max-width:520px){.rinchan-reward-row.is-exchange{grid-template-columns:1fr}.rinchan-reward-action{justify-content:space-between}.rinchan-reward-button{min-width:112px}.rinchan-redemption-row{align-items:flex-start;flex-direction:column}.rinchan-redemption-status{align-self:flex-start}}


/* v1.9.22 reward availability */
.rinchan-reward-conditions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rinchan-reward-conditions span{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border:1px solid rgba(38,86,119,.12);border-radius:999px;background:#f4f9fb;color:#526f86;font-size:11px;font-weight:800;line-height:1.2}
.rinchan-reward-note{display:block!important;margin-top:7px;color:#a26645!important;font-weight:800}
.rinchan-reward-row.is-unavailable{background:#fbfcfc;opacity:.9}
.rinchan-reward-row.is-unavailable .rinchan-reward-button{background:#e8eef1!important;color:#7c8b96!important;box-shadow:none!important}


/* v1.9.24 reward ready notifications */
.rinchan-reward-ready-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 16px;border:1px solid rgba(61,175,126,.18);border-radius:22px;background:linear-gradient(135deg,#f7fffb,#f3fbff);box-shadow:0 8px 24px rgba(35,92,126,.07)}
.rinchan-reward-ready-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#eaf8ef;font-size:22px}.rinchan-reward-ready-copy{min-width:0}.rinchan-reward-ready-copy small,.rinchan-reward-ready-copy strong{display:block}.rinchan-reward-ready-copy small{color:#278c67;font-weight:850;margin-bottom:3px}.rinchan-reward-ready-copy strong{color:var(--rc-navy);font-size:15px}.rinchan-reward-ready-link{font-weight:900;color:#238866;text-decoration:none;white-space:nowrap}
.rinchan-ready-list{display:grid;gap:10px;margin-top:16px}.rinchan-ready-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 15px;border:1px solid var(--rc-line);border-radius:18px;background:#fbfefd}.rinchan-ready-item.is-unread{border-color:rgba(71,182,133,.3);background:#f5fdf9}.rinchan-ready-item strong,.rinchan-ready-item small{display:block}.rinchan-ready-item small{margin-top:4px;color:var(--rc-muted)}.rinchan-ready-read{min-height:34px;padding:0 13px;border:1px solid rgba(36,126,95,.24);border-radius:999px;background:#fff;color:#247d61;font-weight:850}.rinchan-ready-read.is-read{color:#7d8d96;border-color:#dce5e9;background:#f5f7f8}
.rinchan-redemption-status.is-ready{color:#16865f;background:#eaf8f0;border-color:#cfeadb}
@media(max-width:520px){.rinchan-reward-ready-card{grid-template-columns:40px minmax(0,1fr)}.rinchan-reward-ready-link{grid-column:2}.rinchan-ready-item{grid-template-columns:1fr}.rinchan-ready-read{justify-self:start}}


/* v1.9.24 scheduled / important operations messages */
.rinchan-important-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;padding:3px 8px;border-radius:999px;background:#fff0ee;color:#c04d43;font-size:11px;font-weight:900;vertical-align:middle}
.rinchan-ops-card.is-important{border-color:#f1c9c4;background:linear-gradient(135deg,#fffaf8,#f8fffc);box-shadow:0 12px 30px rgba(156,75,65,.08)}
.rinchan-broadcast-item.is-important{border-color:#f0c8c1;background:linear-gradient(135deg,#fffaf8,#fbfffd)}
.rinchan-broadcast-item.is-important.is-unread{box-shadow:inset 4px 0 0 #e77969}
.rinchan-broadcast-period{display:block;margin-top:10px;color:var(--rc-muted);font-size:11px;font-weight:700}
@media(max-width:430px){.rinchan-important-badge{margin-left:5px}.rinchan-broadcast-meta .rinchan-important-badge{order:2}.rinchan-broadcast-meta time{order:3}.rinchan-broadcast-meta .rinchan-broadcast-read-toggle{order:4}}


/* v1.9.25 - gentle inactivity reminder */
.rinchan-gentle-reminder{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;margin:0 0 var(--rc-home-gap);padding:13px 14px;border:1px solid rgba(59,142,114,.13);border-radius:22px;background:linear-gradient(135deg,#fbfffd,#f5fbff);box-shadow:0 8px 20px rgba(35,92,126,.055)}
.rinchan-gentle-reminder-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eaf8f1;color:#24956e}.rinchan-gentle-reminder-icon svg{width:22px!important;height:22px!important;max-width:22px!important}.rinchan-gentle-reminder-copy{min-width:0}.rinchan-gentle-reminder-copy small{display:block;margin-bottom:3px;color:#4c927a;font-size:10.5px;font-weight:850}.rinchan-gentle-reminder-copy strong{display:block;color:#34556e;font-size:12.5px;line-height:1.55}.rinchan-gentle-reminder-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border:1px solid #8acbb5;border-radius:999px;background:#fff;color:#238565;font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}
@media(max-width:430px){.rinchan-gentle-reminder{grid-template-columns:36px minmax(0,1fr);gap:9px;padding:11px 12px;border-radius:19px}.rinchan-gentle-reminder-icon{width:36px;height:36px}.rinchan-gentle-reminder-icon svg{width:19px!important;height:19px!important;max-width:19px!important}.rinchan-gentle-reminder-copy strong{font-size:11.5px}.rinchan-gentle-reminder-link{grid-column:2;justify-self:start;min-height:32px;padding:0 12px;font-size:11px}}

/* v1.9.26: personal weekly review */
.rinchan-weekly-review-card{background:linear-gradient(150deg,#ffffff 0%,#f8fcff 52%,#f5fbf7 100%);}
.rinchan-weekly-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;}
.rinchan-weekly-review-stat{min-width:0;padding:15px 14px;border:1px solid rgba(34,102,132,.10);border-radius:18px;background:rgba(255,255,255,.88);}
.rinchan-weekly-review-stat small,.rinchan-weekly-review-stat span{display:block;color:var(--rc-muted);font-size:11.5px;font-weight:750;line-height:1.45;}
.rinchan-weekly-review-stat strong{display:block;margin:5px 0 3px;color:var(--rc-navy);font-size:20px;line-height:1.2;}
.rinchan-weekly-review-stat strong.is-up{color:#21916b;}
.rinchan-weekly-review-stat strong.is-down{color:#667b90;}
.rinchan-weekly-review-progress{height:9px;margin:16px 2px 0;overflow:hidden;border-radius:999px;background:#e8f0f1;}
.rinchan-weekly-review-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#63cc75,#2ab4ca);}
.rinchan-weekly-review-message{margin:12px 2px 0;color:#48677f;font-size:13px;font-weight:750;line-height:1.65;}
@media(max-width:390px){.rinchan-weekly-review-grid{gap:8px}.rinchan-weekly-review-stat{padding:13px 11px}.rinchan-weekly-review-stat strong{font-size:18px}}

/* v1.9.27: personal goals */
.rinchan-my-goals-card{background:linear-gradient(145deg,#ffffff 0%,#fbfffd 58%,#f3fbf7 100%)}
.rinchan-my-goals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 12px}
.rinchan-my-goal-stat{padding:16px;border:1px solid rgba(39,120,96,.12);border-radius:20px;background:#fff;box-shadow:0 6px 18px rgba(35,92,126,.045)}
.rinchan-my-goal-stat small{display:block;margin-bottom:6px;color:var(--rc-muted);font-weight:800}
.rinchan-my-goal-stat strong{display:block;color:var(--rc-navy);font-size:23px;line-height:1.15}
.rinchan-my-goal-stat strong span{margin-left:3px;font-size:12px;color:var(--rc-muted)}
.rinchan-my-goal-note{display:grid;gap:4px;margin-top:9px;padding:12px 14px;border-radius:16px;background:#f5f9fc}
.rinchan-my-goal-note.is-declaration{background:#f3faf6}
.rinchan-my-goal-note small{color:var(--rc-muted);font-size:11px;font-weight:800}
.rinchan-my-goal-note strong{color:#294e68;font-size:14px;line-height:1.55}
.rinchan-my-goal-reward-note{margin:12px 0 0;padding:10px 12px;border-radius:14px;background:#fff8e8;color:#7a6425;font-size:12px;line-height:1.65}
.rinchan-my-goals-card .rinchan-inline-link{margin-top:14px}
#rinchan-profile-settings{scroll-margin-top:110px}
@media(max-width:430px){
  .rinchan-my-goals-grid{gap:8px}
  .rinchan-my-goal-stat{padding:13px 12px;border-radius:17px}
  .rinchan-my-goal-stat strong{font-size:20px}
}


/* v1.9.28: personal goal progress */
.rinchan-week-goal-status{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:999px;background:#f4f8fb;color:#45647c;font-size:13px;line-height:1.3}
.rinchan-week-goal-status>span{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#fff;color:#2aa86f;font-weight:900}
.rinchan-week-goal-status strong{font-weight:850}
.rinchan-week-goal-status.is-achieved{background:#edf9f1;color:#23754f}
.rinchan-week-goal-status.is-achieved>span{background:#dff4e7;color:#238557}
.rinchan-challenge-card.is-achieved .challenge-progress span{background:linear-gradient(90deg,#61cc70,#43c78f)}
@media(max-width:430px){.rinchan-week-goal-status{margin-top:10px;padding:9px 11px;font-size:12px}.rinchan-week-goal-status>span{width:20px;height:20px}}


/* v1.9.29 - monthly walking calendar */
.rinchan-walk-calendar-card{background:linear-gradient(150deg,#fff 0%,#f9fdfb 58%,#f4faf7 100%)}
.rinchan-walk-calendar-intro{margin:8px 0 15px;font-size:13px;line-height:1.65}
.rinchan-walk-calendar-weekdays,.rinchan-walk-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.rinchan-walk-calendar-weekdays{margin-bottom:6px;color:#7a8ea0;font-size:10.5px;font-weight:850;text-align:center}
.rinchan-walk-calendar-weekdays span:first-child{color:#6fa48c}
.rinchan-walk-day{position:relative;display:grid;place-items:center;align-content:center;gap:3px;aspect-ratio:1/1;min-width:0;border:1px solid rgba(34,102,132,.08);border-radius:13px;background:rgba(255,255,255,.88)}
.rinchan-walk-day small{position:absolute;left:6px;top:4px;color:#72869a;font-size:9.5px;font-weight:800;line-height:1}
.rinchan-walk-day.is-today{border-color:#79c9ad;box-shadow:0 0 0 2px rgba(74,187,149,.10)}
.rinchan-walk-day.is-future{opacity:.42;background:#fbfcfd}
.rinchan-walk-day.is-blank{visibility:hidden}
.rinchan-calendar-leaf{display:block;width:17px;height:12px;margin-top:5px;border-radius:100% 0 100% 0;background:#b9dfc4;transform:rotate(-18deg);box-shadow:0 2px 5px rgba(47,127,89,.08)}
.rinchan-walk-day.leaf-2 .rinchan-calendar-leaf{width:20px;height:14px;background:#79c99a}
.rinchan-walk-day.leaf-3 .rinchan-calendar-leaf{width:22px;height:15px;background:linear-gradient(135deg,#4fbd7d,#2fae91);box-shadow:0 3px 7px rgba(39,143,103,.14)}
.rinchan-walk-calendar-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.rinchan-walk-calendar-summary span{display:block;min-width:0;padding:11px 8px;border:1px solid rgba(34,102,132,.08);border-radius:15px;background:rgba(255,255,255,.86);text-align:center}
.rinchan-walk-calendar-summary small,.rinchan-walk-calendar-summary strong{display:block}
.rinchan-walk-calendar-summary small{margin-bottom:4px;color:var(--rc-muted);font-size:10px;font-weight:800;line-height:1.35}
.rinchan-walk-calendar-summary strong{color:var(--rc-navy);font-size:14px;line-height:1.25;white-space:nowrap}
@media(max-width:390px){.rinchan-walk-calendar-weekdays,.rinchan-walk-calendar{gap:4px}.rinchan-walk-day{border-radius:11px}.rinchan-walk-day small{left:5px;top:4px;font-size:9px}.rinchan-calendar-leaf{width:14px;height:10px}.rinchan-walk-day.leaf-2 .rinchan-calendar-leaf{width:17px;height:12px}.rinchan-walk-day.leaf-3 .rinchan-calendar-leaf{width:19px;height:13px}.rinchan-walk-calendar-summary{gap:6px}.rinchan-walk-calendar-summary span{padding:9px 5px}.rinchan-walk-calendar-summary strong{font-size:12.5px}}


/* v1.9.31 - personal monthly review */
.rinchan-monthly-review-card{background:linear-gradient(150deg,#fff 0%,#f8fcff 50%,#f5fbf8 100%)}
.rinchan-monthly-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}
.rinchan-monthly-review-stat{min-width:0;padding:14px 12px;border:1px solid rgba(34,102,132,.08);border-radius:17px;background:rgba(255,255,255,.88)}
.rinchan-monthly-review-stat small,.rinchan-monthly-review-stat strong,.rinchan-monthly-review-stat span{display:block}
.rinchan-monthly-review-stat small{margin-bottom:5px;color:var(--rc-muted);font-size:11px;font-weight:850}
.rinchan-monthly-review-stat strong{color:var(--rc-navy);font-size:18px;line-height:1.25}
.rinchan-monthly-review-stat strong.is-up{color:#218b64}.rinchan-monthly-review-stat strong.is-down{color:#6e8294}
.rinchan-monthly-review-stat span{margin-top:4px;color:#72879a;font-size:10.5px;font-weight:750;line-height:1.4}
.rinchan-monthly-review-message{margin:12px 0 0;padding:11px 13px;border-radius:14px;background:#f4faf7;color:#365f58;font-size:12.5px;font-weight:800;line-height:1.6}
@media(max-width:390px){.rinchan-monthly-review-grid{gap:7px}.rinchan-monthly-review-stat{padding:12px 10px}.rinchan-monthly-review-stat strong{font-size:16px}}


/* v1.9.31 - personal monthly highlights */
.rinchan-monthly-highlights-card{background:linear-gradient(180deg,#fff 0%,#fbfffc 100%);}
.rinchan-monthly-highlights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;}
.rinchan-highlight-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;min-width:0;padding:14px;border:1px solid rgba(37,104,124,.10);border-radius:18px;background:#fbfdff;}
.rinchan-highlight-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#edf9f3;color:#299c6f;}
.rinchan-highlight-icon svg{width:20px!important;height:20px!important;max-width:20px!important;}
.rinchan-highlight-item div{min-width:0;}
.rinchan-highlight-item small,.rinchan-highlight-item strong,.rinchan-highlight-item div>span{display:block;}
.rinchan-highlight-item small{margin-bottom:3px;color:var(--rc-muted);font-size:11px;font-weight:800;}
.rinchan-highlight-item strong{color:var(--rc-navy);font-size:18px;line-height:1.25;}
.rinchan-highlight-item div>span{margin-top:3px;color:#62788d;font-size:11px;line-height:1.35;}
.rinchan-monthly-highlights-message{margin:12px 0 0;padding:11px 13px;border-radius:15px;background:#f1faf5;color:#356451;font-size:12px;font-weight:750;line-height:1.65;}
@media(max-width:430px){
  .rinchan-monthly-highlights-grid{gap:8px;}
  .rinchan-highlight-item{grid-template-columns:34px minmax(0,1fr);gap:8px;padding:11px 10px;border-radius:16px;}
  .rinchan-highlight-icon{width:34px;height:34px;}
  .rinchan-highlight-icon svg{width:18px!important;height:18px!important;max-width:18px!important;}
  .rinchan-highlight-item strong{font-size:16px;}
  .rinchan-highlight-item small,.rinchan-highlight-item div>span{font-size:10px;}
}


/* v1.9.32: gentle weekly note from Rinchan */
.rinchan-weekly-note{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  gap:11px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid rgba(37,142,111,.12);
  border-radius:20px;
  background:linear-gradient(135deg,#f7fcff 0%,#f4fbf7 100%);
}
.rinchan-weekly-note img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(31,82,103,.08));}
.rinchan-weekly-note small{display:block;margin-bottom:3px;color:#269866;font-size:11.5px;font-weight:900;letter-spacing:.03em;}
.rinchan-weekly-note p{margin:0;color:#365b73;font-size:13px;font-weight:750;line-height:1.65;}
.rinchan-weekly-note.is-celebrate{background:linear-gradient(135deg,#f4fff5,#f4fbff);border-color:rgba(92,191,104,.20);}
.rinchan-weekly-note.is-thanks{background:linear-gradient(135deg,#fff9fc,#f5fbff);border-color:rgba(226,130,164,.18);}
.rinchan-weekly-note.is-steady{background:linear-gradient(135deg,#f5fbff,#f5fcf8);}
@media(max-width:390px){.rinchan-weekly-note{grid-template-columns:42px minmax(0,1fr);gap:9px;padding:11px 12px}.rinchan-weekly-note img{width:42px;height:42px}.rinchan-weekly-note p{font-size:12.5px}}


/* v1.9.33 first-use onboarding */
.rinchan-onboarding{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:18px;transition:opacity .2s ease}.rinchan-onboarding.is-leaving{opacity:0;pointer-events:none}.rinchan-onboarding-backdrop{position:absolute;inset:0;background:rgba(8,35,61,.48);backdrop-filter:blur(8px)}.rinchan-onboarding-panel{position:relative;width:min(100%,390px);padding:22px;border:1px solid rgba(255,255,255,.7);border-radius:30px;background:linear-gradient(155deg,#fff,#f6fcfa);box-shadow:0 28px 80px rgba(11,53,98,.26)}.rinchan-onboarding-brand{display:flex;align-items:center;gap:10px;color:var(--rc-navy);font-weight:900}.rinchan-onboarding-brand img{width:44px;height:44px;object-fit:contain}.rinchan-onboarding-steps{min-height:265px}.rinchan-onboarding-step{display:none;padding:28px 2px 12px;text-align:center}.rinchan-onboarding-step.is-current{display:block;animation:rinchanGuideIn .25s ease}.rinchan-onboarding-emoji{display:grid;place-items:center;width:86px;height:86px;margin:0 auto 16px;border-radius:28px;background:linear-gradient(135deg,#edf9ff,#eefbef);font-size:42px}.rinchan-onboarding-step small{color:#4aa77b;font-weight:900}.rinchan-onboarding-step h2{margin:7px 0 10px;color:var(--rc-navy);font-size:24px}.rinchan-onboarding-step p{margin:0;color:#526b82;line-height:1.75}.rinchan-onboarding-dots{display:flex;justify-content:center;gap:7px;margin:4px 0 18px}.rinchan-onboarding-dots i{width:7px;height:7px;border-radius:999px;background:#d8e3e8;transition:.2s}.rinchan-onboarding-dots i.is-current{width:22px;background:#52bf89}.rinchan-onboarding-actions{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px}.rinchan-onboarding-skip{min-height:48px;border:0;border-radius:999px;background:#eef4f7;color:#60758a;font-weight:850}.rinchan-onboarding-next{width:100%;min-height:48px;border-radius:999px!important;text-align:center;justify-content:center}.rinchan-onboarding-next:before,.rinchan-onboarding-next:after{display:none!important}@keyframes rinchanGuideIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:380px){.rinchan-onboarding-panel{padding:18px;border-radius:26px}.rinchan-onboarding-steps{min-height:245px}.rinchan-onboarding-step{padding-top:22px}.rinchan-onboarding-emoji{width:74px;height:74px;font-size:36px}.rinchan-onboarding-step h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.rinchan-onboarding-step.is-current{animation:none}.rinchan-onboarding{transition:none}}


/* v1.9.35: accessibility finishing pass */
.rinchan-skip-link{
  position:fixed;left:12px;top:10px;z-index:1000;
  padding:10px 16px;border-radius:999px;background:#fff;color:#06345f;
  border:2px solid #176e50;font-weight:900;text-decoration:none;
  box-shadow:0 8px 24px rgba(11,53,98,.18);transform:translateY(-160%);
  transition:transform .15s ease;
}
.rinchan-skip-link:focus{transform:translateY(0);}
.rinchan-sr-only{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
:where(.rinchan-shell a,.rinchan-shell button,.rinchan-shell input,.rinchan-shell select,.rinchan-shell textarea,.rinchan-shell summary):focus-visible{
  outline:3px solid #0b70c9!important;outline-offset:3px!important;box-shadow:0 0 0 5px rgba(34,147,214,.18)!important;
}
.rinchan-shell button,.rinchan-shell .rinchan-button,.rinchan-shell .rinchan-inline-link,
.rinchan-news-read-toggle,.rinchan-broadcast-read-toggle,.rinchan-ready-read,.rinchan-event-participate{
  min-height:44px;
}
.rinchan-shell input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.rinchan-shell select,.rinchan-shell textarea{font-size:max(16px,1em);}
.muted,.rinchan-form-note,.rinchan-card small,.rinchan-account-chip{color:#536b82;}
.rinchan-drawer-backdrop{cursor:pointer;}
.rinchan-drawer-panel:focus{outline:none;}
.rinchan-onboarding-step[hidden]{display:none!important;}
.rinchan-onboarding-dots i{forced-color-adjust:auto;}
@media (forced-colors:active){
  .rinchan-button,.rinchan-drawer-link,.rinchan-card,.rinchan-account-card,.rinchan-onboarding-panel{border:1px solid ButtonText!important;}
  .rinchan-button{forced-color-adjust:none;background:ButtonFace!important;color:ButtonText!important;}
  .rinchan-news-badge{forced-color-adjust:none;background:Highlight!important;color:HighlightText!important;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}

/* v1.9.39 - visual cleanup: reduce duplication, orphan wraps and false affordances */
.rinchan-home-hero .rinchan-hero-copy h1{
  font-size:clamp(28px,6.1vw,40px);
  line-height:1.16;
  text-wrap:balance;
}
.rinchan-hero-copy>p:last-child,
.rinchan-hero-message strong,
.rinchan-card p,
.rinchan-card .muted,
.rinchan-home-letter-copy>span,
.rinchan-thanks-empty p,
.rinchan-growth-event-body p{
  line-break:strict;
  text-wrap:pretty;
  word-break:normal;
  overflow-wrap:break-word;
}
.rinchan-hero-message{
  padding-left:16px;
  padding-right:16px;
}
.rinchan-section-head{
  min-width:0;
}
.rinchan-section-head>div{
  min-width:0;
  flex:1 1 auto;
}
.rinchan-section-head h2,
.rinchan-section-head h3{
  text-wrap:balance;
  line-break:strict;
}
/* Decorative section icons were removed in templates; keep only icons that communicate state/action. */
.rinchan-home-action.walk{
  position:relative;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  padding-left:46px!important;
  padding-right:46px!important;
}
.rinchan-home-action .action-copy{
  display:block;
  min-width:0;
  text-align:center;
}
.rinchan-home-action .action-copy strong,
.rinchan-home-action .action-copy small{
  display:block;
  text-align:center;
}
.rinchan-home-action .action-arrow{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
}
/* Avoid repeating a state badge when the same state is already shown immediately above. */
.rinchan-weekly-review-card .rinchan-section-head{
  justify-content:flex-start;
}
/* Keep data chips informative, but don't let a short trailing Japanese character orphan. */
.rinchan-forest-status p,
.rinchan-personal-tree-copy p,
.rinchan-walk-calendar-intro,
.rinchan-monthly-review-message,
.rinchan-monthly-highlights-message{
  max-width:100%;
  text-wrap:pretty;
  line-break:strict;
}
@media(max-width:430px){
  .rinchan-home-hero .rinchan-hero-copy h1{font-size:clamp(27px,7vw,34px);}
  .rinchan-hero-copy>p:last-child{font-size:14px;line-height:1.65;}
  .rinchan-hero-message{font-size:12.5px;line-height:1.55;}
  .rinchan-card h2{font-size:20px;}
}
.rinchan-today-growth-grid.is-compact{grid-template-columns:repeat(2,minmax(0,1fr));}
.rinchan-growth-detail{display:block;margin-top:5px;color:var(--rc-muted);font-size:10.5px;font-weight:750;line-height:1.35;}
@media(max-width:390px){
  .rinchan-today-growth-grid.is-compact{gap:8px;}
  .rinchan-growth-detail{font-size:10px;}
}

/* v1.9.40 - balanced final-page spacing */
.rinchan-wellness-strip {
  margin-bottom:14px !important;
}
@media (max-width:700px) {
  .rinchan-wellness-strip {
    margin-bottom:12px !important;
  }
}


/* v1.9.42 - mobile wrap fix + 16px bottom spacing for wellness strip */
.rinchan-hero-message{
  display:block;
  width:fit-content;
  max-width:min(100%,30ch);
}
.rinchan-hero-message strong{
  display:block;
  margin:0;
  line-height:1.6;
  line-break:auto;
  word-break:normal;
  overflow-wrap:normal;
  white-space:normal;
  text-wrap:pretty;
}
@media (max-width:700px){
  .rinchan-wellness-strip{
    margin-bottom:16px !important;
  }
}
@media (max-width:430px){
  .rinchan-hero-message{
    max-width:min(100%,28ch);
  }
}


/* v1.9.43 - make hero speech bubble wrap naturally on mobile */
.rinchan-hero-message{
  display:inline-block;
  width:auto;
  max-width:min(100%, 320px);
  white-space:normal;
}
.rinchan-hero-message strong{
  display:block;
  max-width:18em;
  line-height:1.65;
  white-space:normal;
  word-break:keep-all;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
@media (max-width:430px){
  .rinchan-hero-message{
    max-width:min(100%, 300px);
    padding:10px 16px;
  }
  .rinchan-hero-message strong{
    max-width:16em;
  }
}


/* v1.9.44 - keep Japanese sentence-ending punctuation with the preceding kana */
.rinchan-hero-message .rinchan-no-orphan{
  white-space:nowrap;
}
.rinchan-hero-message strong{
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
}


/* v1.9.45 - keep final home CTA fully visible above mobile browser chrome */
body.rinchan-native-scroll-lock .rinchan-shell{
  padding-bottom:24px !important;
  scroll-padding-bottom:24px;
}
@media (max-width:700px){
  body.rinchan-native-scroll-lock .rinchan-shell{
    padding-bottom:calc(16px + env(safe-area-inset-bottom) + 72px) !important;
    scroll-padding-bottom:calc(16px + env(safe-area-inset-bottom) + 72px);
  }
  body.home .rinchan-wellness-strip,
  body.page .rinchan-wellness-strip{
    margin-bottom:16px !important;
  }
}


/* v1.9.46 - inset Rin face slightly inside the header without shifting title */
.rinchan-appbar .rinchan-brand{
  transform:translateX(14px);
}
@media (max-width:700px){
  .rinchan-appbar .rinchan-brand{
    transform:translateX(18px);
  }
}


/* v1.9.47 - secret badge timeline icon */
.rinchan-growth-event.is-badge .rinchan-growth-event-icon{
  background:#f3f0ff;
  color:#ffffff;
  box-shadow:0 5px 14px rgba(91,72,163,.10);
}
.rinchan-growth-event.is-badge .rinchan-growth-event-icon svg{
  width:17px!important;
  height:17px!important;
  max-width:17px!important;
}
@media(max-width:430px){
  .rinchan-growth-event.is-badge .rinchan-growth-event-icon svg{
    width:15px!important;
    height:15px!important;
    max-width:15px!important;
  }
}


/* v1.9.48 - thank-you cooldown state */
.rinchan-thanks-disabled{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:6px;
  opacity:.72;
  cursor:not-allowed!important;
  background:#f1f5f6!important;
  border-color:#dce7e7!important;
  color:#728493!important;
  box-shadow:none!important;
}
.rinchan-thanks-disabled small{font-size:11px;font-weight:800;white-space:nowrap;}


/* v1.9.49 - add breathing room above reward exchange heading */
#rinchan-rewards .rinchan-stat-grid + .rinchan-subheading{
  margin-top:28px;
  margin-bottom:12px;
}
@media(max-width:700px){
  #rinchan-rewards .rinchan-stat-grid + .rinchan-subheading{
    margin-top:24px;
    margin-bottom:12px;
  }
}


/* =========================================================
   v1.10.0 CLEAN BASELINE
   Theme owns app header, mobile tabs, logout, and content labels.
   ========================================================= */
@media (max-width:899px){
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px));}
  .rinchan-menu-toggle{display:none!important;}
}

.rinchan-mobile-tabs{
  display:none;
}
@media (max-width:899px){
  .rinchan-mobile-tabs{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:90;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    min-height:72px;
    padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px));
    background:rgba(255,255,255,.98);
    border-top:1px solid rgba(46,155,69,.14);
    box-shadow:0 -4px 18px rgba(20,55,45,.08);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
  }
  .rinchan-mobile-tab{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    min-width:0;
    color:#66756d;
    text-decoration:none;
    font-size:11px;
    line-height:1.15;
    font-weight:700;
    -webkit-tap-highlight-color:transparent;
  }
  .rinchan-mobile-tab-icon{
    display:block;
    font-size:22px;
    line-height:1;
  }
  .rinchan-mobile-tab.is-current{
    color:#2e9b45;
  }
  .rinchan-mobile-tab.is-current:after{
    content:"";
    display:block;
    width:18px;
    height:3px;
    margin-top:2px;
    border-radius:999px;
    background:#2e9b45;
  }
}

.rinchan-passport-logout{
  margin:18px 0 8px;
  text-align:center;
}
.rinchan-passport-logout .rinchan-logout-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:190px;
  min-height:46px;
  padding:10px 18px;
  border:1px solid #d8e5ea;
  border-radius:14px;
  background:#fff;
  color:#5f6b66;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.rinchan-passport-logout .rinchan-logout-button svg{
  width:20px;
  height:20px;
}

/* Passport page title already exists in the app bar; do not duplicate it in the hero card. */
.passport-story-hero .passport-duplicate-title{display:none!important;}

/* Keep the forest hero heading consistent with other card headings. */
.rinchan-season-hero h1{text-align:left;}

/* Keep the sent-state label compact on one line. */
.rinchan-thanks-disabled{white-space:nowrap;}


/* =========================================================
   v1.10.1
   Mobile navigation ownership:
   Bottom navigation is the primary mobile navigation, so the
   app-bar hamburger is hidden on mobile. Notification stays visible.
   Desktop behavior is unchanged.
   ========================================================= */
@media (max-width: 899px){
  .rinchan-menu-toggle{
    display:none !important;
  }

  .rinchan-appbar-actions{
    gap:0 !important;
  }
}


/* =========================================================
   v1.10.4 - Recent activity history
   Keep dates on one line and use the available mobile width.
   ========================================================= */
.rinchan-history-list .history-row > strong{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.rinchan-history-list .history-steps{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.rinchan-history-list .history-comment:empty{
  display:none;
}

@media (max-width:700px){
  .rinchan-history-list{
    gap:0;
  }

  .rinchan-history-list .history-row{
    display:grid;
    grid-template-columns:minmax(82px, .7fr) minmax(120px, 1.3fr);
    grid-template-areas:
      "date steps"
      "comment comment";
    column-gap:18px;
    row-gap:5px;
    align-items:center;
    width:100%;
    padding:14px 2px;
    font-size:15px;
  }

  .rinchan-history-list .history-row > strong{
    grid-area:date;
    justify-self:start;
    font-size:16px;
    line-height:1.2;
  }

  .rinchan-history-list .history-steps{
    grid-area:steps;
    justify-self:end;
    text-align:right;
    font-size:16px;
    font-weight:700;
    color:var(--rc-navy);
  }

  .rinchan-history-list .history-comment{
    grid-area:comment;
    justify-self:start;
    width:100%;
    padding-top:1px;
    font-size:13px;
    line-height:1.5;
  }
}


/* =========================================================
   v1.10.5
   Progressive history lists + logout icon alignment
   ========================================================= */

.rinchan-progressive-hidden{
  display:none !important;
}

.rinchan-progressive-more-wrap{
  display:flex;
  justify-content:center;
  margin-top:14px;
}

.rinchan-progressive-more{
  min-width:150px;
  min-height:42px;
  padding:9px 22px;
  border:1px solid #bfe7d1;
  border-radius:999px;
  background:#f3fbf6;
  color:#218e58;
  font:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.rinchan-progressive-more:active{
  background:#e9f7ee;
}

/* Keep logout icon and text visually centered as one unit. */
.rinchan-passport-logout .rinchan-logout-button > span[aria-hidden="true"]{
  display:grid;
  place-items:center;
  flex:0 0 20px;
  width:20px;
  height:20px;
  line-height:0;
}

.rinchan-passport-logout .rinchan-logout-button > span[aria-hidden="true"] svg{
  display:block;
  width:18px !important;
  height:18px !important;
  margin:0 !important;
  transform:translateY(-1px);
}


/* =========================================================
   v1.10.6 - Home thanks link -> Department trees
   Keep the anchored section visible below the sticky app bar.
   ========================================================= */
#rinchan-department-trees{
  scroll-margin-top:120px;
}


/* =========================================================
   v1.10.7 - Passport walking calendar month navigation
   ========================================================= */
.rinchan-walk-calendar-card{scroll-margin-top:112px}
.rinchan-calendar-section-head{align-items:flex-start;gap:12px}
.rinchan-calendar-nav{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto}
.rinchan-calendar-nav-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(34,102,132,.12);border-radius:50%;background:#fff;color:#1f8f64;text-decoration:none;font-size:26px;font-weight:700;line-height:1;box-shadow:0 4px 10px rgba(32,94,75,.05)}
.rinchan-calendar-nav-button.is-disabled{color:#bcc8c3;background:#f7faf8;box-shadow:none;cursor:default}
.rinchan-calendar-today-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border-radius:999px;background:#eef9f2;color:#218e58;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}
@media(max-width:430px){
  .rinchan-calendar-section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .rinchan-calendar-nav{gap:5px}
  .rinchan-calendar-nav-button{width:32px;height:32px;font-size:23px}
  .rinchan-calendar-today-link{min-height:31px;padding:0 9px;font-size:11px}
}


/* =========================================================
   v1.10.8 - Passport calendar heading and month controls
   ========================================================= */
.rinchan-calendar-nav-button{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  box-sizing:border-box;
  line-height:1;
}
.rinchan-calendar-nav-glyph{
  display:block;
  width:1em;
  height:1em;
  line-height:1em;
  text-align:center;
  transform:translateY(-1px);
  pointer-events:none;
}
.rinchan-calendar-today-link{
  box-sizing:border-box;
}
@media(max-width:700px){
  .rinchan-calendar-nav-button{
    width:36px;
    height:36px;
    min-width:36px;
    min-height:36px;
  }
  .rinchan-calendar-nav-glyph{
    font-size:24px;
  }
  .rinchan-calendar-today-link{
    min-height:36px;
    height:36px;
    padding:0 11px;
  }
}


/* =========================================================
   v1.10.10 - Thanks direction colors
   Received thanks = pink, sent thanks = green.
   ========================================================= */
.timeline-row.thanks-received > .thanks-mark,
.rinchan-growth-event.thanks-received .rinchan-growth-event-icon{
  background:#fff1f5 !important;
  color:#d96b91 !important;
}

.timeline-row.thanks-sent > .thanks-mark,
.rinchan-growth-event.thanks-sent .rinchan-growth-event-icon{
  background:#eef9f3 !important;
  color:#2d9a68 !important;
}

.timeline-row.thanks-received > .thanks-mark svg,
.timeline-row.thanks-sent > .thanks-mark svg,
.rinchan-growth-event.thanks-received .rinchan-growth-event-icon svg,
.rinchan-growth-event.thanks-sent .rinchan-growth-event-icon svg{
  color:inherit !important;
}





/* =========================================================
   v1.10.13 - flower field rebuilt with the actual markup
   Markup uses .flower-1 ... .flower-12 classes.
   One thank-you = one visible flower rooted in the hill.
   ========================================================= */
.rinchan-flower-scene{
  min-height:250px;
}
.rinchan-flower-ground{
  left:-10%;
  right:-10%;
  bottom:-34px;
  height:112px;
  border-radius:52% 52% 0 0;
}
.rinchan-flower-field{
  position:absolute;
  left:20px;
  right:20px;
  top:auto;
  bottom:20px;
  height:112px;
  z-index:3;
  pointer-events:none;
}
.rinchan-flower{
  width:42px;
  height:82px;
  transform-origin:50% 100%;
}
.rinchan-flower .stem{
  left:20px;
  bottom:2px;
  width:3px;
  height:40px;
}
.rinchan-flower .leaf{
  bottom:21px;
  width:15px;
  height:8px;
}
.rinchan-flower .leaf-left{left:7px;}
.rinchan-flower .leaf-right{right:5px;bottom:29px;}
.rinchan-flower .bloom{
  left:5px;
  top:4px;
  width:32px;
  height:32px;
}
/* Actual classes emitted by rinchan-mori.php */
.rinchan-flower-field .flower-1{left:9%;bottom:0;transform:scale(.92)}
.rinchan-flower-field .flower-2{left:29%;bottom:4px;transform:scale(.82)}
.rinchan-flower-field .flower-3{left:49%;bottom:0;transform:scale(.96)}
.rinchan-flower-field .flower-4{left:68%;bottom:5px;transform:scale(.84)}
.rinchan-flower-field .flower-5{left:84%;bottom:1px;transform:scale(.90)}
.rinchan-flower-field .flower-6{left:17%;bottom:38px;transform:scale(.64)}
.rinchan-flower-field .flower-7{left:36%;bottom:34px;transform:scale(.69)}
.rinchan-flower-field .flower-8{left:56%;bottom:40px;transform:scale(.64)}
.rinchan-flower-field .flower-9{left:75%;bottom:35px;transform:scale(.67)}
.rinchan-flower-field .flower-10{left:2%;bottom:29px;transform:scale(.58)}
.rinchan-flower-field .flower-11{left:51%;bottom:27px;transform:scale(.56)}
.rinchan-flower-field .flower-12{left:91%;bottom:30px;transform:scale(.58)}
/* Make the first two flowers unmistakably different and visible. */
.rinchan-flower-field .flower-1 .bloom em{background:#f4a8bd;}
.rinchan-flower-field .flower-2 .bloom em{background:#9fbff0;}
@media(max-width:560px){
  .rinchan-flower-scene{min-height:238px;}
  .rinchan-flower-field{left:12px;right:12px;bottom:18px;height:108px;}
  .rinchan-flower{width:40px;height:80px;}
  .rinchan-flower-field .flower-1{left:7%;}
  .rinchan-flower-field .flower-2{left:28%;}
  .rinchan-flower-field .flower-3{left:48%;}
  .rinchan-flower-field .flower-4{left:67%;}
  .rinchan-flower-field .flower-5{left:83%;}
}


/* =========================================================
   v1.10.14 - iOS Safari / Chrome / installed PWA consistency
   - The app viewport is driven by visualViewport when available.
   - Mobile tabs are a sibling of the scroll shell, not a fixed child
     inside the scroll container.
   - The shell and tabs form one exact visual viewport, eliminating the
     large Chrome-only blank area below the tab bar.
   - Flower positions are deterministic and remain aligned across modes.
   ========================================================= */
:root{
  --rinchan-app-viewport-height:100dvh;
}
@supports not (height:100dvh){
  :root{--rinchan-app-viewport-height:100vh;}
}

@media (max-width:899px){
  html.rinchan-app-scroll-lock,
  html.rinchan-app-scroll-lock body,
  body.rinchan-native-scroll-lock{
    height:var(--rinchan-app-viewport-height) !important;
    min-height:var(--rinchan-app-viewport-height) !important;
    max-height:var(--rinchan-app-viewport-height) !important;
    overflow:hidden !important;
  }

  body.rinchan-native-scroll-lock{
    display:flex;
    flex-direction:column;
    width:100%;
    padding:0 !important;
  }

  body.rinchan-native-scroll-lock > .rinchan-shell{
    flex:1 1 auto;
    width:min(100%,var(--rc-max));
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 auto !important;
    padding-bottom:18px !important;
    scroll-padding-bottom:18px !important;
    overflow-x:clip !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
  }

  body.rinchan-native-scroll-lock > .rinchan-mobile-tabs{
    position:relative;
    inset:auto;
    left:auto;
    right:auto;
    bottom:auto;
    flex:0 0 auto;
    width:100%;
    min-height:72px;
    margin:0;
    padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px));
    transform:none;
    z-index:90;
  }
}

/* Keep flower layout deterministic even if a browser briefly paints an
   older cached base rule while the new stylesheet is being replaced. */
.rinchan-flower-field .rinchan-flower{position:absolute;}
.rinchan-flower-field .flower-1{left:9%;bottom:0;transform:scale(.92)}
.rinchan-flower-field .flower-2{left:29%;bottom:4px;transform:scale(.82)}
.rinchan-flower-field .flower-3{left:49%;bottom:0;transform:scale(.96)}
.rinchan-flower-field .flower-4{left:68%;bottom:5px;transform:scale(.84)}
.rinchan-flower-field .flower-5{left:84%;bottom:1px;transform:scale(.90)}
.rinchan-flower-field .flower-6{left:17%;bottom:38px;transform:scale(.64)}
.rinchan-flower-field .flower-7{left:36%;bottom:34px;transform:scale(.69)}
.rinchan-flower-field .flower-8{left:56%;bottom:40px;transform:scale(.64)}
.rinchan-flower-field .flower-9{left:75%;bottom:35px;transform:scale(.67)}
.rinchan-flower-field .flower-10{left:2%;bottom:29px;transform:scale(.58)}
.rinchan-flower-field .flower-11{left:51%;bottom:27px;transform:scale(.56)}
.rinchan-flower-field .flower-12{left:91%;bottom:30px;transform:scale(.58)}


/* =========================================================
   v1.10.15 - stable mobile tabs + balanced Mori summary
   - Mobile tabs are fixed to the visual bottom again. They must never
     participate in the scroll flow; this prevents the tab bar from being
     pushed upward and exposing a viewport-sized blank area on iOS Chrome.
   - The shell is the only vertical scroller on mobile and reserves exactly
     one tab-bar height at its bottom.
   - Mori's three progress summaries use equal columns on desktop.
   ========================================================= */
@media (max-width:899px){
  html.rinchan-app-scroll-lock,
  html.rinchan-app-scroll-lock body,
  body.rinchan-native-scroll-lock{
    width:100%;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    overflow:hidden !important;
  }

  body.rinchan-native-scroll-lock{
    display:block !important;
    padding:0 !important;
    overscroll-behavior:none;
  }

  body.rinchan-native-scroll-lock > .rinchan-shell{
    width:min(100%,var(--rc-max));
    height:100dvh !important;
    min-height:0 !important;
    max-height:100dvh !important;
    margin:0 auto !important;
    padding-bottom:calc(96px + env(safe-area-inset-bottom,0px)) !important;
    scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom,0px)) !important;
    overflow-x:clip !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
  }

  body.rinchan-native-scroll-lock > .rinchan-mobile-tabs,
  .rinchan-mobile-tabs{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    top:auto !important;
    width:100% !important;
    min-height:72px;
    margin:0 !important;
    padding:7px 4px calc(7px + env(safe-area-inset-bottom,0px)) !important;
    transform:none !important;
    z-index:1000 !important;
  }
}

@media (min-width:700px){
  .rinchan-flower-summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
  }
  .rinchan-flower-summary > div{
    min-width:0;
    height:100%;
  }
  .rinchan-flower-summary .rinchan-achievement-summary,
  .rinchan-flower-summary .rinchan-butterfly-summary,
  .rinchan-flower-summary .rinchan-bird-summary{
    grid-column:1 / -1;
  }
  .rinchan-flower-summary .rinchan-next-nature{
    grid-column:auto;
  }
}

@media (max-width:699px){
  .rinchan-flower-summary{
    grid-template-columns:1fr;
  }
}

/* v1.10.16 - keep member names balanced regardless of name length */
.rinchan-department-tree-card .member-head{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-width:0;
}
.rinchan-department-tree-card .member-head > div{
  min-width:0;
}
.rinchan-department-tree-card .member-head strong{
  display:block;
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  font-size:15px;
  line-height:1.45;
  letter-spacing:0;
}
.rinchan-department-tree-card .member-head small{
  margin-top:3px;
}
@media(max-width:600px){
  .rinchan-department-tree-card .member-head strong{font-size:14px;}
}

/* v1.10.17 - keep daily thank-you limit message inside member card */
.rinchan-department-tree-card .member .rinchan-thanks-daily-limit{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:8px 10px;
  white-space:normal;
  text-align:center;
  line-height:1.35;
  overflow-wrap:anywhere;
}
@media(max-width:600px){
  .rinchan-department-tree-card .member .rinchan-thanks-daily-limit{
    font-size:13px;
  }
}


/* v1.10.18 - clarify hierarchy in the shared forest growth summary */
@media (min-width:700px){
  .rinchan-flower-summary{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
    gap:10px 12px;
  }
}
.rinchan-flower-summary > div:not(.rinchan-butterfly-summary):not(.rinchan-bird-summary):not(.rinchan-achievement-summary){
  border-color:rgba(45,111,93,.065);
  background:rgba(248,252,250,.74);
}
.rinchan-flower-summary .rinchan-butterfly-summary,
.rinchan-flower-summary .rinchan-bird-summary{
  position:relative;
  grid-column:1 / -1;
  padding:8px 4px 7px 34px;
  border:0;
  border-radius:0;
  background:transparent !important;
}
.rinchan-flower-summary .rinchan-butterfly-summary:before,
.rinchan-flower-summary .rinchan-bird-summary:before{
  position:absolute;
  left:5px;
  top:8px;
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  font-size:15px;
  line-height:1;
}
.rinchan-flower-summary .rinchan-butterfly-summary:before{content:"🦋";}
.rinchan-flower-summary .rinchan-bird-summary:before{content:"🐦";}
.rinchan-flower-summary .rinchan-butterfly-summary strong,
.rinchan-flower-summary .rinchan-bird-summary strong{
  font-size:15px;
}
.rinchan-flower-summary .rinchan-butterfly-summary small,
.rinchan-flower-summary .rinchan-bird-summary small{
  margin-top:3px;
}
.rinchan-flower-summary .rinchan-achievement-summary{
  grid-column:1 / -1;
  padding:13px 14px;
  border:1px solid rgba(196,151,58,.14);
  background:linear-gradient(135deg,#fffaf0,#f8fbf5) !important;
  box-shadow:0 5px 14px rgba(117,96,45,.035);
}
@media (max-width:699px){
  .rinchan-flower-summary .rinchan-butterfly-summary,
  .rinchan-flower-summary .rinchan-bird-summary{
    padding:7px 2px 6px 31px;
  }
  .rinchan-flower-summary .rinchan-butterfly-summary:before,
  .rinchan-flower-summary .rinchan-bird-summary:before{
    left:3px;
    top:7px;
  }
}

/* =========================================================
   v1.10.19 - information architecture simplification
   Keep the proven 1.10.18 viewport/tab mechanics unchanged.
   Only content density and navigation destinations are simplified.
   ========================================================= */
@media (max-width:899px){
  .rinchan-mobile-tabs{grid-template-columns:repeat(4,minmax(0,1fr));}
}
.rinchan-dashboard-section-home .rinchan-steps-visual{grid-template-columns:1fr;}
.rinchan-dashboard-section-home .rinchan-goal-card{width:100%;}

.rinchan-home-status-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0 0 var(--rc-home-gap);
}
.rinchan-home-status-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 14px;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:15px 14px;
  border:1px solid rgba(34,102,132,.09);
  border-radius:22px;
  background:#fff;
  box-shadow:0 8px 22px rgba(35,92,126,.055);
  color:var(--rc-navy);
  text-decoration:none;
}
.rinchan-home-status-card.is-thanks{background:linear-gradient(145deg,#fff,#fff8fb);}
.rinchan-home-status-card.is-mori{background:linear-gradient(145deg,#fff,#f5fcf8);}
.rinchan-home-status-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#eef8f3;
  color:#29976d;
  font-size:22px;
}
.rinchan-home-status-card.is-thanks .rinchan-home-status-icon{background:#fff0f5;color:#d86f91;}
.rinchan-home-status-icon svg{width:22px!important;height:22px!important;max-width:22px!important;}
.rinchan-home-status-copy{min-width:0;}
.rinchan-home-status-copy small,.rinchan-home-status-copy strong{display:block;}
.rinchan-home-status-copy small{margin-bottom:3px;color:var(--rc-muted);font-size:11px;font-weight:850;}
.rinchan-home-status-copy strong{font-size:14px;line-height:1.45;text-wrap:pretty;}
.rinchan-home-status-arrow{font-size:24px;color:#7d919f;line-height:1;}
.rinchan-home-record-link{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 14px;
  align-items:center;
  gap:11px;
  margin:0 0 var(--rc-home-gap);
  padding:14px 15px;
  border:1px solid rgba(34,102,132,.09);
  border-radius:22px;
  background:linear-gradient(145deg,#ffffff,#f2f9ff);
  box-shadow:0 8px 22px rgba(35,92,126,.055);
  color:var(--rc-navy);
  text-decoration:none;
}
.rinchan-home-record-link>span:first-child{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#edf7ff;color:#327fa8;}
.rinchan-home-record-link svg{width:24px!important;height:24px!important;max-width:24px!important;}
.rinchan-home-record-link small,.rinchan-home-record-link strong{display:block;}
.rinchan-home-record-link small{font-size:11px;color:var(--rc-muted);font-weight:850;}
.rinchan-home-record-link strong{margin-top:3px;font-size:15px;line-height:1.4;}
.rinchan-home-record-link>span:last-child{font-size:24px;color:#7d919f;line-height:1;}

.rinchan-thanks-daily-status{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;}
.rinchan-thanks-daily-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff0f5;color:#d86f91;}
.rinchan-thanks-daily-icon svg{width:25px!important;height:25px!important;max-width:25px!important;}
.rinchan-thanks-daily-status small,.rinchan-thanks-daily-status strong{display:block;}
.rinchan-thanks-daily-status small{color:#b4677e;font-size:11px;font-weight:900;}
.rinchan-thanks-daily-status strong{margin-top:2px;font-size:19px;color:var(--rc-navy);}
.rinchan-thanks-daily-status p{margin:5px 0 0;color:var(--rc-muted);font-size:12px;line-height:1.55;}
.rinchan-thanks-daily-status.is-done .rinchan-thanks-daily-icon{background:#eef8f3;color:#31956d;}
.rinchan-thanks-count-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.rinchan-thanks-member-intro{margin-bottom:12px;}
.rinchan-thanks-department-list{display:grid;gap:14px;}
.rinchan-thanks-department{min-width:0;padding:14px;border:1px solid rgba(34,102,132,.08);border-radius:20px;background:#fbfefd;}
.rinchan-thanks-department>h3{margin:0 0 10px;font-size:16px;}
.rinchan-thanks-member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.rinchan-thanks-member{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 11px;border:1px solid rgba(34,102,132,.07);background:#fff;}
.rinchan-thanks-member .rinchan-button{justify-self:end;margin:0;}
.rinchan-thanks-history-list{margin-top:8px;}
.rinchan-thanks-history-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px 0;border-top:1px solid var(--rc-line);}
.rinchan-thanks-history-row:first-child{border-top:0;}
.rinchan-thanks-history-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff0f5;color:#d86f91;font-weight:900;}
.rinchan-thanks-history-row.is-sent .rinchan-thanks-history-mark{background:#edf8f2;color:#29956d;}
.rinchan-thanks-history-row small,.rinchan-thanks-history-row strong{display:block;}
.rinchan-thanks-history-row small{margin-bottom:2px;color:var(--rc-muted);font-size:10px;font-weight:850;}
.rinchan-thanks-history-row strong{font-size:13.5px;}
.rinchan-thanks-history-row p{margin:3px 0 0;color:#5d7184;font-size:12px;line-height:1.55;}
.rinchan-thanks-history-row time{color:var(--rc-muted);font-size:11px;white-space:nowrap;}

@media(max-width:700px){
  .rinchan-home-status-grid{grid-template-columns:1fr;}
  .rinchan-home-status-card{padding:13px 14px;}
  .rinchan-thanks-member-list{grid-template-columns:1fr;}
}
@media(max-width:390px){
  .rinchan-thanks-member{grid-template-columns:minmax(0,1fr);}
  .rinchan-thanks-member .rinchan-button{justify-self:start;}
  .rinchan-thanks-history-row{grid-template-columns:30px minmax(0,1fr);}
  .rinchan-thanks-history-row time{display:none;}
}

/* =========================================================
   v1.10.23 - calm and repair the shared forest illustration
   - Keep flowers as the visual focus.
   - Use only one subtle cloud and fewer seasonal particles.
   - Butterflies are limited in PHP to two visible visitors.
   - Rebuild bird silhouettes with filled shapes so iOS cannot expose
     border-based wing strokes as long horizontal/vertical lines.
   - Keep the achievement branch as a small bottom-right accent.
   - Do not alter viewport, mobile shell, or bottom-tab geometry.
   ========================================================= */
.rinchan-flower-scene .rinchan-flower-cloud.cloud-b{display:none!important;}
.rinchan-flower-scene .rinchan-flower-cloud.cloud-a{
  left:58%;
  top:22%;
  opacity:.26;
  transform:scale(.72);
}
.rinchan-flower-scene .season-particle:nth-child(n+7){display:none;}

/* Give the upper half more breathing room while keeping the same card height. */
.rinchan-flower-scene .rinchan-butterflies{
  inset:16px 12px 66px;
}
.rinchan-flower-scene .rinchan-butterfly.butterfly-1{left:23%;top:30%;}
.rinchan-flower-scene .rinchan-butterfly.butterfly-2{right:22%;top:18%;}
.rinchan-flower-scene .rinchan-butterfly.butterfly-3{display:none!important;}

/* Compact, filled bird silhouettes: no border strokes that can render as stray lines. */
.rinchan-flower-scene .rinchan-birds{
  inset:14px 12px 60% 12px;
  z-index:5;
  overflow:hidden;
}
.rinchan-flower-scene .rinchan-bird{
  width:28px;
  height:18px;
  filter:drop-shadow(0 2px 3px rgba(48,73,94,.10));
}
.rinchan-flower-scene .rinchan-bird .bird-body{
  left:10px;
  top:8px;
  width:8px;
  height:6px;
  border-radius:60% 65% 55% 55%;
  background:#66899a;
}
.rinchan-flower-scene .rinchan-bird .bird-body:after{
  right:-4px;
  top:1px;
  width:5px;
  height:3px;
  background:#e3a75e;
}
.rinchan-flower-scene .rinchan-bird .bird-wing{
  top:5px;
  width:11px;
  height:7px;
  border:0!important;
  border-radius:70% 30% 75% 25%;
  background:#86a5ad;
  transform-origin:100% 70%;
}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-left{
  left:1px;
  transform:rotate(-18deg);
}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-right{
  right:1px;
  transform:scaleX(-1) rotate(-18deg);
  transform-origin:0 70%;
}
.rinchan-flower-scene .rinchan-bird.bird-1{left:12%;top:34%;}
.rinchan-flower-scene .rinchan-bird.bird-2{right:10%;top:48%;transform:scale(.82);}
.rinchan-flower-scene .rinchan-bird.bird-3{left:48%;top:20%;transform:scale(.72);}
@keyframes rinchan-bird-flap{
  0%{rotate:-6deg;scale:1 .92}
  100%{rotate:7deg;scale:1 1.04}
}

/* Achievement foliage remains, but no longer competes with the flower field. */
.rinchan-flower-scene .rinchan-achievement-grove{
  right:2.5%;
  bottom:44px;
  width:78px;
  height:68px;
  opacity:.78;
  transform:scale(.78);
  transform-origin:right bottom;
}

@media(max-width:560px){
  .rinchan-flower-scene .rinchan-flower-cloud.cloud-a{left:61%;top:24%;opacity:.22;transform:scale(.62);}
  .rinchan-flower-scene .rinchan-butterflies{inset:14px 8px 62px;}
  .rinchan-flower-scene .rinchan-butterfly.butterfly-1{left:20%;top:31%;}
  .rinchan-flower-scene .rinchan-butterfly.butterfly-2{right:18%;top:18%;}
  .rinchan-flower-scene .rinchan-achievement-grove{right:1%;bottom:40px;transform:scale(.68);}
}

/* =========================================================
   v1.10.23 - final forest illustration polish
   - Hide bird silhouettes in the illustration for a calmer upper half.
   - Keep bird progress/status text unchanged.
   - Move the achievement foliage slightly inward so it does not look clipped.
   - Leave flowers, butterflies, card height, viewport, and bottom tabs untouched.
   ========================================================= */
.rinchan-flower-scene .rinchan-birds{display:none!important;}
.rinchan-flower-scene .rinchan-achievement-grove{right:5.5%;}
@media(max-width:560px){
  .rinchan-flower-scene .rinchan-achievement-grove{right:4%;}
}


/* =========================================================
   v1.10.24 - simplify shared forest illustration
   - Remove the achievement branch/foliage/fruit/sparkle artwork from the scene.
   - Keep achievement progress/status text and all underlying data unchanged.
   - Leave flowers, butterflies, card height, viewport, and bottom tabs untouched.
   ========================================================= */
.rinchan-flower-scene .rinchan-achievement-grove{display:none!important;}


/* =========================================================
   v1.10.29 - align bird illustration with bird status
   - Show bird silhouettes only when bird_count is greater than zero.
   - The PHP already renders exactly bird_count birds, so the scene now
     matches the status text without changing milestones or layout.
   - Leave achievement artwork hidden and all other forest elements untouched.
   ========================================================= */
.rinchan-flower-scene .rinchan-birds{display:block!important;}


/* =========================================================
   v1.10.29 - rebuild the bird so it reads clearly as a bird
   - Keep the scene calm and compact, but make the bird silhouette easier to read.
   - Use a rounded head/body/beak/tail composition instead of tiny abstract parts.
   - Leave flowers, butterflies, card height, viewport, and tab bar geometry untouched.
   ========================================================= */
.rinchan-flower-scene .rinchan-birds{
  display:block!important;
  inset:10px 8px 58% 8px;
  z-index:5;
  pointer-events:none;
  overflow:visible;
}
.rinchan-flower-scene .rinchan-bird{
  position:absolute;
  width:42px;
  height:28px;
  filter:drop-shadow(0 2px 4px rgba(48,73,94,.12));
  animation:rinchan-bird-glide 12s ease-in-out infinite alternate;
}
.rinchan-flower-scene .rinchan-bird:before{
  content:"";
  position:absolute;
  left:21px;
  top:7px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:radial-gradient(circle at 62% 42%, #23465f 0 1px, transparent 1.4px), #7896a4;
}
.rinchan-flower-scene .rinchan-bird:after{
  content:"";
  position:absolute;
  left:29px;
  top:10px;
  width:7px;
  height:6px;
  background:#e6ac64;
  clip-path:polygon(0 50%,100% 0,100% 100%);
}
.rinchan-flower-scene .rinchan-bird .bird-body{
  position:absolute;
  left:11px;
  top:10px;
  width:17px;
  height:10px;
  border-radius:65% 58% 58% 62%;
  background:#7896a4;
}
.rinchan-flower-scene .rinchan-bird .bird-body:before{
  content:"";
  position:absolute;
  left:-7px;
  top:2px;
  width:9px;
  height:5px;
  border-radius:100% 0 80% 100%;
  background:#7f9daa;
  transform:rotate(-16deg);
}
.rinchan-flower-scene .rinchan-bird .bird-body:after{
  content:"";
  position:absolute;
  left:8px;
  top:6px;
  width:8px;
  height:3px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
}
.rinchan-flower-scene .rinchan-bird .bird-wing{
  position:absolute;
  border:0!important;
  background:linear-gradient(145deg,#96b0b8,#6f8f9e 72%);
  transform-origin:100% 70%;
  animation:rinchan-bird-flap 1.6s ease-in-out infinite alternate;
}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-left{
  left:6px;
  top:3px;
  width:16px;
  height:12px;
  border-radius:75% 20% 70% 28%;
  transform:rotate(-26deg);
}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-right{
  left:15px;
  top:11px;
  width:11px;
  height:7px;
  border-radius:65% 30% 70% 35%;
  opacity:.52;
  transform:rotate(14deg);
}
.rinchan-flower-scene .rinchan-bird.bird-1{left:11%;top:14%;transform:scale(1.05);animation-duration:11.2s;}
.rinchan-flower-scene .rinchan-bird.bird-2{right:12%;top:16%;transform:scale(.92);animation-duration:12.8s;animation-delay:-2.7s;}
.rinchan-flower-scene .rinchan-bird.bird-3{left:47%;top:9%;transform:scale(.84);animation-duration:10.5s;animation-delay:-4.4s;}
@keyframes rinchan-bird-flap{
  0%{transform:rotate(-24deg) scale(1,.92)}
  100%{transform:rotate(-8deg) scale(1,1.06)}
}
@media(max-width:560px){
  .rinchan-flower-scene .rinchan-birds{inset:8px 6px 58% 6px;}
  .rinchan-flower-scene .rinchan-bird{width:38px;height:25px;}
  .rinchan-flower-scene .rinchan-bird:before{left:19px;top:6px;width:8px;height:8px;}
  .rinchan-flower-scene .rinchan-bird:after{left:26px;top:9px;width:6px;height:5px;}
  .rinchan-flower-scene .rinchan-bird .bird-body{left:10px;top:9px;width:15px;height:9px;}
  .rinchan-flower-scene .rinchan-bird .bird-body:before{left:-6px;top:2px;width:8px;height:5px;}
  .rinchan-flower-scene .rinchan-bird .bird-wing.wing-left{left:5px;top:3px;width:14px;height:11px;}
  .rinchan-flower-scene .rinchan-bird .bird-wing.wing-right{left:13px;top:10px;width:10px;height:6px;}
  .rinchan-flower-scene .rinchan-bird.bird-1{left:12%;top:15%;}
  .rinchan-flower-scene .rinchan-bird.bird-2{right:12%;top:17%;}
  .rinchan-flower-scene .rinchan-bird.bird-3{left:46%;top:10%;}
}
@media(prefers-reduced-motion:reduce){
  .rinchan-flower-scene .rinchan-bird,
  .rinchan-flower-scene .rinchan-bird .bird-wing{animation:none!important;}
}


/* =========================================================
   v1.10.29 - final polish for the forest page
   - Ensure the bird is visibly readable as a simple icon-like bird.
   - Add a little top breathing room so the section kicker is not clipped.
   - Keep the calm flower/butterfly composition and avoid layout expansion.
   ========================================================= */
.rinchan-section.rinchan-mori-page{padding-top:18px;}
@media(max-width:560px){
  .rinchan-section.rinchan-mori-page{padding-top:20px;}
}

/* reset bird visuals to a simpler, always-visible icon-like silhouette */
.rinchan-flower-scene .rinchan-birds{display:block!important;inset:8px 8px 58% 8px;z-index:7;overflow:visible;pointer-events:none;}
.rinchan-flower-scene .rinchan-bird{position:absolute;width:30px;height:20px;filter:drop-shadow(0 2px 3px rgba(48,73,94,.10));animation:none!important;opacity:1;}
.rinchan-flower-scene .rinchan-bird:before,
.rinchan-flower-scene .rinchan-bird:after,
.rinchan-flower-scene .rinchan-bird .bird-body:before,
.rinchan-flower-scene .rinchan-bird .bird-body:after{content:none!important;display:none!important;}
.rinchan-flower-scene .rinchan-bird .bird-body{position:absolute;left:9px;top:9px;width:11px;height:7px;border-radius:65% 55% 60% 60%;background:#7c98a6;}
.rinchan-flower-scene .rinchan-bird .bird-wing{position:absolute;border:0!important;background:#90aab6;animation:none!important;}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-left{left:4px;top:4px;width:13px;height:9px;border-radius:75% 20% 70% 25%;transform:rotate(-18deg);}
.rinchan-flower-scene .rinchan-bird .bird-wing.wing-right{left:14px;top:8px;width:9px;height:6px;border-radius:65% 30% 70% 35%;opacity:.68;transform:rotate(12deg);}
.rinchan-flower-scene .rinchan-bird i.bird-beak{display:block;position:absolute;left:19px;top:10px;width:6px;height:5px;background:#e3ac65;clip-path:polygon(0 50%,100% 0,100% 100%);}
.rinchan-flower-scene .rinchan-bird i.bird-tail{display:block;position:absolute;left:4px;top:10px;width:8px;height:4px;background:#87a1ad;clip-path:polygon(100% 50%,0 0,18% 100%);transform:rotate(-12deg);}
.rinchan-flower-scene .rinchan-bird.bird-1{left:12%;top:13%;transform:scale(1);}
.rinchan-flower-scene .rinchan-bird.bird-2{right:12%;top:14%;transform:scale(.92);}
.rinchan-flower-scene .rinchan-bird.bird-3{left:47%;top:9%;transform:scale(.88);}
@media(max-width:560px){
  .rinchan-flower-scene .rinchan-birds{inset:8px 6px 58% 6px;}
  .rinchan-flower-scene .rinchan-bird{width:28px;height:19px;}
  .rinchan-flower-scene .rinchan-bird .bird-body{left:8px;top:8px;width:10px;height:7px;}
  .rinchan-flower-scene .rinchan-bird .bird-wing.wing-left{left:3px;top:4px;width:12px;height:9px;}
  .rinchan-flower-scene .rinchan-bird .bird-wing.wing-right{left:13px;top:8px;width:8px;height:6px;}
  .rinchan-flower-scene .rinchan-bird i.bird-beak{left:18px;top:9px;width:5px;height:4px;}
  .rinchan-flower-scene .rinchan-bird i.bird-tail{left:3px;top:9px;width:7px;height:4px;}
}


/* =========================================================
   v1.10.29 - H history amount badge
   - Prevent negative values such as -100H from wrapping onto two lines.
   - Keep positive and negative H values aligned in a compact pill.
   - Scope the change to the H history only.
   ========================================================= */
#rinchan-rewards .rinchan-timeline .timeline-row{
  grid-template-columns:72px minmax(0,1fr);
  align-items:center;
}
#rinchan-rewards .rinchan-timeline .timeline-row > .point-amount{
  width:auto;
  min-width:64px;
  height:48px;
  min-height:48px;
  padding:0 9px;
  border-radius:999px;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
  line-height:1;
  font-size:18px;
  letter-spacing:-.02em;
}
@media(max-width:430px){
  #rinchan-rewards .rinchan-timeline .timeline-row{
    grid-template-columns:68px minmax(0,1fr);
    gap:10px;
  }
  #rinchan-rewards .rinchan-timeline .timeline-row > .point-amount{
    min-width:60px;
    height:46px;
    min-height:46px;
    padding:0 7px;
    font-size:17px;
  }
}


/* =========================================================
   v1.10.29 - passport growth intro full-width wrapping
   - Prevent text-wrap:pretty from leaving a conspicuous right-side gap.
   - Keep the paragraph at the full card content width and allow normal wrapping.
   - No changes to card geometry, navigation, viewport, or scrolling.
   ========================================================= */
.rinchan-growth-history-card .rinchan-growth-history-intro{
  width:100%;
  max-width:none;
  text-wrap:wrap!important;
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
}
