/* CAPSULE ROOM v0.2 — 仕事の部屋の画面。
   方針: 墨と紙の中間色＋一色(深い青緑)だけ。角は小さく、区切りは罫線。声の画面は明暗どちらでも暗い「字幕の舞台」。
   スマホ縦が主・900px以上は左に縦のメニュー。外部フォント/CDN無し。 */
:root{
  --bg:#f3f3f1; --surface:#ffffff; --surface-2:#ebeae6; --line:#dcdad4; --line-strong:#c4c1b9;
  --ink:#17191c; --ink-2:#4a4e55; --ink-3:#767b83;
  --accent:#0b6e69; --accent-ink:#ffffff; --accent-soft:#deedea; --accent-line:#9cc9c3;
  --agent:#93600f; --agent-soft:#f5ead6; --agent-line:#ddbf8a;
  --ok:#2c7a4b; --warn:#9a6400; --err:#b3261e; --err-soft:#fbe9e7;
  --stage:#0d0f11; --stage-2:#16191c; --stage-line:#272b30; --stage-ink:#eceef0; --stage-dim:#8d939a;
  --r:6px; --tabh:60px; --rail:96px;
  --font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0e1012; --surface:#16191c; --surface-2:#1d2125; --line:#2a2f35; --line-strong:#3b4249;
    --ink:#e8eaed; --ink-2:#b3b8bf; --ink-3:#848a92;
    --accent:#4fb3a9; --accent-ink:#04201d; --accent-soft:#132e2b; --accent-line:#2b6a63;
    --agent:#e2a94e; --agent-soft:#2a2214; --agent-line:#6b5226;
    --ok:#5cc98a; --warn:#e2a94e; --err:#ff8a80; --err-soft:#3a1d1b;
    --stage:#0a0c0d; --stage-2:#121518;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0e1012; --surface:#16191c; --surface-2:#1d2125; --line:#2a2f35; --line-strong:#3b4249;
  --ink:#e8eaed; --ink-2:#b3b8bf; --ink-3:#848a92;
  --accent:#4fb3a9; --accent-ink:#04201d; --accent-soft:#132e2b; --accent-line:#2b6a63;
  --agent:#e2a94e; --agent-soft:#2a2214; --agent-line:#6b5226;
  --ok:#5cc98a; --warn:#e2a94e; --err:#ff8a80; --err-soft:#3a1d1b;
  --stage:#0a0c0d; --stage-2:#121518;
  color-scheme:dark;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;margin:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  background:var(--bg);color:var(--ink);font-family:var(--font);
  font-size:16px;line-height:1.55;overflow:hidden;height:100dvh;
  font-feature-settings:"palt" 0;
}
button,input,textarea{font-family:inherit;color:inherit;font-size:inherit;}
button{cursor:pointer;}
button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
a{color:var(--accent);}
svg{flex:none;}
[hidden]{display:none!important;}

/* ---- 骨格: スマホ=下にメニュー / PC=左に縦メニュー ---- */
.shell{height:100%;display:flex;flex-direction:column-reverse;padding-top:env(safe-area-inset-top);}
#views{flex:1;min-height:0;position:relative;min-width:0;}
.view{position:absolute;inset:0;display:none;flex-direction:column;min-height:0;background:var(--bg);}
.view.on{display:flex;}
.view.overlay{display:flex;z-index:30;}

