/* 誓いエンジンの見た目(誓いログシリーズ共通)
   物差しは docs/design/デザインの決まりごと.md(2026-10-21 社長と決定)
   白と黒が主役、ミント(テーマ色)は強調の1〜2か所だけ。影も枠線も使わない。
   地はごく薄いテーマ色(--paper)、箱は白(--wash)。灰の面は暗く見えたのでやめた(2026-10-21 社長)
   文字は Noto Sans JP を太く大きく。@font-face は、アプリごとに文字を絞るので各アプリの index.html に書く */
:root{
  --ink:#1A1A1A; --ink2:#5F5E5A; --rule:#E3E4E2; --print:#FFFFFF; --seal:#C8321F;
  --wash:#FFFFFF; --wash2:#EEF1F0;
  --disp:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --mono:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
}
/* テーマ色(ミント/さくら/そら)。変わるのは、地(--paper:ごく薄い色)・強調(--leaf:図形、--wtxt:文字)・やわらかい面(--b0〜b2:パステル)。
   白い箱・黒い文字・朱(--seal)は変えない。明るい・暗いは端末に合わせて自動。
   ミントは緑に寄らないよう、青みのあるミント(#2EC4A6)にした(2026-10-21 社長決定:色の案「4+B」) */
:root{--paper:#F1FBF8; --b0:#E3F7F2; --b1:#BFEDE2; --b2:#86DCC9; --water:#86DCC9; --leaf:#2EC4A6; --wtxt:#0E7C6E}
:root[data-color="sakura"]{--paper:#FDF4F7; --b0:#FBE6EE; --b1:#F4C0D1; --b2:#ED93B1; --water:#ED93B1; --leaf:#E488A3; --wtxt:#A2345A}
:root[data-color="sora"]{--paper:#F2F8FD; --b0:#E3F0FB; --b1:#B5D4F4; --b2:#85B7EB; --water:#85B7EB; --leaf:#4A9FD8; --wtxt:#1F5D94}
@media (prefers-color-scheme: dark){
  :root{--paper:#121212; --ink:#F2F2F0; --ink2:#B4B2A9; --rule:#3A3A38; --print:#1E1E1D; --seal:#EC6A53; color-scheme:dark;
    --wash:#1F1F1E; --wash2:#2C2C2A;
    --b0:#163A33; --b1:#1E4F46; --b2:#2B7265; --water:#2B7265; --leaf:#4FD8BD; --wtxt:#8EEAD6}
  :root[data-color="sakura"]{--b0:#3A1D29; --b1:#55293B; --b2:#7A3B56; --water:#7A3B56; --leaf:#F08CAE; --wtxt:#F7B6CC}
  :root[data-color="sora"]{--b0:#15283D; --b1:#1F3B5A; --b2:#2E5884; --water:#2E5884; --leaf:#6FB8EE; --wtxt:#A0D0F2}
}
*{box-sizing:border-box}
body{background-color:var(--paper);
  color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.7;
  padding-block:14px calc(96px + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  -webkit-tap-highlight-color:transparent}
.wrap{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:26px;min-width:0}
h1,h2{margin:0;line-height:1.4}
h1{font-family:var(--disp);font-weight:700;font-size:26px;letter-spacing:.02em}
h2{font-size:17px;font-weight:700;letter-spacing:.02em}
p{margin:0}
.sub{color:var(--ink2);font-size:14.5px}
.muted{color:var(--ink2);font-size:13px}
.lab{display:block;font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--ink2);margin-bottom:2px}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,label.btn:focus-within{outline:2px solid var(--seal);outline-offset:2px}

/* diary header */
.hd{display:flex;align-items:baseline;gap:10px;padding-bottom:2px;flex-wrap:wrap}
.hd .yr{font-family:var(--mono);font-size:12px;color:var(--ink2)}
.hd .dt{font-family:var(--disp);font-weight:700;font-size:25px;line-height:1.2;letter-spacing:.03em}
.hd .stk{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--ink2)}
.hd .stk b{font-size:20px;color:var(--ink)}
.tag{display:inline-block;background:var(--b0);color:var(--wtxt);border-radius:4px;font-size:11px;padding:0 6px;line-height:1.6;font-weight:700;margin-left:8px}
.goal{font-size:15.5px;line-height:1.7;text-align:center}
.goal b{font-family:var(--mono);font-weight:400;font-size:11.5px;color:var(--ink2);letter-spacing:.08em;margin-right:8px}
.meta{font-size:13px;color:var(--ink2);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;min-width:0;text-align:center}
.meta span{min-width:0;line-height:1.45}
.chip{flex:none;border:0;background:var(--wash2);color:var(--ink);font-weight:700;font-size:13px;border-radius:999px;padding:6px 14px;min-height:34px}
.meta b{font-family:var(--mono);color:var(--ink)}
.head{display:flex;flex-direction:column;gap:8px}

/* buttons */
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 14px;border-radius:8px;border:0;background:var(--wash);color:var(--ink);font-weight:700;font-size:14px;text-align:center;line-height:1.35}
.btn.primary{background:var(--ink);color:var(--paper)}
.btn.ghost{background:var(--wash)}
.btn.quiet{background:var(--wash)}
.btn.warm,.btn.seal{color:var(--seal);background:var(--wash)}
.btn.big{width:100%;min-height:54px;font-size:15px}
.btn.sm{min-height:38px;padding:6px 12px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.lk{background:none;border:0;padding:6px 2px;min-height:40px;color:var(--wtxt);font-size:13.5px;font-weight:700}
.lks{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:center}
.startnote{font-size:12px;color:var(--ink2);text-align:center;font-family:var(--mono)}
#cta{display:flex;flex-direction:column;gap:10px}

/* pledge + seal */
.pledge{display:grid;grid-template-columns:1fr 96px;gap:14px;align-items:center;border-radius:10px;padding:14px 12px 14px 16px;background:var(--wash)}
.pl-t{font-size:15px;line-height:1.85}
.pl-t b{font-family:var(--mono);font-size:17px}
.pl-d{margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--ink2)}
.seal-btn{position:relative;width:96px;height:96px;padding:0;border:0;background:none;border-radius:50%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.seal-btn .seal{width:100%;height:100%;display:block;overflow:visible}
.sr{fill:none;stroke:var(--seal);stroke-width:3;stroke-dasharray:5 4}
.s-in{display:none}
.sf{fill:var(--seal);opacity:calc(var(--hold,0)*.16)}
.seal text{font-family:var(--disp);font-weight:700;font-size:28px;fill:var(--seal);text-anchor:middle;opacity:.8}
.hr{fill:none;stroke:var(--seal);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--hold,0));opacity:calc(var(--hold,0)*40);transform:rotate(-90deg);transform-origin:48px 48px}
.stamped .seal{animation:stamp .32s cubic-bezier(.2,.9,.3,1.15) both}
.stamped .sf{opacity:1}.stamped .sr{stroke-dasharray:none}.stamped .s-in{stroke:var(--paper);opacity:.8}.stamped .seal text{fill:var(--paper);opacity:1}.stamped .hr{opacity:0}
@keyframes stamp{0%{transform:scale(1.4) rotate(-3deg);opacity:.3}100%{transform:scale(1) rotate(-8deg);opacity:1}}

/* sections (flat, ruled) */
.card{display:flex;flex-direction:column;gap:12px;min-width:0}
.card.warn{background:var(--wash);border-radius:10px;padding:14px}
.card.warn h2{color:var(--seal)}
.card.warn .note-box{color:var(--ink)}
.empty{color:var(--ink2);font-size:14px}
.stats{display:grid;grid-template-columns:repeat(3,1fr)}
.stats>div{padding:10px 4px;text-align:center}
.stats b{display:block;font-family:var(--mono);font-size:30px;line-height:1.25;font-weight:700}
.stats span{font-size:12px;color:var(--ink2)}
svg.chart{display:block;width:100%;height:auto}
.gl{stroke:none}
.tx{fill:var(--ink2);font-size:10px;font-family:var(--mono)}
.tx.now{fill:var(--ink);font-weight:700}
.bar{fill:var(--wash2);stroke:none}
.bar.ok{fill:var(--leaf)}
.tgl{stroke:var(--seal);stroke-width:1.3;stroke-dasharray:4 3}
.tgl-t{fill:var(--seal);font-size:10px;font-weight:700;font-family:var(--mono)}
.ln{fill:none;stroke:var(--leaf);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dot{fill:var(--paper);stroke:var(--leaf);stroke-width:2}
.dot.end{fill:var(--leaf);stroke:var(--leaf)}
.legend{font-size:12px;color:var(--ink2);line-height:1.6}
.delta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.delta div{background:var(--wash);border-radius:8px;padding:8px 4px;font-size:12px;color:var(--ink2)}
.delta b{display:block;font-family:var(--mono);font-size:17px;color:var(--ink)}

/* stamp calendar */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cw{font-family:var(--mono);font-size:11px;color:var(--ink2);text-align:center;padding:2px 0}
.cd{position:relative;aspect-ratio:1;background:var(--wash);border-radius:6px;min-width:0}
.cd.now{background:var(--b0)}
.cd.now .dn{color:var(--ink);font-weight:700}
.cd.fut{background:transparent}
.dn{position:absolute;left:3px;top:1px;font:10px var(--mono);color:var(--ink2)}
.cs{position:absolute;inset:14% 12% 8% 12%;width:76%;height:78%}
.cs .a{fill:none;stroke:var(--seal);stroke-width:5}
.cs text{font-family:var(--disp);font-weight:700;text-anchor:middle;fill:var(--seal)}
.cs.solid .a{fill:var(--seal)}
.cs.solid text{fill:var(--paper)}
.cs.rest .a{stroke:var(--ink2)}
.cs.rest text{fill:var(--ink2)}
.cs.ring .a{stroke-dasharray:none;opacity:.85}
.lg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink2)}
.lg b{font-family:var(--disp);font-weight:700;color:var(--seal);font-size:15px;margin-right:4px}

/* segmented choice */
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.seg.c2{grid-template-columns:1fr 1fr}
.seg button{min-height:50px;border-radius:8px;border:0;background:var(--wash);font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.3}
.seg button small{font-size:11px;font-weight:400;color:var(--ink2)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button.on small{color:var(--paper);opacity:.8}
.seg button[disabled]{opacity:.4;cursor:not-allowed}

/* sheet */
.sheet-wrap{position:fixed;inset:0;z-index:50}
.scrim{position:absolute;inset:0;background:rgba(8,12,24,.55);opacity:0;transition:opacity .25s}
.sheet{position:absolute;left:50%;bottom:0;width:100%;max-width:520px;max-height:90%;overflow-y:auto;background:var(--paper);color:var(--ink);
  border-radius:18px 18px 0 0;padding:8px max(18px,env(safe-area-inset-left,0px)) calc(22px + env(safe-area-inset-bottom,0px));
  display:flex;flex-direction:column;gap:14px;transform:translate(-50%,100%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.sheet h2{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:.03em}
.sheet-wrap.in .scrim{opacity:1}
.sheet-wrap.in .sheet{transform:translate(-50%,0)}
.grab{width:40px;height:4px;border-radius:2px;background:var(--rule);margin:4px auto 4px;flex:none}
.blk{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:10px;background:var(--wash)}
.wrapr{display:flex;flex-wrap:wrap;gap:8px}
.bigtime{font-family:var(--mono);font-weight:700;font-size:21px}
.goal.big{font-family:var(--body);font-weight:700;font-size:19px;line-height:1.6}
.ideas{display:flex;flex-direction:column;gap:6px}
.idea{text-align:left;min-height:44px;padding:8px 12px;border-radius:8px;border:0;background:var(--paper);font-size:14px}
.idea.on{background:var(--b0);font-weight:700}
.breath{position:relative;height:150px;display:flex;align-items:center;justify-content:center}
.orb{position:absolute;width:128px;height:128px;border-radius:50%;background:var(--seal);opacity:.2;transform:scale(.55);transition:transform 4s ease-in-out}
.breath .bl{position:relative;font-family:var(--disp);font-weight:700;font-size:24px;fill:none;text-anchor:initial}
.count{font-family:var(--mono);font-weight:700;font-size:34px;text-align:center}
.nl{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:2px}
.note-box{font-size:12.5px;color:var(--ink2);line-height:1.75}

/* nav + toast */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--wash);
  padding:0 max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px))}
.nav-in{max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
.nav button{position:relative;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:6px 2px 7px;color:var(--ink2);min-height:56px;justify-content:center}
.nav-ico{width:24px;height:24px;display:block;margin-bottom:2px}
.nav-ico .knob{fill:var(--wash)}
.nav button.on .nav-ico .knob{fill:var(--wash)}
.nav .lb{font-size:11px;letter-spacing:.02em}
.nav button{color:#8A8A86}
.nav button.on{color:var(--ink);font-weight:700}
.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);width:max-content;max-width:min(440px,calc(100% - 32px));white-space:pre-line;line-height:1.6;
  background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:3px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:60;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}

/* brand (アプリ名) */
.brand{font-family:var(--disp);font-weight:700;font-size:25px;line-height:1.4;letter-spacing:.05em;color:var(--ink);margin:0 0 -10px;text-align:center}
.brand em{font-style:normal;color:var(--seal)}
/* seal picker */
.seals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sealpick{border:0;background:var(--wash);border-radius:10px;padding:10px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.sealpick small{font-size:10.5px;line-height:1.35;color:var(--ink2)}
.sealpick.on{background:var(--b0)}
.sealpick.on small{color:var(--ink);font-weight:700}
.sealpick[disabled]{opacity:.45;cursor:not-allowed}
.mini-seal{width:52px;height:52px}
.mini-seal .sf{opacity:1}.mini-seal .sr{stroke-dasharray:none}.mini-seal .s-in{display:none}.mini-seal text{fill:var(--paper);opacity:1}.mini-seal .hr{display:none}

/* button icons */
.bi{width:20px;height:20px;flex:none}
.lk{display:inline-flex;align-items:center;gap:6px}
.lk .bi{width:18px;height:18px}
.btn.seal .bi{color:var(--seal)}
/* goal */
.goal-btn{display:block;width:100%;text-align:center;background:none;border:0;padding:0;color:inherit;font:inherit;font-size:15.5px;line-height:1.7}
.goal-btn .bi{width:16px;height:16px;vertical-align:-2px;margin-left:6px;color:var(--ink2)}
.goals{display:flex;flex-direction:column;gap:6px}
.gopt{text-align:left;min-height:46px;padding:10px 14px;border-radius:8px;border:0;background:var(--wash);font-size:14.5px}
.gopt.on{background:var(--b0);font-weight:700}
.sheet input[type=text]{background:var(--paper)}
/* theme color swatch */
.sw{display:block;width:18px;height:18px;border-radius:50%;margin-bottom:3px}
/* 3つの操作 */
.acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:10px 4px;border:0;border-radius:10px;background:var(--wash);color:var(--ink);font-weight:700;font-size:13px;line-height:1.3}
.act .bi{width:24px;height:24px}
.act.warm .bi{color:var(--seal)}
.act.go{background:var(--ink);color:var(--paper)}

.acts.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.acts.c4 .act{font-size:12px;cursor:pointer}

/* SNSに投稿 */
.seg.c2{grid-template-columns:1fr 1fr}
.shbox{background:var(--wash);border-radius:10px;padding:10px;display:flex;justify-content:center}
.shimg{display:block;width:100%;max-width:300px;aspect-ratio:1/1;object-fit:contain;border-radius:6px;background:var(--paper)}
.shbox.tall .shimg{max-width:190px;aspect-ratio:9/16}
.done-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding-top:6px}
.done-seal{width:120px;height:120px;transform:rotate(-8deg)}
.done-seal .sf{opacity:1}.done-seal .sr{stroke-dasharray:none}.done-seal .s-in{stroke:var(--paper);fill:none;stroke-width:3;display:block;opacity:.85}.done-seal text{fill:var(--paper);opacity:1}.done-seal .hr{display:none}
.sheet .done-top h2{font-size:24px;line-height:1.45}
.newseal{background:var(--wash);border-radius:8px;padding:8px 12px;font-size:13.5px;font-weight:700;color:var(--wtxt)}
#shtxt{min-height:100px}

