:root{
  --ground:#FAF7F5; --surface:#FFFFFF; --surface-2:#F4EEEF; --field:#FFFFFF;
  --ink:#241C20; --muted:#7C6F75; --line:#E4D9DC; --line-strong:#CFBFC5;
  --accent:#8E3B5C; --accent-soft:#F5E7EC; --on-accent:#FFFFFF;
  --positive:#2F6B5E; --positive-soft:#E4EFEB;
  --warn:#A2662A; --warn-soft:#F6EBDE;
  --danger:#9B3226; --danger-soft:#F7E5E2;
  --shadow:0 1px 2px rgba(36,28,32,.05), 0 8px 24px -18px rgba(36,28,32,.35);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#161114; --surface:#1F181B; --surface-2:#291F24; --field:#15100F;
    --ink:#F1E7EA; --muted:#A2939A; --line:#372B30; --line-strong:#4C3B42;
    --accent:#E896AF; --accent-soft:#3A232C; --on-accent:#1A1013;
    --positive:#7FC0AE; --positive-soft:#1E332E;
    --warn:#D9A468; --warn-soft:#33261A;
    --danger:#E8907F; --danger-soft:#3A211C;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -18px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --ground:#161114; --surface:#1F181B; --surface-2:#291F24; --field:#15100F;
  --ink:#F1E7EA; --muted:#A2939A; --line:#372B30; --line-strong:#4C3B42;
  --accent:#E896AF; --accent-soft:#3A232C; --on-accent:#1A1013;
  --positive:#7FC0AE; --positive-soft:#1E332E;
  --warn:#D9A468; --warn-soft:#33261A;
  --danger:#E8907F; --danger-soft:#3A211C;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -18px rgba(0,0,0,.8);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ground);color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic UI",system-ui,sans-serif;
  font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;margin:0;text-wrap:balance}
p{margin:0}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(142,59,92,.35)}
a:hover{border-bottom-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none !important}

/* ---------- ログイン ---------- */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.login{width:100%;max-width:390px;background:var(--surface);border:1px solid var(--line);
  border-radius:5px;box-shadow:var(--shadow);padding:30px 26px 26px}
.login .brand{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:700}
.login h1{font-size:24px;margin:10px 0 6px}
.login .lead{font-size:13px;color:var(--muted);margin-bottom:22px;line-height:1.75}

/* ---------- 全体レイアウト ---------- */
.shell{display:grid;grid-template-columns:1fr;min-height:100vh}
@media(min-width:900px){.shell{grid-template-columns:232px minmax(0,1fr)}}
.side{border-right:1px solid var(--line);background:var(--surface);padding:22px 16px;display:flex;flex-direction:column;gap:20px}
@media(max-width:899px){.side{border-right:none;border-bottom:1px solid var(--line)}}
.side .brand{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:700}
.side h1{font-size:17px;line-height:1.45;margin-top:8px}
nav.tabs{display:flex;flex-direction:column;gap:3px}
@media(max-width:899px){nav.tabs{flex-direction:row;flex-wrap:wrap}}
nav.tabs button{text-align:left;background:none;border:none;border-radius:3px;padding:9px 11px;font:inherit;
  font-size:14px;color:var(--muted);cursor:pointer;line-height:1.5}
nav.tabs button:hover{background:var(--surface-2);color:var(--ink)}
nav.tabs button[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:700}
.side .foot{margin-top:auto;font-size:12px;color:var(--muted);line-height:1.7}
.side .foot button{background:none;border:none;color:var(--muted);font:inherit;font-size:12px;
  cursor:pointer;padding:0;text-decoration:underline}
.side .foot button:hover{color:var(--accent)}
main{padding:26px 22px 90px;max-width:920px}

/* ---------- 部品 ---------- */
.page-h{padding-bottom:18px;border-bottom:1px solid var(--line-strong);margin-bottom:22px}
.page-h h2{font-size:clamp(22px,3.6vw,28px);line-height:1.35}
.page-h p{margin-top:12px;color:var(--muted);font-size:14px;max-width:62ch}

section{margin-bottom:22px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow)}
.phead{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.phead h3{font-size:15px;font-weight:700;letter-spacing:.03em}
.phead .hint{font-size:11.5px;color:var(--muted)}
.pbody{padding:18px}

label.lab{display:block;font-size:11.5px;letter-spacing:.06em;color:var(--muted);font-weight:500;margin-bottom:6px}
select,input{width:100%;padding:9px 11px;font:inherit;font-size:14px;background:var(--field);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:3px;font-variant-numeric:tabular-nums}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}
.row{display:grid;gap:12px}
.row + .row{margin-top:12px}
@media(min-width:640px){
  .row.c2{grid-template-columns:1fr 1fr}
  .row.c3{grid-template-columns:1fr 1fr 1fr}
  .row.c4{grid-template-columns:1fr 1fr 1fr 1fr}
}