nav.tabs{
  flex:none;display:flex;background:var(--surface);border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);
}
nav.tabs .mark{display:none;}
nav.tabs button{
  flex:1;min-height:var(--tabh);background:none;border:none;color:var(--ink-3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:11.5px;font-weight:600;letter-spacing:.02em;position:relative;padding:6px 0 4px;
}
nav.tabs button svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
nav.tabs button::before{content:"";position:absolute;top:-1px;left:28%;right:28%;height:2px;background:transparent;}
nav.tabs button.on{color:var(--ink);}
nav.tabs button.on::before{background:var(--accent);}
nav.tabs .dot{position:absolute;top:7px;left:calc(50% + 7px);min-width:18px;height:18px;border-radius:9px;background:var(--err);color:#fff;font-size:11px;font-style:normal;font-weight:700;display:none;align-items:center;justify-content:center;padding:0 5px;}
nav.tabs .dot.show{display:flex;}

@media (min-width:900px){
  .shell{flex-direction:row;}
  nav.tabs{flex-direction:column;width:var(--rail);border-top:none;border-right:1px solid var(--line);padding:14px 0 calc(14px + env(safe-area-inset-bottom));gap:4px;}
  nav.tabs .mark{display:flex;flex-direction:column;align-items:center;gap:0;margin:0 0 18px;font-size:9.5px;letter-spacing:.22em;color:var(--ink-3);line-height:1.3;}
  nav.tabs .mark b{font-size:13px;letter-spacing:.24em;color:var(--ink);}
  nav.tabs button{flex:none;min-height:68px;}
  nav.tabs button::before{top:22%;bottom:22%;left:0;right:auto;width:2px;height:auto;}
}

/* ---- 上のバー ---- */
.bar{flex:none;display:flex;align-items:center;gap:10px;padding:8px 16px;min-height:56px;border-bottom:1px solid var(--line);background:var(--bg);}
.bar h1{font-size:17px;margin:0;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;}
.tag{flex:none;font-size:12px;font-weight:600;padding:3px 8px;border:1px solid var(--line-strong);border-radius:3px;color:var(--ink-2);white-space:nowrap;letter-spacing:.02em;}
.tag.claude{border-color:var(--accent-line);color:var(--accent);}
.iconbtn{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);border-radius:var(--r);}
.iconbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.roombtn{flex:1;min-width:0;display:flex;align-items:center;gap:4px;background:none;border:none;padding:8px 0;min-height:44px;font-size:17px;font-weight:700;text-align:left;}
.roombtn .rn{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.roombtn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6;}

/* ---- 声: 明暗どちらでも暗い舞台(字幕を読みやすく) ---- */
.view.stage{background:var(--stage);color:var(--stage-ink);}
.stage .bar{background:var(--stage);border-bottom-color:var(--stage-line);}
.stage .tag{border-color:#3a4047;color:#c9cdd2;}
.stage .iconbtn{border-color:#30353b;color:var(--stage-ink);}
.meterline{flex:none;padding:6px 16px;font-size:12.5px;color:var(--stage-dim);border-bottom:1px solid var(--stage-line);font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.meterline b{color:var(--stage-ink);font-weight:600;}
#subs{
  --subc:#ffe14d;
  flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;
  padding:18px 20px 12px;gap:18px;scroll-behavior:smooth;overscroll-behavior:contain;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 10%);mask-image:linear-gradient(to bottom,transparent 0,#000 10%);
}
#subs > :first-child{margin-top:auto;}
.ln{font-size:clamp(22px,6.2vw,30px);line-height:1.5;font-weight:600;word-break:break-word;overflow-wrap:anywhere;opacity:.5;transition:opacity .25s;}
.ln .who{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;margin-bottom:2px;color:var(--stage-dim);}
.ln.ai .tx{color:var(--subc);}
.ln.user .tx{color:#d9dde1;}
.ln.ai .who{color:var(--subc);opacity:.8;}
.ln.last{opacity:1;}
.ln.partial .tx{opacity:.7;}
.ln.partial .tx::after{content:"";display:inline-block;width:.45em;height:.9em;vertical-align:-.08em;margin-left:4px;background:currentColor;opacity:.5;animation:blink 1s steps(2) infinite;}
.ln.unheard .tx{color:var(--stage-dim)!important;font-style:italic;font-weight:400;}
@keyframes blink{50%{opacity:0}}
.subs-empty{margin:auto 0;text-align:left;color:var(--stage-dim);font-size:18px;line-height:1.8;white-space:pre-line;border-left:2px solid var(--stage-line);padding:4px 0 4px 14px;}

.vctl{flex:none;display:flex;flex-direction:column;align-items:center;gap:12px;padding:12px 16px calc(12px);border-top:1px solid var(--stage-line);background:var(--stage);}
#vstat{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;min-height:24px;color:var(--stage-ink);text-align:center;}
#vstat .led{width:8px;height:8px;border-radius:50%;background:#4a5058;flex:none;}
#vstat[data-state=connecting] .led{background:#e2a94e;animation:blink 1s steps(2) infinite;}
#vstat[data-state=listening] .led{background:#5cc98a;}
#vstat[data-state=speaking] .led{background:var(--subc,#ffe14d);}
#vstat.err{color:#ff8a80;}
#vstat.err .led{background:#ff8a80;}
.mic{
  width:88px;height:88px;border-radius:50%;border:none;background:#4fb3a9;color:#04201d;
  display:flex;align-items:center;justify-content:center;position:relative;
  box-shadow:0 0 0 1px #2b6a63,0 0 0 9px rgba(79,179,169,.12);transition:background .2s,box-shadow .2s,transform .1s;
}
.mic:active{transform:scale(.96);}
.mic svg{width:40px;height:40px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.mic .i-stop{display:none;fill:currentColor;stroke:none;}
.mic[data-state=connecting]{background:#e2a94e;color:#271a04;box-shadow:0 0 0 1px #6b5226,0 0 0 9px rgba(226,169,78,.14);}
.mic[data-state=listening],.mic[data-state=speaking]{background:#eceef0;color:#0d0f11;box-shadow:0 0 0 1px #9aa0a6,0 0 0 9px rgba(236,238,240,.10);}
.mic[data-state=listening] .i-mic,.mic[data-state=speaking] .i-mic,.mic[data-state=connecting] .i-mic{display:none;}
.mic[data-state=listening] .i-stop,.mic[data-state=speaking] .i-stop,.mic[data-state=connecting] .i-stop{display:block;}
.mic[data-state=listening]{animation:ring 2.2s ease-in-out infinite;}
.mic[data-state=speaking]{animation:ring .9s ease-in-out infinite;}
.mic[disabled]{opacity:.35;}
@keyframes ring{50%{box-shadow:0 0 0 1px #9aa0a6,0 0 0 16px rgba(236,238,240,.05);}}
.consent{margin:0;font-size:11.5px;color:var(--stage-dim);text-align:center;line-height:1.6;max-width:340px;}

/* ---- チャット ---- */
#log{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 10px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain;}
.msg{max-width:min(88%,620px);display:flex;flex-direction:column;gap:3px;min-width:0;}
.msg .nm{font-size:12px;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:6px;letter-spacing:.02em;}
.msg .vm{font-size:10.5px;font-weight:700;border:1px solid var(--line-strong);color:var(--ink-3);padding:0 4px;border-radius:2px;line-height:1.5;}
.msg .bub{padding:9px 13px;border-radius:var(--r);font-size:16px;line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);}
.msg .tm{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.msg.other{align-self:flex-start;}
.msg.me{align-self:flex-end;align-items:flex-end;}
.msg.me .bub{background:var(--accent-soft);border-color:var(--accent-line);}
.msg.ai .nm{color:var(--accent);}
.msg.agent .bub{background:var(--agent-soft);border-color:var(--agent-line);border-left:3px solid var(--agent);}
.msg.agent .nm{color:var(--agent);}
.msg.voice .bub{border-style:dashed;}
.sysrow{align-self:center;font-size:12.5px;color:var(--ink-3);text-align:center;padding:3px 12px;max-width:92%;overflow-wrap:anywhere;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sysrow a{margin-left:4px;font-weight:600;}
.sysrow.act{color:var(--ok);}
.sysrow.agentnote{color:var(--agent);}
.typing{align-self:flex-start;font-size:13.5px;color:var(--ink-3);padding:2px 0;}
.typing::after{content:" …";animation:blink 1s steps(2) infinite;}
.conn{flex:none;text-align:center;font-size:13px;color:var(--warn);padding:6px;background:var(--surface-2);border-bottom:1px solid var(--line);display:none;}
.conn.show{display:block;}
#composer{flex:none;border-top:1px solid var(--line);background:var(--surface);padding:8px 12px 10px;display:flex;flex-direction:column;gap:8px;}
.dest{display:flex;align-self:flex-start;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;}
.dest button{min-height:40px;padding:0 14px;background:none;border:none;font-size:14px;font-weight:600;color:var(--ink-3);}
.dest button + button{border-left:1px solid var(--line-strong);}
.dest button.on{background:var(--ink);color:var(--bg);}
.dest #agentTog.on{background:var(--agent);color:#fff;}
:root[data-theme="dark"] .dest #agentTog.on{color:#1d1406;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dest #agentTog.on{color:#1d1406;}}
.crow{display:flex;gap:8px;align-items:flex-end;}
#msgIn{flex:1;min-width:0;min-height:48px;max-height:140px;resize:none;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);padding:12px 14px;font-size:16px;line-height:1.45;display:block;}
#composer.agent #msgIn{border-color:var(--agent);}
.rbtn{flex:none;width:48px;height:48px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;}
.rbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.rbtn.send{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.rbtn.live{background:var(--ok);color:#fff;border-color:var(--ok);}
.rbtn[disabled]{opacity:.4;}

/* ---- カード(client.js の renderCard が作る) ---- */
.cards{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px;}
.card{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--line-strong);border-left:3px solid var(--accent);border-radius:var(--r);padding:12px 12px 12px 14px;}
.card h4{margin:0 0 10px;font-size:15.5px;line-height:1.5;font-weight:700;}
.card .kind{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--accent);margin-bottom:2px;}
.btnrow{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.btnrow.choices{grid-template-columns:1fr;}
button.opt{min-height:52px;padding:8px 14px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);font-size:16px;font-weight:600;text-align:center;line-height:1.35;}
.btnrow.choices button.opt{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.btnrow.choices button.opt::after{content:"";width:8px;height:8px;border-right:2px solid var(--ink-3);border-top:2px solid var(--ink-3);transform:rotate(45deg);flex:none;}
button.opt.yes{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
button.opt:active{filter:brightness(.92);}
.card.done{opacity:.55;}
.card button[disabled],.card input[disabled]{cursor:default;}
.numedit{display:grid;grid-template-columns:auto 1fr;gap:8px 10px;align-items:center;}
.numedit .orig{color:var(--ink-3);font-size:15px;font-variant-numeric:tabular-nums;text-decoration:line-through;}
.numedit .arrow{display:none;}
.numedit input{width:100%;min-width:0;height:52px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);padding:0 12px;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;}
.numedit button.opt{grid-column:1 / -1;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.tablewrap{overflow-x:auto;margin:0 -2px;-webkit-overflow-scrolling:touch;}
table.difftable{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;}
table.difftable th{font-size:11.5px;font-weight:700;color:var(--ink-3);letter-spacing:.04em;border-bottom:1px solid var(--line-strong);}
table.difftable th,table.difftable td{padding:10px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;}
table.difftable th:first-child,table.difftable td:first-child{text-align:left;}
table.difftable tbody tr.flag{background:var(--err-soft);color:var(--err);font-weight:600;cursor:pointer;}
table.difftable tbody tr.flag td:first-child{box-shadow:inset 3px 0 0 var(--err);padding-left:9px;}
.card .hint{font-size:12px;color:var(--ink-3);margin-top:8px;line-height:1.6;}
.basis{font-size:14px;color:var(--ink);margin-top:10px;display:none;border-top:1px solid var(--line);padding-top:8px;}
.basis.show{display:block;}

/* ---- 部屋・設定(罫線で区切る一覧) ---- */
.page{flex:1;min-height:0;overflow-y:auto;padding:4px 16px 32px;display:flex;flex-direction:column;overscroll-behavior:contain;}
.sec{padding:18px 0 6px;border-bottom:1px solid var(--line);}
.sec:last-child{border-bottom:none;}
.sec h2{font-size:12px;letter-spacing:.12em;color:var(--ink-3);margin:0 0 6px;font-weight:700;display:flex;align-items:baseline;gap:8px;}
.sec h2 small{font-size:12px;letter-spacing:0;font-weight:600;color:var(--ink-2);}
.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);min-height:52px;font-size:16px;color:inherit;text-decoration:none;}
.sec > .item:last-of-type,.list > .item:last-child{border-bottom:none;}
.item .sub{font-size:12.5px;color:var(--ink-3);margin-top:1px;}
.item .l{min-width:0;flex:1;}
.item .l .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
button.item{width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:12px 0;}
a.item:active,button.item:active{background:var(--surface-2);}
.chip{flex:none;font-size:12px;font-weight:600;border-radius:3px;padding:2px 8px;border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap;}
.chip.ok{color:var(--ok);border-color:currentColor;}
.chip.wait{color:var(--warn);border-color:currentColor;}
.chip.cur{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft);}
.btn{min-height:50px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--surface);padding:0 18px;font-size:16px;font-weight:600;color:var(--ink);}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.btn.danger{color:var(--err);border-color:currentColor;background:none;}
.btn.block{width:100%;}
.btn + .btn,.stack > * + *{margin-top:8px;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin:6px 0 4px;}
.stat{padding:10px 8px;text-align:left;}
.stat + .stat{border-left:1px solid var(--line);}
.stat b{display:block;font-size:26px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums;}
.stat span{font-size:12px;color:var(--ink-3);}
.seg{display:flex;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;}
.seg button{flex:1;min-height:48px;background:var(--surface);border:none;color:var(--ink-2);font-size:15px;font-weight:600;padding:0 6px;}
.seg button + button{border-left:1px solid var(--line-strong);}
.seg button.on{background:var(--ink);color:var(--bg);}
.seg button[disabled]{opacity:.4;}
.tog{width:52px;height:32px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line-strong);position:relative;flex:none;}
.tog i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s;}
.tog.on{background:var(--accent);border-color:var(--accent);}
.tog.on i{left:23px;}
.note{font-size:13px;color:var(--ink-3);line-height:1.7;margin:6px 0 8px;}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px;margin:4px 0 8px;}
.kv dt{color:var(--ink-3);}
.kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere;}
.urlbox{word-break:break-all;font-size:13px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px;margin-top:8px;user-select:all;font-family:ui-monospace,Menlo,monospace;}
.empty{color:var(--ink-3);font-size:14px;padding:10px 0;}
.skel{height:14px;border-radius:3px;background:linear-gradient(90deg,var(--surface-2),var(--line),var(--surface-2));background-size:200% 100%;animation:sk 1.2s linear infinite;margin:14px 0;}
@keyframes sk{to{background-position:-200% 0}}
.foot{font-size:12px;color:var(--ink-3);text-align:center;margin-top:18px;letter-spacing:.04em;}

/* 議事録 */
.doc{padding:14px 0 24px;font-size:16px;line-height:1.85;max-width:680px;}
.doc h3{font-size:15px;margin:22px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line);letter-spacing:.04em;}
.doc h3:first-child{margin-top:0;}
.doc p{margin:0 0 8px;}
.doc ul{margin:0 0 8px;padding-left:1.3em;}
.doc .meta{font-size:12.5px;color:var(--ink-3);margin-bottom:10px;}

/* ---- 声の設定シート ---- */
.sheetbg{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:20;}
.sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:21;background:var(--surface);color:var(--ink);
  border-top:1px solid var(--line-strong);border-radius:10px 10px 0 0;
  padding:8px 16px calc(16px + env(safe-area-inset-bottom));max-height:86%;overflow:auto;overscroll-behavior:contain;
}
.sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:2px auto 8px;}
.sheet h3{margin:16px 0 8px;font-size:12px;color:var(--ink-3);font-weight:700;letter-spacing:.12em;}
.sheet h3:first-of-type{margin-top:4px;}
.sheet .note{font-size:12.5px;margin-top:6px;}
.sheet .row2{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;}
.sheet .close{margin-top:18px;width:100%;min-height:50px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-strong);font-size:16px;font-weight:600;}
.sw{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.sw button{min-height:52px;border-radius:var(--r);border:1px solid #30353b;background:#0d0f11;font-size:15px;font-weight:700;}
.sw button.on{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent);}
@media (min-width:600px){
  .sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:min(460px,calc(100% - 32px));border-radius:10px;border:1px solid var(--line-strong);max-height:calc(100% - 48px);}
  .sheet .grab{display:none;}
}

