:root{
  --ground:#F6F7F9; --surface:#FFFFFF; --ink:#1F2328; --muted:#5B636C; --faint:#8A929B;
  --rule:#E3E6EA; --rule-soft:#F1F3F5; --accent:#1B5FBF; --accent-soft:#E9F0FA; --accent-hover:#F4F7FC;
  --ok:#1E7A50; --ok-soft:#E8F2EC; --err:#B23B32; --err-soft:#FAECEB; --warn:#9A7314; --warn-soft:#FAF3E2;
  --ba:#1B5FBF; --nxn:#7A4BB5; --nxn-soft:#F1EBF8;
  --r:8px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ground);color:var(--ink);
  font:14px/1.6 "Inter","Noto Sans JP","Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
.hidden{display:none!important}

/* レイアウト */
.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
.side{background:var(--surface);border-right:1px solid var(--rule);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.brand{font-weight:700;font-size:15px;padding:0 8px 2px}
.brand small{display:block;font-weight:400;color:var(--faint);font-size:11px}
.projs{margin:8px 0 10px;display:flex;flex-direction:column;gap:5px}
.projs-h{font-size:11px;color:var(--faint);padding:0 8px;letter-spacing:.04em}
.proj{display:block;margin:0 4px;padding:10px;border:1px solid var(--rule);border-radius:var(--r);font-size:12px;color:var(--muted);text-decoration:none;background:var(--surface)}
.proj:hover{border-color:var(--accent);background:var(--accent-hover)}
.proj.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.proj b{display:block;color:var(--ink);font-size:13px;line-height:1.4;margin-bottom:2px}
.proj.on b{color:var(--accent)}
.proj .dd{display:inline-block;margin-left:6px;font-size:11px;color:var(--accent);font-weight:600}
.nav a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--ink)}
.nav a:hover{background:var(--accent-hover)}
.nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.nav .cnt{margin-left:auto;font-size:11px;background:var(--rule-soft);color:var(--muted);border-radius:10px;padding:0 7px}
.side .foot{margin-top:auto;font-size:12px;color:var(--muted);padding:8px;border-top:1px solid var(--rule)}
.side .foot select{width:100%;margin-top:4px}
main{padding:22px 28px 60px;min-width:0}
.head{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.head h1{font-size:20px;margin:0}
.head .sub{color:var(--muted);font-size:13px}
.head .sp{flex:1}
.demo-bar{background:var(--warn-soft);color:var(--warn);border:1px solid #EFDFB5;border-radius:var(--r);padding:8px 12px;margin-bottom:14px;font-size:12.5px}

/* 部品 */
.btn{border:1px solid var(--rule);background:var(--surface);border-radius:6px;padding:6px 12px;cursor:pointer}
.btn:hover{background:var(--accent-hover)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.pri:hover{filter:brightness(1.08)}
.btn.sm{padding:3px 9px;font-size:12px}
.btn.danger{color:var(--err)}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:16px}
.card h2{font-size:14px;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.card h2 .more{margin-left:auto;font-size:12px;font-weight:400}
.grid{display:grid;gap:14px}
.g4{grid-template-columns:repeat(4,1fr)} .g2{grid-template-columns:1fr 1fr} .g3{grid-template-columns:2fr 1fr}
.kpi .n{font-size:26px;font-weight:700;line-height:1.2}
.kpi .l{color:var(--muted);font-size:12px}
.kpi.warn .n{color:var(--warn)} .kpi.err .n{color:var(--err)}
.hero{display:flex;gap:18px;align-items:center}
.hero .days{font-size:34px;font-weight:700;color:var(--accent);line-height:1}
.hero .days small{font-size:13px;color:var(--muted);font-weight:400}
.ball{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--rule-soft);margin:8px 0 4px}
.ball i{display:block}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:1px}

.pill{display:inline-block;font-size:11.5px;border-radius:10px;padding:0 8px;white-space:nowrap;border:1px solid transparent;line-height:19px}
.st-todo,.st-discuss{background:var(--rule-soft);color:var(--muted)}
.st-checking{background:#EEF4FB;color:#3C6FA8;border-color:#D6E3F3}
.st-approval{background:var(--nxn-soft);color:var(--nxn)}
.st-doing{background:var(--accent-soft);color:var(--accent)}
.st-waiting{background:var(--warn-soft);color:var(--warn)}
.st-done{background:var(--ok-soft);color:var(--ok)}
.st-hold{background:#fff;border-color:var(--rule);color:var(--faint)}
.ms-tbd{background:#fff;border:1px dashed var(--faint);color:var(--muted)}
.ms-tentative{background:var(--warn-soft);color:var(--warn)}
.ms-fixed{background:var(--accent-soft);color:var(--accent)}
.ms-done{background:var(--ok-soft);color:var(--ok)}
.ms-cancel{background:var(--rule-soft);color:var(--faint);text-decoration:line-through}
.org{font-size:11px;font-weight:600;border-radius:4px;padding:0 5px}
.org-1{background:var(--accent-soft);color:var(--ba)} .org-2{background:var(--nxn-soft);color:var(--nxn)} .org-3{background:var(--rule-soft);color:var(--muted)}
.lock{font-size:11px;color:var(--err);background:var(--err-soft);border-radius:4px;padding:0 5px;white-space:nowrap}
.pri1{color:var(--err);font-weight:700}
.muted{color:var(--muted)} .faint{color:var(--faint)} .small{font-size:12px}
.over{color:var(--err);font-weight:600}

/* 表 */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input[type=search]{min-width:220px}
.toolbar select,.toolbar input{border:1px solid var(--rule);border-radius:6px;padding:5px 8px;background:#fff}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:6px;overflow:hidden}
.seg button{border:0;background:#fff;padding:5px 11px;cursor:pointer;border-right:1px solid var(--rule)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
table.t{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden}
.t th{font-size:12px;color:var(--muted);font-weight:600;text-align:left;background:#FAFBFC;padding:8px 10px;border-bottom:1px solid var(--rule);white-space:nowrap}
.t td{padding:9px 10px;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.t tr:last-child td{border-bottom:0}
.t tr.click{cursor:pointer} .t tr.click:hover td{background:var(--accent-hover)}
.t .ttl{font-weight:500}
.t .ans{font-size:12px;color:var(--muted);margin-top:2px}
.empty{padding:30px;text-align:center;color:var(--faint)}

/* リスト */
.list{list-style:none;margin:0;padding:0}
.list li{padding:8px 0;border-bottom:1px solid var(--rule-soft);display:flex;gap:10px;align-items:baseline}
.list li:last-child{border-bottom:0}
.list .d{color:var(--muted);font-size:12px;min-width:82px;font-variant-numeric:tabular-nums}
.list .x{flex:1;min-width:0}

/* タイムライン */
.month{margin:18px 0 6px;font-weight:700;color:var(--muted);font-size:13px}
.tl{border-left:2px solid var(--rule);margin-left:6px;padding-left:16px}
.tl .ev{position:relative;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:9px 12px;margin-bottom:8px;cursor:pointer}
.tl .ev:hover{border-color:var(--accent)}
.tl .ev:before{content:"";position:absolute;left:-23px;top:14px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--faint)}
.tl .ev.k-本番:before{background:var(--accent);border-color:var(--accent)}
.tl .ev.past{opacity:.72}
.tl .when{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.today-line{margin:10px 0 10px -22px;font-size:11px;color:var(--err);font-weight:600}

/* 会議 */
.mtg{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);margin-bottom:10px}
.mtg summary{padding:10px 14px;cursor:pointer;display:flex;gap:10px;align-items:baseline;list-style:none}
.mtg summary::-webkit-details-marker{display:none}
.mtg .body{padding:0 14px 12px;border-top:1px solid var(--rule-soft)}
.mtg .body h4{margin:10px 0 2px;font-size:12px;color:var(--muted)}
.pre{white-space:pre-wrap}

/* 出張 */
.trip{margin-bottom:18px}
.trip .tt{display:flex;gap:10px;align-items:baseline;margin-bottom:8px}
.trip .tt h3{margin:0;font-size:15px}

/* メンバー */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.person{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px}
.person b{font-size:14px}
.person .co{font-size:12px;color:var(--muted)}
.role{font-size:11px;border-radius:4px;padding:0 5px;background:var(--rule-soft);color:var(--muted)}
.role.admin{background:var(--accent);color:#fff} .role.editor{background:var(--accent-soft);color:var(--accent)}

/* ドロワー／モーダル */
.veil{position:fixed;inset:0;background:rgba(15,20,30,.28);z-index:40}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(560px,100vw);background:var(--surface);z-index:41;
  box-shadow:-8px 0 30px rgba(0,0,0,.08);display:flex;flex-direction:column}
.drawer .dh{padding:14px 18px;border-bottom:1px solid var(--rule);display:flex;gap:8px;align-items:center}
.drawer .dh h3{margin:0;font-size:15px;flex:1}
.drawer .db{padding:16px 18px;overflow:auto;flex:1}
.drawer .df{padding:12px 18px;border-top:1px solid var(--rule);display:flex;gap:8px}
.drawer .df .sp{flex:1}
.f{margin-bottom:12px}
.f label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.f input,.f select,.f textarea{width:100%;border:1px solid var(--rule);border-radius:6px;padding:7px 9px;background:#fff}
.f textarea{min-height:80px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.f.chk label{display:flex;gap:6px;align-items:center;color:var(--ink);font-size:13px}
.f.chk input{width:auto}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.comments{margin-top:18px;border-top:1px solid var(--rule);padding-top:12px}
.cm{padding:8px 10px;background:var(--ground);border-radius:6px;margin-bottom:6px}
.cm .who{font-size:12px;color:var(--muted)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:8px 16px;border-radius:6px;z-index:60;font-size:13px}
.toast.err{background:var(--err)}

@media (max-width:1100px){
  .app{grid-template-columns:190px 1fr}
  main{padding:18px 20px 60px}
  .g4{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .trip .g2{grid-template-columns:1fr}
  .g2,.g3{grid-template-columns:1fr}
}
@media (max-width:720px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;padding:10px 12px;gap:6px;border-right:0;border-bottom:1px solid var(--rule)}
  .side .foot{display:none}
  .projs{flex-direction:row;overflow-x:auto;width:100%;margin:2px 0 4px;padding-bottom:4px}
  .projs-h{display:none}
  .proj{flex:0 0 200px;margin:0;padding:8px 10px}
  .proj .v,.proj .dd{display:none}
  .nav{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:2px;padding-bottom:4px}
  .nav a{flex:0 0 auto;white-space:nowrap;padding:6px 10px}
  main{padding:16px}
  .g4{grid-template-columns:1fr 1fr}
  .t .hide-m{display:none}
}
.t .btn{white-space:nowrap}
@media (min-width:901px){.trip .g2{grid-template-columns:3fr 2fr}}

.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px}
.thumb{display:block;text-decoration:none;color:var(--muted);font-size:11px}
.thumb img{width:100%;height:96px;object-fit:cover;border:1px solid var(--rule);border-radius:6px;display:block;margin-bottom:2px}
input.qty{width:64px;text-align:right;border:1px solid var(--rule);border-radius:4px;padding:2px 4px}

/* タスク詳細 */
.crumb{margin:-6px 0 8px;font-size:13px}
.ihead{display:flex;gap:10px;align-items:flex-end;margin-bottom:14px;flex-wrap:wrap}
.ihead h1{font-size:20px;margin:2px 0 0;line-height:1.4}
.ihead .sp{flex:1}
.ihead select{border:1px solid var(--rule);border-radius:6px;padding:6px 8px;background:#fff}
.idetail{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);align-items:start}
.idetail .card{margin-bottom:14px}
.card .body{font-size:14px;line-height:1.8}
.card.answer{border-left:3px solid var(--ok)}
dl.meta{display:grid;grid-template-columns:84px 1fr;gap:8px 10px;margin:0;font-size:13px}
dl.meta dt{color:var(--muted)} dl.meta dd{margin:0}
.cnt-ic{font-size:11px;color:var(--faint);font-weight:400;white-space:nowrap}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:10px}
.gal figure{margin:0}
.gal figcaption{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.gal figcaption .x{color:var(--err);text-decoration:none;margin-left:4px}
.gimg{display:block;width:100%;padding:0;border:1px solid var(--rule);border-radius:6px;overflow:hidden;background:var(--rule-soft);cursor:zoom-in}
.gimg img{display:block;width:100%;height:120px;object-fit:cover}
.gimg.sm{width:72px}.gimg.sm img{height:52px}
.cgal .gal{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));margin:8px 0 0}
.cgal .gimg img{height:84px}
.ficon{display:inline-block;width:72px;text-align:center;font-size:20px;color:var(--faint)}
.dz{border:2px dashed var(--rule);border-radius:8px;padding:18px;text-align:center;color:var(--muted);cursor:pointer;font-size:13px}
.dz:hover,.dz.on{border-color:var(--accent);background:var(--accent-hover);color:var(--accent)}
.composer{margin-top:10px;border-top:1px solid var(--rule-soft);padding-top:10px}
.composer textarea{width:100%;min-height:70px;border:1px solid var(--rule);border-radius:6px;padding:8px}
.crow{display:flex;gap:8px;align-items:center;margin-top:6px}.crow .sp{flex:1}
.pend{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chip{font-size:12px;background:var(--accent-soft);color:var(--accent);border-radius:12px;padding:1px 9px}
.chip a{text-decoration:none;margin-left:3px}
.lb{position:fixed;inset:0;background:rgba(10,12,16,.9);z-index:80;display:flex;align-items:center;justify-content:center;flex-direction:column}
.lb img{max-width:92vw;max-height:84vh;object-fit:contain;box-shadow:0 8px 40px rgba(0,0,0,.4)}
.lb-cap{color:#fff;font-size:13px;margin-top:10px}.lb-cap span{color:#aaa;margin:0 8px}.lb-cap a{color:#9cc2ff}
.lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:44px;height:44px;font-size:26px;cursor:pointer;line-height:1}
.lb button:hover{background:rgba(255,255,255,.25)}
.lb-x{top:16px;right:16px}.lb-p{left:16px;top:50%}.lb-n{right:16px;top:50%}
@media (max-width:900px){.idetail{grid-template-columns:1fr}}

/* 画像＋図説 */
.figs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:12px}
.fig{margin:0;border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}
.fimg{display:block;width:100%;padding:0;border:0;background:#F4F5F7;cursor:zoom-in}
.fimg img{display:block;width:100%;height:230px;object-fit:contain}
.fig figcaption{padding:9px 12px 10px;border-top:1px solid var(--rule-soft)}
.fig .cap{font-size:13.5px;line-height:1.7;white-space:pre-wrap}
.fig .fno{display:inline-block;font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 6px;margin-right:4px}
.fig .fmeta{font-size:11px;color:var(--faint);margin-top:4px;display:flex;gap:4px;flex-wrap:wrap;align-items:baseline}
.fig .fmeta>span:first-child{max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fig .fact{margin-left:auto;white-space:nowrap}.fig .fact a{margin-left:6px}.fig .fact .x{color:var(--err)}
.capin{width:100%;border:1px solid var(--accent);border-radius:6px;padding:6px 8px;font-size:13px}
.lb-txt{color:#fff;font-size:15px;max-width:80vw;text-align:center;margin-top:12px;white-space:pre-wrap;line-height:1.6}
.fig.wide{grid-column:1/-1}.fig.wide .fimg img{height:auto;max-height:420px}
@media (max-width:900px){.figs{grid-template-columns:1fr}}
.side-h{margin:22px 0 2px;padding:6px 10px;font-size:15px;border-left:4px solid var(--rule);background:var(--surface);border-radius:4px}
.side-h.side-jp{border-left-color:#7B4FB8}
.side-h.side-tw{border-left-color:#1B5FBF}
#pp .side-h:first-child{margin-top:4px}

/* ───── 0%：全体・案件種別・段階 ───── */
.gnav{margin:10px 0 2px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.projs-h.cur{margin-top:6px;padding:6px 8px 2px;color:var(--ink);font-weight:600;font-size:11.5px;border-top:1px solid var(--rule)}
.pk{display:inline-block;font-size:10.5px;line-height:17px;padding:0 6px;border-radius:4px;margin-right:4px;font-weight:600;white-space:nowrap}
.pk-popup{background:#FCE9F1;color:#B2366E}.pk-shop{background:#E8F2EC;color:#1E7A50}.pk-exhibit{background:#EEE9FA;color:#6A48B0}
.pk-food{background:#FDF0E1;color:#A85A12}.pk-product{background:#E9F0FA;color:#1B5FBF}
.ph{display:inline-block;font-size:10.5px;line-height:17px;padding:0 6px;border-radius:9px;border:1px solid var(--rule);color:var(--muted);white-space:nowrap}
.ph-会期中,.ph-営業中{border-color:#BFDCCB;background:var(--ok-soft);color:var(--ok);font-weight:600}
.ph-準備中{border-color:#D6E3F3;color:var(--accent)} .ph-提案{border-style:dashed} .ph-会期後{background:var(--warn-soft);color:var(--warn);border-color:#EFDFB5}
.ph-終了,.ph-中止{color:var(--faint)}
.proj .pk,.proj .ph{margin-bottom:4px}
.days.ph-big{font-size:22px;color:var(--ok)}
.err-t{color:var(--err)} .auto{font-size:10.5px;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 5px}
table.kv{width:100%;border-collapse:collapse;font-size:13px} table.kv th{text-align:left;color:var(--muted);font-weight:500;width:120px;padding:5px 8px 5px 0;vertical-align:top} table.kv td{padding:5px 0;border-bottom:1px solid var(--rule-soft)}
tr.old td{color:var(--muted)}
.rv-draft{background:#fff;border:1px dashed var(--faint);color:var(--muted)} .rv-waiting{background:var(--warn-soft);color:var(--warn)} .rv-fix{background:var(--err-soft);color:var(--err)}
.rv-ok,.rv-final{background:var(--ok-soft);color:var(--ok)} .rv-ng{background:var(--err);color:#fff}
.as-request{background:var(--warn-soft);color:var(--warn)} .as-received{background:var(--accent-soft);color:var(--accent)} .as-submitted,.as-installed{background:var(--ok-soft);color:var(--ok)} .as-na{background:var(--rule-soft);color:var(--faint)}
.dl-p-done{background:var(--ok-soft);color:var(--ok)} .dl-p-over{background:var(--err);color:#fff} .dl-p-soon{background:var(--warn-soft);color:var(--warn)} .dl-p-later{background:var(--accent-soft);color:var(--accent)} .dl-p-tbd,.dl-p-cancel{background:var(--rule-soft);color:var(--faint)}
tr.dl-done td{color:var(--muted)} tr.dl-over td:first-child b{color:var(--err)}
/* 甘特図 */
.gantt{padding:14px 14px 10px;overflow-x:auto}
.gh,.gr{display:grid;grid-template-columns:180px minmax(620px,1fr);align-items:center}
.gh .gm{position:relative;height:22px;border-bottom:1px solid var(--rule)} .gh .gm span{position:absolute;top:2px;font-size:11px;color:var(--muted);transform:translateX(2px);white-space:nowrap}
.gr{min-height:38px;border-bottom:1px solid var(--rule-soft)} .gr .gl,.gh .gl{font-size:12px;color:var(--ink);padding-right:10px;line-height:1.3}
.gt{position:relative;height:100%;min-height:38px}
.gmk{position:absolute;top:0;bottom:0;border-left:1px solid var(--rule-soft)} .gtoday{position:absolute;top:0;bottom:0;border-left:2px solid var(--err);z-index:2}
.gbar{position:absolute;top:8px;height:22px;border-radius:5px;font-size:11.5px;line-height:22px;padding:0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;z-index:1;border:1px solid rgba(0,0,0,.06)}
.gbar:hover{filter:brightness(.96);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.gbar.st-提案{border:1.5px dashed currentColor;background:#fff!important}
.glegend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.glegend i{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.glegend i.st-提案{border:1.5px dashed #B2366E;background:#fff} .gtoday-i{border-left:2px solid var(--err);width:0!important;height:12px!important}

.side .proj{padding:7px 9px;font-size:11.5px;line-height:1.45}
.side .proj b{font-size:12.5px;margin:2px 0 1px}
.side .proj .v{display:none}
.g3e{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){.g3e{grid-template-columns:1fr}}

/* ───── 日本語／中文 切替・自動翻訳タグ ───── */
.lang-sw{flex:none;display:inline-flex;gap:0;margin:2px 4px 8px;border:1px solid var(--rule);border-radius:6px;overflow:hidden;align-self:flex-start;background:var(--surface)}
.lang-sw button{border:0;background:transparent;padding:4px 10px;font-size:12px;color:var(--muted);cursor:pointer;font-family:inherit}
.lang-sw button+button{border-left:1px solid var(--rule)}
.lang-sw button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.lang-sw.float{position:fixed;top:12px;right:12px;z-index:70;margin:0}
.tr-b{display:inline-block;font-size:10px;line-height:1.5;padding:0 5px;margin:0 4px 0 0;border-radius:3px;background:var(--accent-soft);color:var(--accent);vertical-align:1px;cursor:pointer;font-weight:600;white-space:nowrap;letter-spacing:0;text-transform:none}
.tr-b:hover{background:var(--accent);color:#fff}
.tr-pop{position:absolute;z-index:80;max-width:min(440px,calc(100vw - 16px));background:var(--surface);border:1px solid var(--rule);box-shadow:0 8px 28px rgba(0,0,0,.14);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.65;color:var(--ink)}
.tr-pop-h{font-size:11px;color:var(--muted);margin-bottom:4px;font-weight:600}
.tr-pop-b{white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow:auto}