button.btn{font:inherit;cursor:pointer;border-radius:3px;border:1px solid var(--line-strong);
  background:var(--surface-2);color:var(--ink);padding:9px 15px;font-size:13.5px}
button.btn:hover{border-color:var(--accent)}
button.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}
button.btn.primary:hover{opacity:.9}
button.btn.primary:disabled{opacity:.5;cursor:default}
button.btn.wide{width:100%;padding:11px}
button.ghost{background:none;border:none;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;padding:4px 6px}
button.ghost:hover{color:var(--accent)}
.btnrow{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}

.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:2px;letter-spacing:.05em;
  line-height:1.7;font-weight:500;white-space:nowrap}
.tag.on{background:var(--positive-soft);color:var(--positive)}
.tag.paper{background:var(--warn-soft);color:var(--warn)}
.tag.only,.tag.sitter,.tag.you{background:var(--accent-soft);color:var(--accent)}
.tag.city,.tag.co{background:var(--positive-soft);color:var(--positive)}
.tag.self{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.tag.hard{background:var(--danger-soft);color:var(--danger);font-weight:700}

.alert{padding:11px 14px;border-radius:3px;font-size:13px;line-height:1.75;border-left:2px solid;margin-top:14px}
.alert:first-child{margin-top:0}
.alert.warn{background:var(--warn-soft);border-color:var(--warn)}
.alert.info{background:var(--surface-2);border-color:var(--line-strong);color:var(--muted)}
.alert.ok{background:var(--positive-soft);border-color:var(--positive)}
.alert.danger{background:var(--danger-soft);border-color:var(--danger)}

.facts{margin-top:12px;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.facts > div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:9px 13px;
  border-bottom:1px solid var(--line);font-size:13.5px;align-items:baseline}
.facts > div:last-child{border-bottom:none}
.facts dt{color:var(--muted);font-size:11.5px;letter-spacing:.05em}
.facts dd{margin:0;line-height:1.75}

.meters{display:grid;gap:12px}
.meter{border:1px solid var(--line);border-radius:3px;padding:12px 14px;background:var(--surface-2)}
.meter .mh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px;flex-wrap:wrap}
.meter .mh span{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px}
.track{height:7px;border-radius:99px;background:var(--line);margin-top:9px;overflow:hidden}
.track i{display:block;height:100%;background:var(--accent)}
.track i.tk{background:var(--positive)}
.track i.high{background:var(--warn)}

.tablewrap{overflow-x:auto;margin-top:4px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:11px;letter-spacing:.06em;color:var(--muted);font-weight:500}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:var(--surface-2)}
.empty{padding:26px 4px;text-align:center;color:var(--muted);font-size:13.5px}

.totals{display:grid;gap:10px;margin-top:14px}
@media(min-width:560px){.totals{grid-template-columns:repeat(4,1fr)}}
.tot{background:var(--accent-soft);border-radius:3px;padding:12px 14px}
.tot.g{background:var(--positive-soft)}
.tot .k{font-size:11px;letter-spacing:.08em;color:var(--accent);font-weight:700}
.tot.g .k{color:var(--positive)}
.tot .v{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:21px;
  font-variant-numeric:tabular-nums;line-height:1.3;margin-top:2px}

ul.check{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:2px}
ul.check li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
ul.check li:last-child{border-bottom:none}
ul.check input{width:auto;margin-top:7px;accent-color:var(--accent)}
ul.check .t{font-size:14px;font-weight:700;line-height:1.6;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
ul.check .g{font-size:12.5px;color:var(--muted);line-height:1.7;margin-top:2px}
ul.check li.done .t{opacity:.45;text-decoration:line-through}

ol.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:14px}
ol.steps li{counter-increment:s;display:grid;grid-template-columns:26px minmax(0,1fr);gap:13px}
ol.steps li::before{content:counter(s);font-family:"Zen Old Mincho",serif;font-weight:700;font-size:13px;
  color:var(--accent);border:1px solid var(--line-strong);border-radius:50%;width:26px;height:26px;
  display:grid;place-items:center;margin-top:2px}
ol.steps h4{margin:0 0 2px;font-size:14px;font-weight:700}
ol.steps p{font-size:13.5px;color:var(--muted)}