#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabh) + env(safe-area-inset-bottom) + 14px);background:var(--ink);color:var(--bg);padding:11px 16px;border-radius:var(--r);font-size:14px;font-weight:600;z-index:50;max-width:calc(100% - 32px);text-align:center;display:none;}
#toast.show{display:block;}
@media (min-width:900px){#toast{bottom:24px;}}
#fatal{padding:30px 22px;color:var(--stage-dim);}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* PC幅: 本文を中央の読みやすい幅に(後ろに置いて各要素の padding を上書き) */
@media (min-width:900px){
  .view > .bar, .view > .page, .view > #log, .view > #composer, .view > .meterline{padding-left:max(16px,calc((100% - 760px)/2));padding-right:max(16px,calc((100% - 760px)/2));}
  .view > #subs{padding-left:max(20px,calc((100% - 820px)/2));padding-right:max(20px,calc((100% - 820px)/2));}
}

/* v0.2.1: 押して話す */
.mic{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;}
.mic.held{transform:scale(.96);box-shadow:0 0 0 1px #5cc98a,0 0 0 14px rgba(92,201,138,.18);}
.vend{min-height:40px;padding:0 16px;border-radius:var(--r);border:1px solid #3a4047;background:none;color:var(--stage-ink);font-size:14px;font-weight:600;}

/* v0.2.3: 承認待ちの画面 */
.pending{max-width:420px;margin:auto;padding:32px 20px calc(32px + env(safe-area-inset-bottom));overflow:auto;}
.pending .mk{font-size:11px;letter-spacing:.28em;color:var(--ink-3);font-weight:600;}
.pending h1{font-size:28px;letter-spacing:.14em;margin:2px 0 22px;}
.pending h2{font-size:19px;margin:0 0 6px;padding-top:18px;border-top:1px solid var(--line);}

/* v0.4: ツール一覧・会議ガイド・チャットの＋・結果カード */
nav.tabs button span{white-space:nowrap;}
.tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 0 8px;}
@media (min-width:600px){.tgrid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.tile{display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);min-width:0;}
.tile.empty{border-style:dashed;background:none;padding:14px 12px;color:var(--ink-3);min-height:120px;}
.topen{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 12px 10px;background:none;border:none;text-align:left;min-height:112px;}
.topen svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px;}
.tname{font-size:15.5px;font-weight:700;display:flex;align-items:center;gap:6px;}
.tbadge{font-style:normal;font-size:10.5px;font-weight:700;color:var(--accent-ink);background:var(--accent);border-radius:2px;padding:0 5px;line-height:1.6;}
.tdesc{font-size:12.5px;color:var(--ink-3);line-height:1.5;}
.tpin{min-height:40px;border:none;border-top:1px solid var(--line);background:none;font-size:13px;font-weight:600;color:var(--ink-2);}
.tpin.on{color:var(--accent);}
.view.wide > .bar, .view.wide > .page{}
.fld{display:block;margin:10px 0;}
.fld span{display:block;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:4px;}
.fld input,.fld textarea,.plusin{width:100%;min-height:48px;border-radius:var(--r);border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);padding:11px 12px;font-size:16px;line-height:1.45;resize:vertical;}
.note.small{font-size:12px;margin-top:2px;}
.warnbox{border:1px solid var(--err);color:var(--err);border-radius:var(--r);padding:10px 12px;font-size:14px;font-weight:600;margin:8px 0;}
.consentbar{margin:12px 0 0;padding:10px 12px;border-radius:var(--r);background:var(--agent-soft);border:1px solid var(--agent-line);color:var(--agent);font-weight:700;font-size:14px;}
.ghead{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.gstat{flex:1;min-width:140px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2);}
.ghead .btn{min-height:44px;padding:0 14px;font-size:15px;}
.gcols{display:grid;grid-template-columns:1fr;gap:12px;padding:12px 0;}
@media (min-width:900px){.gcols{grid-template-columns:repeat(3,minmax(0,1fr));} #v-guide > .page, #v-guide > .bar{padding-left:max(16px,calc((100% - 1180px)/2));padding-right:max(16px,calc((100% - 1180px)/2));}}
.gcol{border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);min-width:0;}
.gcol h3{margin:0;padding:10px 12px;font-size:13px;letter-spacing:.08em;border-bottom:1px solid var(--line);color:var(--accent);}
.gbody{padding:4px 12px 10px;}
.gnow ul,.gold ul{margin:4px 0 6px;padding-left:1.2em;}
.gnow li{font-size:16px;line-height:1.6;margin:3px 0;font-weight:600;}
.gold li{font-size:14px;color:var(--ink-2);}
.gtime{font-size:12px;color:var(--ink-3);margin:8px 0 2px;}
.gsub{font-size:12px;font-weight:700;color:var(--ink-3);margin-top:8px;letter-spacing:.04em;}
.gold{border-top:1px solid var(--line);padding:6px 0;}
.gold summary{font-size:12.5px;color:var(--ink-3);cursor:pointer;min-height:32px;display:flex;align-items:center;}
.ginfo{border-top:1px solid var(--line);padding:8px 0;}
.ginfo:first-child{border-top:none;}
.gi-s{font-size:11px;font-weight:700;color:var(--ink-3);border:1px solid var(--line-strong);border-radius:2px;padding:0 4px;margin-right:6px;}
.gi-t{font-size:14.5px;font-weight:700;overflow-wrap:anywhere;}
.gi-x{font-size:13px;color:var(--ink-2);line-height:1.6;margin-top:2px;white-space:pre-wrap;overflow-wrap:anywhere;}
.gi-l{display:block;font-size:12px;margin-top:2px;overflow-wrap:anywhere;}
.gcap{margin:4px 0 16px;border:1px solid var(--line);border-radius:var(--r);}
.gcap summary{padding:10px 12px;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;}
.gcaplines{padding:0 12px 10px;font-size:13px;color:var(--ink-2);line-height:1.7;max-height:240px;overflow:auto;}
.rbtn.plus svg{stroke-width:2.2;}
.plist .item{min-height:56px;}
.card.result{border-left-color:var(--ink-3);}
.ritem{border-top:1px solid var(--line);padding:8px 0;}
.ritem:first-of-type{border-top:none;}
.ritem .rt{font-weight:700;font-size:14.5px;overflow-wrap:anywhere;}
.ritem .rx{font-size:13px;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px;}
.ritem a.rl{display:block;font-size:12px;overflow-wrap:anywhere;}
.gtime.live::after{content:" …";animation:blink 1s steps(2) infinite;}