/* ---------- 誓いログシリーズで足したもの ---------- */
/* 今日の判子(押したあと/お休み) */
.donebox{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:var(--wash);border-radius:12px;padding:18px 14px 10px}
.donebox .done-seal{width:112px;height:112px}
.db-t{font-family:var(--disp);font-weight:700;font-size:24px;line-height:1.45}
.db-s{font-size:13px;color:var(--ink2)}
.donebox.rest .db-t{color:var(--ink2)}
.muted-lk{color:var(--ink2)}
.pledge.kept{background:var(--b0)}
/* ① 待つリスト */
.moneybar{display:grid;grid-template-columns:1.5fr 1fr 1fr;border:0;background:var(--wash);border-radius:10px;padding:10px 6px;text-align:center;width:100%}
.moneybar span{display:flex;flex-direction:column;min-width:0}
.moneybar small{font-size:11.5px;color:var(--ink2)}
.moneybar b{font-family:var(--mono);font-size:20px;line-height:1.3}
.moneybar span:first-child b{color:var(--wtxt)}
.stats b{font-size:clamp(20px,6.4vw,30px)}
.witem{display:flex;flex-direction:column;gap:8px;background:var(--wash);border-radius:10px;padding:12px 14px}
.witem.ready{background:var(--b0)}
.wi-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.wi-h b{font-size:16px;min-width:0;overflow-wrap:anywhere}
.wi-h span{font-family:var(--mono);font-weight:700;flex:none}
.wi-s{font-size:13px;color:var(--ink2)}
.witem.ready .wi-s{color:var(--ink);font-weight:700}
.witem .lks{justify-content:flex-start}
.whist{display:flex;flex-direction:column}
.whist>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 2px;font-size:14px}
.whist>div+div{background:linear-gradient(var(--wash),var(--wash)) top/100% 1px no-repeat}
.wn{min-width:0;overflow-wrap:anywhere}
.wp{font-family:var(--mono);color:var(--ink2)}
.wtag{font-size:11px;font-weight:700;border-radius:999px;padding:1px 9px}
.wtag.skip{background:var(--b0);color:var(--wtxt)}
.wtag.buy{background:var(--wash);color:var(--ink2)}
.seg button .bi{width:20px;height:20px;margin-bottom:2px}
input[type=text]{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:0;border-radius:8px;padding:10px 12px;min-height:48px;font-size:16px}
textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--wash);border:0;border-radius:8px;padding:10px 12px;min-height:90px;resize:vertical}
.sheet textarea,.blk textarea{background:var(--paper)}
/* ③ メニュー */
.checks{display:flex;flex-direction:column;gap:8px}
.chk{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px;border:0;border-radius:10px;background:var(--wash);text-align:left;font-size:17px;line-height:1.45}
.chk i{flex:none;width:34px;height:34px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center}
.chk.on{background:var(--b0)}
.chk.on i{background:var(--leaf);color:#fff}
.chk.on i .bi{width:22px;height:22px;stroke-width:2.6}
.chk span{min-width:0;overflow-wrap:anywhere}
.mlist{display:flex;flex-direction:column;gap:6px}
.mrow{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;align-items:center;background:var(--wash);border-radius:10px;padding:4px 4px 4px 12px;min-height:56px}
.mn{font-family:var(--mono);font-weight:700;color:var(--wtxt)}
.mt{min-width:0;overflow-wrap:anywhere;font-size:16px}
.ib{border:0;background:none;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--ink2);border-radius:8px}
.blk input[type=text]{background:var(--paper)}
.bar0{fill:var(--wash)}
/* 大きな文字(手指や目の負担を減らす。③で使う) */
body.large{font-size:17px}
body.large .sub,body.large .note-box,body.large .legend{font-size:15px}
body.large .muted{font-size:14px}
body.large .btn{font-size:16px;min-height:54px}
body.large .act{font-size:15px;min-height:84px}
body.large .act .bi{width:28px;height:28px}
body.large .goal,body.large .goal-btn{font-size:18px}
body.large .pl-t{font-size:18px}
body.large .pledge{grid-template-columns:1fr 112px}
body.large .seal-btn{width:112px;height:112px}
body.large .nav .lb{font-size:12px}
body.large .toast{font-size:16px}
.urlrow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
input[type=url]{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:0;border-radius:8px;padding:10px 12px;min-height:48px;font-size:16px}
a.btn{text-decoration:none}
.wlink{border:0;background:none;padding:0;font:inherit;color:var(--wtxt);text-decoration:underline;text-align:left}
/* ① 考えて決める(理由3つ+〇✖) */
.reasons{display:flex;flex-direction:column;gap:6px}
.qs{display:flex;flex-direction:column;gap:6px}
.q{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:var(--paper);border-radius:8px;padding:8px 8px 8px 12px}
.qt{font-size:14.5px;line-height:1.5;min-width:0}
.ox{display:flex;gap:6px}
.ox button{width:48px;height:48px;border:0;border-radius:50%;background:var(--wash);font-size:20px;font-weight:700;color:var(--ink2)}
.ox .o.on{background:var(--leaf);color:#fff}
.ox .x.on{background:var(--ink);color:var(--paper)}
.qsum{font-size:14px;font-weight:700;color:var(--wtxt);line-height:1.6}
/* 待つリスト:押して開く・✖で消す */
.witem{cursor:pointer}
.wi-h{align-items:center}
.wdel{flex:none;width:40px;height:40px;margin:-6px -8px -6px 0;border:0;background:none;color:var(--ink2);font-size:16px;border-radius:50%}
.wi-go{font-size:12.5px;color:var(--wtxt);font-weight:700}
.whist>.wrow{grid-template-columns:auto 1fr auto auto;cursor:pointer}
.whist .wdel{margin:-8px -6px}
/* SNS:パターンと投稿する先 */
.seg.pat button{min-height:46px}
.snsg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.snsb{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;min-height:62px;padding:8px 12px;border:0;border-radius:10px;background:var(--paper)}
.snsi{grid-row:1/3;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.snsi svg{width:24px;height:24px;display:block}
.snsb b{font-size:15px;line-height:1.3}
.snsb small{font-size:11px;color:var(--ink2);line-height:1.3}
/* ---------- 今日の画面(デザインの決まりごと 2026-10-21) ----------
   主役は大きな判子1つ。テーマ色は「連続日数の数字」と「今週の判子の丸」の2か所だけ */
.apphead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px}
.apphead b{font-weight:700;min-width:0}
.apphead span{flex:none;color:var(--ink2);font-weight:700}
.goal-btn{font-size:15px;color:var(--ink2);margin-top:-14px}
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:4px 0 8px}
.hero-k{font-size:13px;font-weight:700;color:var(--ink2);letter-spacing:.1em}
.hero .seal-btn,.hero .hero-seal{width:176px;height:176px;margin:6px 0 4px}
.hero .hero-seal{transform:rotate(-8deg)}
.hero-t{font-size:21px;font-weight:700;line-height:1.5;max-width:20em}
.hero-t b{font-weight:700}
.hero-h{font-size:14px;color:var(--ink2);font-weight:700}
.restmark{width:176px;height:176px;margin:6px 0 4px;border-radius:50%;background:var(--wash);display:flex;align-items:center;justify-content:center;font-size:72px;font-weight:700;color:var(--ink2)}
.streak{background:var(--wash);border-radius:16px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:14px}
.st-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.st-n{display:flex;align-items:baseline;gap:6px}
.st-n b{font-size:52px;font-weight:700;line-height:1;color:var(--wtxt);font-variant-numeric:tabular-nums}
.st-n span{font-size:17px;font-weight:700}
.st-next{font-size:12.5px;color:var(--ink2);text-align:right;line-height:1.5}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.wk span{display:block;font-size:12px;font-weight:700;color:var(--ink2)}
.wk i{width:34px;height:34px;margin:4px auto 0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper);font-style:normal;font-size:13px;font-weight:700;color:var(--ink2)}
.wk.done i{background:var(--leaf);color:#fff}
.wk.done i .bi{width:20px;height:20px;stroke-width:2.6}
.wk.now i{background:var(--b0);outline:2px solid var(--leaf);outline-offset:-2px}
.wk.fut i{background:transparent}
.moneybar{background:var(--wash);border-radius:16px;padding:14px 6px}
.moneybar span:first-child b{color:var(--ink)}
.moneybar b{font-size:22px;font-weight:700}
.moneybar small{font-size:12px;font-weight:700}
.acts.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.acts.two .act{flex-direction:row;gap:8px;min-height:56px;font-size:15px;border-radius:12px}
.acts.two .act .bi{width:22px;height:22px}
.wrap>.lks{margin-top:-14px}
body.large .hero .seal-btn,body.large .hero .hero-seal,body.large .restmark{width:188px;height:188px}
body.large .hero-t{font-size:22px}
.hero .lk{color:var(--ink)}

/* ---------- 箱(白)とその中身(2026-10-21) ----------
   まとまりは白い箱(.card)に入れる。箱の中で、さらに区切る物は地の色(--paper)にする(白に白で消えないように) */
.card{background:var(--wash);border-radius:16px;padding:16px}
.card.warn{padding:16px}
.card.warn h2{color:var(--ink)}
.card .witem:not(.ready),.card .mrow,.card .chk:not(.on),.card .btn.quiet,.card .seg button:not(.on),.card .act:not(.go),.card textarea,
.card .sealpick:not(.on),.card .blk,.card input[type=text],.card .delta div,
.blk .btn.quiet,.blk .seg button:not(.on){background:var(--paper)}
.card .act.warm{background:var(--paper)}
.wrap>header.head h1{font-size:26px}
.wi-go{color:var(--ink2)}
.stats{background:var(--wash);border-radius:16px;padding:6px 4px}
.card .stats{background:none;padding:0}
.stats b{font-weight:700}
/* つながるカレンダー:続いた日が帯でつながる(スタンプ帳の主役) */
.band{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:8px;text-align:center}
.band .bw{font-size:12px;font-weight:700;color:var(--ink2);padding-bottom:2px}
.band .bd{height:40px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--ink2);margin:0 -0.5px}
.band .bd.on{background:var(--leaf);color:#fff;border-radius:20px;margin:0 3px}
.band .bd.on.jl{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-0.5px}
.band .bd.on.jr{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-0.5px}
.band .bd.rest span{width:34px;height:34px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;font-size:13px}
.band .bd.now:not(.on) span{width:34px;height:34px;border-radius:50%;outline:2px solid var(--leaf);outline-offset:-2px;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.band .bd.fut{color:#B9BAB6;font-weight:400}
.band .bd small{font-size:10px;margin-right:1px}
.bandlg{display:flex;gap:16px;font-size:12.5px;font-weight:700;color:var(--ink2)}
.bandlg i{display:inline-block;width:22px;height:10px;border-radius:5px;background:var(--leaf);margin-right:6px;vertical-align:0}
.bandlg i.r{width:10px;background:var(--paper);outline:1.5px solid #B9BAB6}
/* 今週のリング */
.ringrow{display:flex;align-items:center;gap:18px}
.ringrow svg{width:96px;height:96px;flex:none}
.ringrow .rg-t{fill:none;stroke:var(--paper);stroke-width:12}
.ringrow .rg-v{fill:none;stroke:var(--leaf);stroke-width:12;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}
.ringrow .rg-n{font-size:26px;font-weight:700;fill:var(--ink);text-anchor:middle}
.ringrow p{font-size:15px;font-weight:700;line-height:1.6}
.ringrow p small{display:block;font-size:13px;color:var(--ink2)}
/* 達成の瞬間:画面いっぱいに祝う(ゲーム風) */
.done-top.celebrate .done-seal{width:150px;height:150px;animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}
.done-big{display:flex;align-items:baseline;gap:6px;justify-content:center}
.done-big b{font-size:64px;font-weight:700;line-height:1;color:var(--wtxt)}
.done-big span{font-size:20px;font-weight:700}
@keyframes pop{0%{transform:scale(.3) rotate(-30deg);opacity:0}100%{transform:scale(1) rotate(-8deg);opacity:1}}
.sheet>.btn.primary{margin-top:4px}
/* 待つリストの記録:線で区切らず、1行ずつ地の色の帯にする */
.whist{gap:6px}
.whist>.wrow{background:var(--paper);border-radius:10px;padding:8px 6px 8px 10px}
.whist>div+div{background:var(--paper)}
.witem{gap:6px}
.wi-h b{font-size:17px}
/* 設定:判子の選択・テーマ色を、白い箱の中で見えるように */
.card .seals .sealpick.on{background:var(--b0)}
.card .seg button.on{background:var(--ink);color:var(--paper)}