.dl{display:grid;gap:11px}
.dlrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;
  background:var(--danger-soft);border-left:2px solid var(--danger);border-radius:0 3px 3px 0;padding:13px 15px}
.dlrow h4{margin:0 0 3px;font-size:14.5px;font-weight:700;line-height:1.55;font-family:"Zen Old Mincho",serif}
.dlrow p{font-size:13px;color:var(--muted);line-height:1.75}
.dlrow .when{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:14px;text-align:right;
  white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--danger)}

.money{border:1px solid var(--line);border-radius:3px;overflow:hidden}
.mrow{display:grid;grid-template-columns:minmax(0,1fr) 148px;gap:14px;padding:13px 15px;
  border-bottom:1px solid var(--line);align-items:baseline}
.mrow:last-child{border-bottom:none}
.mrow h4{margin:0 0 2px;font-size:14.5px;font-weight:700;line-height:1.55;font-family:"Zen Old Mincho",serif}
.mrow p{font-size:12.5px;color:var(--muted);line-height:1.75}
.mrow .amt{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:16px;text-align:right;
  font-variant-numeric:tabular-nums;line-height:1.5}
.mrow .amt small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:11px;
  font-weight:400;color:var(--muted);margin-top:1px}
.grp{padding:10px 15px;background:var(--accent-soft);font-size:12px;letter-spacing:.08em;
  font-weight:700;color:var(--accent);border-bottom:1px solid var(--line)}
.grp .gnote{display:block;margin-top:3px;font-size:11.5px;font-weight:400;letter-spacing:0;
  color:var(--muted);line-height:1.7}
.mrow .tag.hard{margin-left:7px;vertical-align:2px}
.mrow .due{margin:5px 0 0}
.mrow .due.soft{color:var(--muted);font-weight:400}
.nophase{color:var(--muted)}
dl.howto > div.gets{background:var(--accent-soft)}
dl.howto > div.gets dd b{font-family:"Zen Old Mincho",serif;font-size:15px;color:var(--accent);
  font-variant-numeric:tabular-nums}
dl.howto > div.gets dd .amtS{margin-left:8px;font-size:11.5px;color:var(--muted)}
dl.howto > div.gets.cost{background:var(--surface-2)}
dl.howto > div.gets.cost dd b{color:var(--ink)}
.mrow dl.howto{margin-top:9px}
@media (max-width:560px){
  .mrow{grid-template-columns:1fr;gap:6px}
  .mrow .amt{text-align:left;order:-1}
  .mrow .amt small{display:inline;margin-left:8px}
}

/* 出産ガイドのフェーズ切り替え */
nav.subtabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
nav.subtabs button{
  font:inherit;font-size:13px;line-height:1.5;cursor:pointer;
  background:var(--surface);color:var(--muted);
  border:1px solid var(--line);border-radius:99px;padding:7px 14px;
  display:inline-flex;align-items:center;gap:7px;transition:border-color .12s,background .12s,color .12s}
nav.subtabs button:hover{border-color:var(--line-strong);color:var(--ink)}
nav.subtabs button[aria-current="true"]{
  background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
nav.subtabs button .n{
  font-size:11px;font-variant-numeric:tabular-nums;
  background:var(--surface-2);color:var(--muted);border-radius:99px;padding:1px 7px}
nav.subtabs button[aria-current="true"] .n{background:rgba(255,255,255,.22);color:var(--on-accent)}
nav.subtabs button.done .n{background:var(--positive-soft);color:var(--positive)}
nav.subtabs button[aria-current="true"].done .n{background:rgba(255,255,255,.22);color:var(--on-accent)}
/* フェーズ内のグループ（これから／手続き済み／不要） */
.tgroup{margin-top:20px}
.tgroup:first-of-type{margin-top:0}
.tgroup h5{
  margin:0 0 6px;font-family:"Zen Old Mincho",serif;font-size:13px;font-weight:700;
  letter-spacing:.08em;color:var(--accent);display:flex;align-items:baseline;gap:8px}
.tgroup h5 span{font-family:"Zen Kaku Gothic New",sans-serif;font-size:11.5px;font-weight:400;color:var(--muted);letter-spacing:0}
.tgroup.muted h5{color:var(--muted)}

li.task{align-items:start;padding:14px 0}
li.task.hard{
  background:var(--danger-soft);border-left:2px solid var(--danger);
  border-radius:0 3px 3px 0;padding:14px 14px 14px 12px;margin-bottom:2px}
li.task.hard + li.task.hard{margin-top:6px}
li.task .t{font-size:14.5px}
li.task.shrunk{padding:9px 0;align-items:center}
li.task.shrunk .t{font-size:13.5px;font-weight:400;color:var(--muted)}
li.task.shrunk.done .t{text-decoration:line-through}
li.task .skipmark{color:var(--muted);text-align:center;font-size:13px;line-height:1.6}

dl.howto{margin:10px 0 0;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--surface)}
dl.howto > div{
  display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;
  padding:8px 12px;border-bottom:1px solid var(--line);align-items:baseline}