/* v0.4 投資面談 */
.qa{border-top:1px solid var(--line);padding:8px 0;}
.gnow > div > .qa:first-child{border-top:none;}
.qa-q{font-size:13px;font-weight:700;color:var(--ink-3);}
.qa-bone{font-size:16.5px;font-weight:700;line-height:1.55;margin:2px 0;}
.qa-a{margin:4px 0;font-size:14.5px;line-height:1.7;}
.qa.unknown .qa-bone{color:var(--warn);}
.qa-past{font-size:12.5px;color:var(--ink-2);}
.figs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0;}
.fig{font-size:12px;font-weight:600;border:1px solid var(--line-strong);border-radius:2px;padding:0 5px;font-variant-numeric:tabular-nums;}
.fig.meas{color:var(--ok);border-color:currentColor;}
.fig.est{color:var(--warn);border-color:currentColor;}
.rules{margin-top:10px;border-top:1px solid var(--line);padding-top:4px;}
.rules li{font-size:12px;color:var(--ink-3);font-weight:400;}

/* v0.5: コンパニオン画面(社内の人だけ) */
#v-voice.companion{background:#15131b;}
#v-voice.companion .cpstage{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center bottom;}
#v-voice.companion .cpstage canvas{display:block;width:100%;height:100%;}
#v-voice.companion > .bar,#v-voice.companion > .meterline,#v-voice.companion > #subs,#v-voice.companion > .vctl{position:relative;z-index:2;}
#v-voice.companion > .bar{background:linear-gradient(rgba(10,12,14,.72),rgba(10,12,14,0));border-bottom:none;}
#v-voice.companion > .meterline{background:none;border-bottom:none;text-shadow:0 1px 2px #000;}
#v-voice.companion > .vctl{background:linear-gradient(rgba(10,12,14,0),rgba(10,12,14,.82) 38%);border-top:none;padding-top:28px;}
#v-voice.companion.subs-off > #subs{visibility:hidden;}
#v-voice.companion > #subs{-webkit-mask-image:none;mask-image:none;justify-content:flex-end;}
#v-voice.companion > #subs .ln .tx{background:rgba(8,10,12,.66);padding:2px 8px;border-radius:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
#v-voice.companion .subs-empty{display:none;}
.cpsubs{background:rgba(10,12,14,.5);cursor:pointer;min-height:36px;}
.cprow{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;}
.cprow .cpsp{width:44px;}
.cprow .iconbtn{background:rgba(10,12,14,.5);border-color:#3a4047;color:#eceef0;}
.cpcredit{margin:0;font-size:10.5px;color:#a7adb4;text-align:center;letter-spacing:.01em;}
.cpfail{position:absolute;left:16px;right:16px;top:45%;text-align:center;color:#c9cdd2;font-size:13px;}

/* v0.7: 全画面・声が主。下の帯は隠す型(取っ手で出す)・ほかの画面は下から半分のシート */
.shell{padding-top:0;}
#v-voice > .bar{padding-top:calc(8px + env(safe-area-inset-top));}
#v-voice #vGear,#v-voice .cpsubs,#v-voice .cprow .iconbtn,#v-voice .cprow .cpsp{display:none;}
#v-voice .roombtn{pointer-events:none;}
#v-voice .roombtn svg{display:none;}
#v-voice > .vctl{padding-bottom:calc(26px + env(safe-area-inset-bottom));}
.vctl .vend{min-height:44px;padding:0 22px;}
.viewbg{position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:35;}
.view.sheetview{top:auto;height:58%;z-index:40;border-radius:12px 12px 0 0;box-shadow:0 -6px 24px rgba(0,0,0,.35);overflow:hidden;transition:height .2s ease;padding-bottom:env(safe-area-inset-bottom);}
.view.sheetview.full{height:calc(100% - 28px - env(safe-area-inset-top));}
.view.sheetview > .bar{min-height:48px;}
.sgrab{display:none;}
.view.sheetview .sgrab{display:flex;justify-content:center;align-items:center;height:18px;flex:none;background:var(--bg);touch-action:none;cursor:grab;}
.view.sheetview .sgrab i{width:40px;height:4px;border-radius:2px;background:var(--line-strong);}
.view.sheetview > .bar{touch-action:none;}
.sback{margin-left:auto;}
.view:not(.sheetview) .sback{display:none;}
.bandhandle{position:fixed;left:0;right:0;bottom:0;height:calc(22px + env(safe-area-inset-bottom));z-index:55;display:flex;justify-content:center;align-items:flex-start;padding-top:12px;touch-action:none;cursor:pointer;}
.bandhandle i{width:44px;height:4px;border-radius:2px;background:rgba(236,238,240,.65);box-shadow:0 0 0 1px rgba(0,0,0,.25);}
@media (max-width:899px){
  nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(105%);transition:transform .2s ease;box-shadow:0 -6px 20px rgba(0,0,0,.25);}
  nav.tabs.show{transform:none;}
  #toast{bottom:calc(30px + env(safe-area-inset-bottom));}
}
@media (min-width:900px){
  .bandhandle{display:none;}
  .view.sheetview{left:max(0px,calc((100% - 820px)/2));right:max(0px,calc((100% - 820px)/2));}
}
.bandhandle{left:50%;right:auto;width:120px;transform:translateX(-50%);}
.view.sheetview{padding-bottom:calc(16px + env(safe-area-inset-bottom));}
.view.overlay{z-index:50;}

/* v0.8: 右上の入口(？・メニュー)はどの画面でも同じ場所に固定 */
.topright{position:fixed;top:calc(8px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));z-index:80;display:flex;gap:6px;}
.trbtn{min-height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border-radius:var(--r);border:1px solid rgba(160,166,172,.55);background:rgba(16,18,21,.72);color:#eceef0;font-size:13.5px;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.trbtn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
#v-voice > .bar{padding-right:150px;}
.view.sheetview.full > .bar{padding-right:150px;}
.menubg{position:fixed;inset:0;z-index:78;background:rgba(0,0,0,.25);}
.menupanel{position:fixed;top:calc(54px + env(safe-area-inset-top));right:8px;z-index:79;width:min(300px,calc(100% - 16px));max-height:calc(100% - 70px - env(safe-area-inset-top));overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:6px;}
.mtitle{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--ink-3);padding:8px 10px 4px;}
.mitem{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 10px;border:none;background:none;text-align:left;font-size:15.5px;font-weight:600;border-radius:6px;}
.mitem svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.mitem.on{background:var(--accent-soft);}
.mitem:active{background:var(--surface-2);}
.mver{border-top:1px solid var(--line);margin-top:6px;padding:6px 6px 4px;}
.mver .note{margin:2px 0 6px;}
.hlring{position:fixed;z-index:95;border:3px solid #ffd54a;border-radius:12px;box-shadow:0 0 0 4px rgba(255,213,74,.35),0 0 24px rgba(255,213,74,.6);pointer-events:none;animation:hlp 1s ease-in-out infinite;}
.hlring.still{animation:none;}
@keyframes hlp{50%{box-shadow:0 0 0 10px rgba(255,213,74,.15),0 0 30px rgba(255,213,74,.8);}}
.hltip{position:fixed;z-index:96;background:#ffd54a;color:#1d1a10;font-size:14px;font-weight:700;line-height:1.5;padding:8px 12px;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.3);pointer-events:none;}
.hltip.up{transform:translateY(-100%);}
.helplayer{position:fixed;inset:0;z-index:94;background:rgba(0,0,0,.55);}
.helphint{position:fixed;left:16px;right:16px;top:45%;text-align:center;color:#fff;font-size:15px;font-weight:600;line-height:1.7;}
#v-voice.subs-off > #subs{visibility:hidden;}
.msg.hit .bub{box-shadow:0 0 0 2px #ffd54a;}

/* v0.8: 最初の画面(待ち)はキャラと「話しかけてください」だけ。部屋名・今月の声・記録の注意は話している間だけ出す */
#v-voice.vidle > .bar,#v-voice.vidle > .meterline,#v-voice.vidle .consent{visibility:hidden;}
#v-voice.vidle #vstat{font-size:20px;}
#v-voice.vidle #vstat .led{display:none;}

/* ---- v0.14 話して作る: 左上の小さなマイク・右にページ・左に細い字幕(畳める)・下に保存/PDF/wiki。スマホ＝ページが主・字幕は下に畳む ---- */
#v-page > .bar{gap:10px;}
.pbmic{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;padding:0;}
.pbmic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.pbmic .i-stop{display:none;}
.pbmic[data-state="rec"]{background:#d93025;border-color:#d93025;color:#fff;box-shadow:0 0 0 0 rgba(217,48,37,.5);animation:pbrec 1.6s ease-out infinite;}
.pbmic[data-state="rec"] .i-mic{display:none;}
.pbmic[data-state="rec"] .i-stop{display:block;fill:currentColor;stroke:none;}
.pbmic[data-state="busy"]{opacity:.6;}
@keyframes pbrec{70%{box-shadow:0 0 0 8px rgba(217,48,37,0);}100%{box-shadow:0 0 0 0 rgba(217,48,37,0);}}
.pbstat{flex:none;font-size:12.5px;color:var(--ink-3);white-space:nowrap;}
.pbwrap{flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr);}
.pbcap{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--surface-2);}
.pbcaph{display:flex;align-items:center;gap:6px;width:100%;min-height:40px;padding:0 12px;border:none;border-bottom:1px solid var(--line);background:none;font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);text-align:left;}
.pbcaph small{font-weight:500;letter-spacing:0;flex:1;}
.pbcaph svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .15s;}
.pbcap.closed .pbcaph svg{transform:rotate(-90deg);}
.pbcap.closed .pbcapl{display:none;}
.pbcapl{flex:1;overflow:auto;padding:8px 12px 12px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;}
.pbline{font-size:13px;line-height:1.55;color:var(--ink-2);}
.pbline:last-child{color:var(--ink);font-weight:600;}
.pbline.typed::before{content:"文字 ";font-size:11px;color:var(--ink-3);}
.pbmain{overflow:auto;min-height:0;padding:8px 28px 28px;background:var(--surface);}
.pbdoc{max-width:760px;margin:0 auto;padding-top:18px;}
.pbdoc h1{font-size:24px;margin:0 0 14px;line-height:1.35;}
.pbdoc h2{font-size:18px;margin:24px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line);}
.pbdoc h3{font-size:16px;margin:18px 0 6px;border:none;}
.pbdoc h4{font-size:15px;margin:14px 0 4px;}
.pbdoc ol{margin:0 0 8px;padding-left:1.5em;}
.pbdoc li{margin:2px 0;}
.pbdoc code{font-size:.92em;background:var(--surface-2);padding:1px 4px;border-radius:3px;}
.pbdoc hr{border:none;border-top:1px solid var(--line);margin:18px 0;}
.pbdoc .tblwrap{overflow-x:auto;margin:6px 0 12px;}
.pbdoc table{border-collapse:collapse;font-size:14.5px;min-width:60%;}
.pbdoc th,.pbdoc td{border:1px solid var(--line-strong);padding:6px 10px;text-align:left;vertical-align:top;}
.pbdoc th{background:var(--surface-2);font-weight:700;}
.pbdoc td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.pbdoc.flash{animation:pbflash .9s ease-out;}
@keyframes pbflash{0%{box-shadow:inset 3px 0 0 var(--accent);}100%{box-shadow:inset 3px 0 0 transparent;}}
.pbempty{display:flex;flex-direction:column;gap:8px;padding:48px 4px;color:var(--ink-3);}
.pbempty b{font-size:18px;color:var(--ink-2);}
.pbfoot{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--line);background:var(--bg);flex-wrap:wrap;}
.pbfoot .btn{min-height:40px;padding:0 14px;font-size:14.5px;margin:0;}
.pbfoot .btn + .btn{margin-top:0;}
.pbfoot .btn.ghost{background:none;border-color:var(--line);color:var(--ink-2);}
.pbfoot .btn:disabled{opacity:.45;}
.pbver{margin-left:auto;font-size:12.5px;color:var(--ink-3);white-space:nowrap;}
@media (min-width:900px){
  #v-page.sheetview{left:max(0px,calc((100% - 1180px)/2));right:max(0px,calc((100% - 1180px)/2));}
  #v-page > .bar{padding-left:16px;padding-right:150px;}
}
@media (max-width:699px){
  .pbwrap{display:flex;flex-direction:column;}
  .pbmain{order:1;flex:1;padding:4px 16px 20px;}
  .pbcap{order:2;flex:none;border-right:none;border-top:1px solid var(--line);max-height:34%;}
  .pbcapl{justify-content:flex-start;}
  .pbdoc h1{font-size:21px;}
  .pbfoot{padding:8px 12px;gap:6px;}
  .pbfoot .btn{padding:0 11px;}
  #v-page > .bar{padding-right:110px;}
  #v-page .pbstat{display:none;}
}
/* PDF(印刷の画面): ページだけを出す */
@media print{
  body.pbprinting{height:auto;overflow:visible;background:#fff;color:#000;}
  body.pbprinting .shell > *:not(#views),body.pbprinting .topright,body.pbprinting .bandhandle,body.pbprinting #toast,body.pbprinting .menupanel,body.pbprinting .menubg{display:none!important;}
  body.pbprinting #views > *:not(#v-page){display:none!important;}
  body.pbprinting #v-page{position:static;display:block;height:auto;box-shadow:none;border-radius:0;}
  body.pbprinting #v-page > *:not(.pbwrap){display:none!important;}
  body.pbprinting .pbwrap{display:block;}
  body.pbprinting .pbcap{display:none!important;}
  body.pbprinting .pbmain{overflow:visible;padding:0;background:#fff;}
  body.pbprinting .pbdoc{max-width:none;color:#000;}
  body.pbprinting .pbdoc th,body.pbprinting .pbdoc td{border-color:#999;}
  body.pbprinting .shell{display:block;height:auto;padding:0;}
}

/* v0.15.1 字幕を常に最新へ（public/subs_follow.js）。最新行の下に余白を取り、下の操作に隠れない */
#subs{padding-bottom:20px;scroll-padding-bottom:20px;}
/* キャラの画面: 下寄せは flex-end でなく先頭の margin-top:auto で（flex-end は上にあふれた行へ戻れない） */
#v-voice.companion > #subs{justify-content:flex-start;}
.sf-pill{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;z-index:6;font:inherit;font-size:12px;font-weight:600;padding:5px 12px;border-radius:99px;border:1px solid var(--stage-line,#3a4047);background:rgba(20,23,26,.92);color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3);}
.sf-pill[hidden]{display:none;}