dl.howto > div:last-child{border-bottom:none}
dl.howto dt{font-size:11px;letter-spacing:.05em;color:var(--muted);white-space:nowrap}
dl.howto dd{margin:0;font-size:12.5px;line-height:1.8}

li.task .acts{margin-top:8px}
li.task.shrunk .acts{margin-top:2px}
li.task .acts button{
  font:inherit;font-size:11.5px;cursor:pointer;background:none;color:var(--muted);
  border:1px solid var(--line);border-radius:99px;padding:3px 11px}
li.task .acts button:hover{border-color:var(--accent);color:var(--accent)}

.phase-nav{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
.phase-nav button{
  font:inherit;font-size:13px;cursor:pointer;background:var(--surface-2);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:3px;padding:9px 15px}
.phase-nav button:hover{border-color:var(--accent)}
.phase-nav button:disabled{opacity:.35;cursor:default}

.phase{border-top:1px solid var(--line-strong);padding:20px 0 4px}
.phase:first-of-type{border-top:none;padding-top:4px}
.phase-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.phase-h h4{margin:0;font-size:17px;font-weight:700;font-family:"Zen Old Mincho",serif}
.phase-h .date{font-size:12.5px;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}
.phase > p.intro{font-size:13.5px;color:var(--muted);margin-bottom:12px}
.due{font-size:12px;color:var(--danger);font-weight:700;font-variant-numeric:tabular-nums;margin-top:3px}

.progress{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--muted);margin-bottom:14px}
.progress .bar{flex:1;height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.progress .bar i{display:block;height:100%;background:var(--positive)}

.pw-box{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:3px;
  padding:14px 16px;margin-top:14px;font-variant-numeric:tabular-nums}
.pw-box code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;font-weight:700;
  letter-spacing:.06em;user-select:all}

footer.note{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--muted);line-height:1.9}
footer.note b{color:var(--ink)}

/* シッター会社の一覧 */
.sitters{display:grid;gap:14px}
.sitter{border:1px solid var(--line);border-radius:3px;padding:14px 15px;background:var(--surface)}
.sitter .sh{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between}
.sitter h4{margin:0;font-size:15.5px;font-weight:700;font-family:"Zen Old Mincho",serif}
.sitter h4 a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line-strong)}
.sitter h4 a:hover{border-bottom-color:var(--accent)}
.sitter .tags{display:flex;flex-wrap:wrap;gap:5px}
.sitter .co{margin:3px 0 0;font-size:11.5px;color:var(--muted)}
.sitter dl.howto{margin-top:11px}
dl.howto > div.cav{background:var(--warn-soft)}
dl.howto > div.cav dt{color:var(--warn)}
ul.picks{list-style:none;margin:0;padding:0;display:grid;gap:2px}
ul.picks li{padding:12px 14px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
ul.picks .q{font-size:12px;letter-spacing:.04em;color:var(--muted)}
ul.picks .a{margin-top:3px;font-family:"Zen Old Mincho",serif;font-size:15px;font-weight:700;
  color:var(--accent);line-height:1.6}
ul.picks .why{margin-top:5px;font-size:12.5px;line-height:1.85;color:var(--muted)}
nav.subtabs .n{margin-left:7px;font-size:11px;color:var(--muted)}
nav.subtabs button[aria-current="true"] .n{color:inherit;opacity:.75}

/* ==================================================================
   スマホでの崩れ対策
   iOSのSafariは date / time / month の入力欄に独自の幅を持たせるため、
   width:100% を指定しても枠からはみ出す。appearance を消して抑え込む。
   ================================================================== */
input[type="date"], input[type="time"], input[type="month"], input[type="datetime-local"]{
  -webkit-appearance:none; appearance:none;
  display:block; width:100%; min-width:0; max-width:100%;
  min-height:40px; text-align:left;
}
input[type="date"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value{
  text-align:left; margin:0; min-height:20px;
}
input::-webkit-datetime-edit{padding:0}
input::-webkit-calendar-picker-indicator{margin-left:auto}

/* グリッドの子が中身の最小幅で押し広げられるのを止める */
.shell, main, .panel, .pbody, .row, .row > div, .meters, .meter,
.sitters, .sitter, ul.picks li, .tgroup, li.task, li.task > div{ min-width:0 }
.row > div{ max-width:100% }

/* はみ出しやすいものを内側で収める */
.tablewrap{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%}
dl.howto dd, .mrow p, .sitter dl.howto dd{overflow-wrap:anywhere}
.facts dd, .facts dt{overflow-wrap:anywhere}
pre, code{white-space:pre-wrap; overflow-wrap:anywhere}

@media(max-width:560px){
  main{padding:20px 14px 80px}
  .pbody{padding:14px}
  .phead{padding:12px 14px}
  .side{padding:16px 14px}
  dl.howto > div{grid-template-columns:1fr; gap:2px; padding:9px 11px}
  dl.howto dt{font-size:10.5px}
  .sitter .sh{flex-direction:column; gap:6px}
  .mrow{grid-template-columns:1fr}
  nav.subtabs button{font-size:12.5px; padding:7px 11px}
  .btnrow button.btn{flex:1 1 auto}
}

/* ---------- 2つの制度をまず知る ---------- */
.twoup{display:grid;gap:14px}
@media(min-width:720px){.twoup{grid-template-columns:1fr 1fr}}
.twoup .card{border:1px solid var(--line);border-radius:4px;padding:15px 16px;min-width:0}
.twoup .card.t-ticket{background:var(--positive-soft);border-color:var(--positive)}
.twoup .card.t-city{background:var(--accent-soft);border-color:var(--accent)}
.twoup .k{font-size:11px;letter-spacing:.1em;font-weight:700;opacity:.85}
.twoup .t-ticket .k{color:var(--positive)}
.twoup .t-city .k{color:var(--accent)}
.twoup h4{margin:4px 0 0;font-family:"Zen Old Mincho",serif;font-size:14.5px;line-height:1.6}
.twoup .big{margin-top:10px;font-family:"Zen Old Mincho",serif;font-size:26px;font-weight:700;
  line-height:1.2;font-variant-numeric:tabular-nums}
.twoup .t-ticket .big{color:var(--positive)}
.twoup .t-city .big{color:var(--accent)}
.twoup .sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.twoup ul{margin:12px 0 0;padding-left:1.15em;font-size:13px;line-height:1.85}
.twoup li{margin-bottom:4px}

.flow{margin-top:14px;display:grid;gap:10px}
.flow .fq{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:14.5px;
  padding:9px 13px;background:var(--surface-2);border-radius:3px}
.flow .fa{display:grid;gap:8px}
@media(min-width:640px){.flow .fa{grid-template-columns:1fr 1fr}}
.flow .fa > div{border:1px solid var(--line);border-left-width:3px;border-radius:0 3px 3px 0;
  padding:10px 13px;min-width:0}
.flow .yes{border-left-color:var(--positive)}
.flow .no{border-left-color:var(--line-strong)}
.flow .fa b{font-size:13px}
.flow .fa p{margin-top:4px;font-size:12.5px;color:var(--muted);line-height:1.8}

table.cmp{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
table.cmp th,table.cmp td{border:1px solid var(--line);padding:9px 11px;text-align:left;
  vertical-align:top;line-height:1.75}
table.cmp thead th{background:var(--surface-2);font-size:12.5px;white-space:nowrap}
table.cmp tbody th{background:var(--surface-2);font-size:12px;color:var(--muted);
  font-weight:500;white-space:nowrap;width:1%}

dl.qa{margin:0;display:grid;gap:2px}
dl.qa > div{border:1px solid var(--line);border-radius:3px;padding:12px 14px}
dl.qa dt{font-family:"Zen Old Mincho",serif;font-weight:700;font-size:14px;line-height:1.65}
dl.qa dd{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.9}

button.lnk{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;
  border-bottom:1px solid rgba(142,59,92,.35)}
button.lnk:hover{border-bottom-color:var(--accent)}

/* ---------- 当日の動き（タイムライン） ---------- */
.tl{display:grid;gap:2px}
.tl > div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start;
  border:1px solid var(--line);border-radius:3px;padding:12px 14px}
.tl span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--accent);color:var(--on-accent);font-size:12.5px;font-weight:700;line-height:1}
.tl b{font-size:14px;font-family:"Zen Old Mincho",serif;line-height:1.6}
.tl p{margin-top:4px;font-size:12.5px;color:var(--muted);line-height:1.85}
