  :root{
    --bg:#f4f5f7; --surface:#fff; --ink:#14161a; --sub:#6b7280; --line:#e5e7eb;
    --accent:#3b5bdb; --accent-soft:#eef2ff; --accent-ink:#2f48b3;
    --ok:#0f9d6b;
    --q0:#e5e7eb; --q1:#a5b8f8; --q2:#3b5bdb;
    --p-bg:#0e1014; --p-ink:#f3f4f6; --p-sub:#9aa3b2; --p-line:#2b303a; --p-card:#1b1e24;
    --p-lv0:#3a3f4a; --p-lv1:#4c6ef5; --p-lv2:#91a7ff;
    --p-r1:#5f6b85; --p-r2:#91a7ff;
    --d-yes:#91a7ff; --d-neu:#8a93a6; --d-no:#e8a15a;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{min-height:100%}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
    color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;
  }
  button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
  button:disabled{cursor:default}
  textarea,input,select{font:inherit;color:inherit}
  ul{list-style:none}

  /* ---------- 上部バー ---------- */
  .top{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
  .top h1{font-size:15px;font-weight:700;line-height:1.4}
  .top .ver{font-size:12px;color:var(--sub);margin-top:2px}
  .tabs{margin-left:auto;display:inline-flex;background:#eef0f3;border-radius:12px;padding:4px;flex-wrap:wrap}
  .tabs button{padding:8px 14px;border-radius:9px;font-size:14px;font-weight:600;color:#4b5563}
  .tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.1)}

  .stage{display:grid;gap:28px;padding:24px 20px 48px;justify-content:center}
  .stage.mode-phone{grid-template-columns:auto}
  .stage.mode-phone #adminWrap{display:none}
  .stage.mode-admin{grid-template-columns:minmax(0,1200px)}
  .stage.mode-admin #phoneWrap{display:none}
  .stage.mode-both{grid-template-columns:auto minmax(0,1100px);align-items:start}
  @media (max-width:1180px){ .stage.mode-both{grid-template-columns:minmax(0,1100px)} .stage.mode-both #phoneWrap{justify-self:center} }

  /* ---------- スマホ ---------- */
  #phoneWrap{display:flex;flex-direction:column;align-items:center;gap:14px}
  .phone{
    width:375px;height:760px;border-radius:44px;background:var(--surface);
    box-shadow:0 0 0 10px #101216,0 30px 60px -20px rgba(0,0,0,.35);
    overflow:hidden;position:relative;display:flex;flex-direction:column;flex:none;
  }
  .status{display:flex;justify-content:space-between;padding:14px 28px 6px;font-size:13px;font-weight:600;flex:none}
  .status .scn{color:var(--sub);font-weight:500}
  .pv{flex:1;overflow:auto;padding:4px 22px 0;display:flex;flex-direction:column}
  .pfoot{flex:none;border-top:1px solid var(--line);padding:10px 22px 18px;display:flex;justify-content:center}
  .pfoot button{font-size:14px;font-weight:600;color:var(--accent);padding:6px 10px}
  .devbar{font-size:12px;color:var(--sub);text-align:center;line-height:1.8;max-width:375px}
  .devbar b{color:var(--ink);font-variant-numeric:tabular-nums}
  .devbar button{color:var(--accent);font-weight:600;font-size:12px;text-decoration:underline;text-underline-offset:2px}
  @media (max-width:440px){
    .stage{padding:16px 0 40px}
    .phone{width:100%;height:auto;min-height:calc(100vh - 140px);border-radius:0;box-shadow:none}
    .devbar{padding:0 16px}
  }

  .eyebrow{font-size:12px;color:var(--sub);margin-top:12px}
  .title{font-size:23px;font-weight:700;line-height:1.4;margin-top:6px;letter-spacing:-.01em}
  .title.q{font-size:19px}
  .lead{font-size:15px;color:#4b5563;line-height:1.7;margin-top:10px}
  .spacer{flex:1;min-height:20px}
  .btn{
    width:100%;padding:16px;border-radius:14px;background:var(--ink);color:#fff;
    font-weight:600;font-size:16px;transition:opacity .15s,transform .05s;
  }
  .btn:active{transform:scale(.99)}
  .btn:disabled{opacity:.28}
  .btn.sub{background:#eef0f3;color:var(--ink);padding:13px;font-size:15px;margin-top:12px}
  .btn.ghost{background:none;color:var(--sub);font-weight:500;padding:12px;font-size:15px}
  .row{display:flex;gap:10px}
  .row>.btn.ghost{flex:0 0 96px}
  .bottom{position:sticky;bottom:0;padding:14px 0 18px;margin-top:auto;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 22%)}

  .field{margin-top:22px}
  .field label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:8px}
  .inp,.field textarea{width:100%;padding:14px;border-radius:14px;border:1.5px solid var(--line);font-size:16px;line-height:1.6;outline:none;background:#fff}
  .field textarea{min-height:120px;resize:none}
  .inp:focus,.field textarea:focus{border-color:var(--accent)}
  .hint{font-size:12px;color:var(--sub);margin-top:6px;line-height:1.6}
  .saved{font-size:14px;color:var(--ok);margin-top:10px;text-align:center}
  .idline{font-size:12px;color:var(--sub);text-align:center;padding:14px 0 18px;font-variant-numeric:tabular-nums}

  /* 点数 */
  .score{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:26px}
  .score.s11{grid-template-columns:repeat(6,1fr);gap:8px}
  .score button{aspect-ratio:1;border-radius:16px;background:#f3f4f6;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;transition:background .12s,color .12s}
  .score.s11 button{border-radius:14px;font-size:20px}
  .score button.on{background:var(--accent);color:#fff}
  .score-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--sub);margin-top:10px}

  /* ステップ */
  .steps{display:flex;gap:6px;margin-top:10px}
  .steps i{flex:1;height:4px;border-radius:2px;background:#e5e7eb}
  .steps i.on{background:var(--accent)}

  /* 入力の目安 */
  .guide{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--accent-soft);font-size:13px;line-height:1.7;color:#2f3a66}
  .guide b{display:block;font-size:12px;color:var(--accent-ink);margin-bottom:2px}
  .guide .g2{color:#5a6286;margin-top:4px;font-size:12px}

  /* 各要素（Field / Observe / Action / Facilitator：Think・Feel・Being） */
  .gh{margin-top:16px;font-size:15px;font-weight:700;color:#374151}
  .gh small{font-weight:500;color:var(--sub);font-size:12px;margin-left:6px}
  .dom.ind{margin-left:16px}
  .proj .sbgh{font-size:.95em;font-weight:700;color:var(--p-ink);margin-top:.2em}
  .proj .sb.ind .nm{padding-left:1em}
  .dom{padding:14px;border-radius:16px;background:#f7f8fa;margin-top:10px}
  .dom .hd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  .dom .nm{font-size:17px;font-weight:700}
  .dom .ds{font-size:13px;color:#4b5563}
  .dom .dn{font-size:11.5px;color:var(--sub);margin-top:2px}
  .lv{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
  .lv button{padding:8px 4px;border-radius:11px;background:#fff;border:1.5px solid var(--line);font-size:12.5px;font-weight:600;line-height:1.35;color:#374151}
  .lv button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
  .dom.done{outline:0}
  .dom.done .nm::after{content:"✓";font-size:13px;color:var(--accent);margin-left:6px}

  /* 選択肢 */
  .choices{display:flex;flex-direction:column;gap:10px;margin-top:16px}
  .choices button{padding:16px 18px;border-radius:16px;background:#f7f8fa;text-align:left;font-size:16px;font-weight:600;border:2px solid transparent}
  .choices button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
  .qn{display:inline-block;font-size:12px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:2px 9px;margin-top:16px}

  /* 送信済み */
  .okmark{width:52px;height:52px;border-radius:50%;background:#e7f6ef;color:var(--ok);display:grid;place-items:center;font-size:26px;font-weight:700;margin-top:28px}
  .mylist{margin-top:18px;border-top:1px solid var(--line)}
  .mylist li{display:flex;justify-content:space-between;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:14px}
  .mylist li b{font-weight:700}
  .mylist li span{color:#4b5563;text-align:right}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
  .chip{font-size:13px;padding:6px 11px;border-radius:999px;background:#f3f4f6;color:#4b5563}
  .chip.ok{background:#e7f6ef;color:#0b7a53}

  /* 点差 */
  .cmp{margin-top:26px;display:flex;align-items:center;justify-content:center;gap:16px}
  .cmp .box{flex:1;text-align:center;padding:22px 8px;border-radius:20px;background:#f7f8fa}
  .cmp .box.b{background:var(--accent-soft)}
  .cmp .num{font-size:56px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
  .cmp .box.b .num{color:var(--accent-ink)}
  .cmp .lb{font-size:12px;color:var(--sub);margin-top:8px}
  .cmp .arrow{color:#9ca3af;font-size:22px}
  .diff{text-align:center;margin-top:16px;font-size:15px;color:#4b5563}
  .diff b{font-size:20px;color:var(--ink)}
  .ask{margin-top:22px;padding:16px 18px;border-radius:16px;background:#fff;border:1.5px solid var(--line);font-size:15px;line-height:1.7}
  .ask small{display:block;color:var(--sub);font-size:12.5px;margin-top:8px;line-height:1.65}

  /* グループ（スマホ） */
  .gbox{margin-top:22px;padding:20px;border-radius:20px;background:var(--accent-soft);text-align:center}
  .gbox.no{background:#fdf3e8}
  .gbox .side{font-size:13px;font-weight:600;color:#4b5563}
  .gbox .gname{font-size:30px;font-weight:700;margin-top:4px}
  .gbox .mem{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
  .gbox .mem span{font-size:13px;padding:5px 10px;border-radius:999px;background:#fff}
  .gbox .mem span.me{font-weight:700;outline:1.5px solid var(--accent)}

  .sentlist{margin-top:18px}
  .sentlist h4{font-size:12px;color:var(--sub);font-weight:600;margin-bottom:6px}
  .sentlist li{font-size:13.5px;line-height:1.6;padding:10px 12px;border-radius:12px;background:#f7f8fa;margin-top:6px;white-space:pre-wrap;word-break:break-word}

  .toast{position:absolute;left:22px;right:22px;bottom:84px;background:var(--ink);color:#fff;border-radius:14px;padding:13px 16px;font-size:14px;text-align:center;opacity:0;transform:translateY(8px);transition:all .2s;pointer-events:none;z-index:9}
  .toast.on{opacity:1;transform:none}

  /* ---------- 運営画面 ---------- */
  .admin{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}
  @media (max-width:760px){ .admin{grid-template-columns:1fr} .scenes{position:static!important} }
  .scenes{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px;position:sticky;top:76px}
  .scenes h3{font-size:11px;letter-spacing:.06em;color:var(--sub);font-weight:600;margin:6px 8px 8px}
  .scenes button.sc{display:grid;grid-template-columns:48px 1fr;gap:1px 6px;width:100%;text-align:left;padding:8px 8px;border-radius:10px;align-items:baseline}
  .scenes button.sc:hover{background:#f3f4f6}
  .scenes button.sc.on{background:var(--accent-soft)}
  .scenes .t{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}
  .scenes .nm{font-size:14px;font-weight:600;color:#374151}
  .scenes button.sc.on .nm{color:var(--accent-ink)}
  .scenes .meta{grid-column:2;font-size:11px;color:var(--sub)}
  .scenes .meta.pj{color:#7c5a12}
  .scenes .nav2{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
  .scenes .nav2 button{flex:1;padding:8px;border-radius:10px;background:#f3f4f6;font-size:13px;font-weight:600}

  .amain{display:flex;flex-direction:column;gap:16px;min-width:0}
  .pbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pbar .lb{font-size:12px;color:var(--sub);font-weight:600}
  .seg{display:inline-flex;flex-wrap:wrap;background:#eef0f3;border-radius:10px;padding:3px}
  .seg button{padding:6px 11px;border-radius:8px;font-size:12.5px;color:#4b5563;font-weight:600}
  .seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
  .pbar .fs{margin-left:auto;font-size:13px;font-weight:600;color:var(--accent);padding:6px 8px}

  .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px}
  .card h3{font-size:15px;font-weight:700}
  .card h3 small{font-size:12px;color:var(--sub);font-weight:500;margin-left:8px}
  .card .cap{font-size:13.5px;line-height:1.75;color:#374151;margin-top:8px}
  .card .cap b{display:inline-block;min-width:7.5em;color:var(--sub);font-weight:600}
  .card .note{font-size:12px;color:var(--sub);line-height:1.7;margin-top:8px}
  .abtn{padding:9px 14px;border-radius:10px;background:var(--ink);color:#fff;font-size:13.5px;font-weight:600}
  .abtn.light{background:#eef0f3;color:var(--ink)}
  .abtn.danger{background:#fff;color:#b42318;border:1px solid #f1c4c0}
  .tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}
  .tools select{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:13.5px}
  .tools label{font-size:13px;color:#374151;display:flex;gap:8px;align-items:center}

  .tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
  .tbl th{font-size:11.5px;color:var(--sub);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
  .tbl td{padding:7px 8px;border-bottom:1px solid #f0f1f3;font-variant-numeric:tabular-nums;vertical-align:middle}
  .tblwrap{overflow-x:auto;max-height:420px;overflow-y:auto}
  .tag{display:inline-block;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:999px;background:#f3f4f6;color:var(--sub);margin-left:6px;vertical-align:1px}
  .tag.me{background:var(--accent-soft);color:var(--accent-ink)}
  .sq{display:inline-flex;gap:3px;vertical-align:middle}
  .sq i{width:12px;height:12px;border-radius:3px;display:block}
  .sq i.q0{background:var(--q0)} .sq i.q1{background:var(--q1)} .sq i.q2{background:var(--q2)}
  .legend-l{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--sub);margin-top:8px}
  .legend-l i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

  .txtlist{margin-top:10px;max-height:320px;overflow:auto}
  .txtlist li{font-size:13.5px;line-height:1.65;padding:9px 0;border-bottom:1px solid #f0f1f3;white-space:pre-wrap;word-break:break-word}
  .txtlist .who{color:var(--sub);font-size:12px;margin-left:6px}
  .dtag{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;margin-right:6px;vertical-align:1px}
  .dtag.yes{background:#e6ebff;color:#2f48b3} .dtag.neutral{background:#eef0f3;color:#4b5563} .dtag.no{background:#fdf0e1;color:#9a5a12}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  @media (max-width:760px){ .two-col{grid-template-columns:1fr} }
  .card h4{font-size:13px;font-weight:700;color:#374151;margin-top:14px}

  /* グループ一覧（運営パネル） */
  .gcols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
  @media (max-width:760px){ .gcols{grid-template-columns:1fr} }
  .gside h5{font-size:13px;font-weight:700;margin-bottom:8px}
  .gside h5 small{font-weight:500;color:var(--sub);margin-left:6px}
  .gcard{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px}
  .gcard .gt{font-size:13px;font-weight:700}
  .gcard .gt small{color:var(--sub);font-weight:500;margin-left:4px}
  .gcard .gm{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
  .gcard .gm span{font-size:12.5px;padding:3px 9px;border-radius:999px;background:#f3f4f6}
  .gcard .gm span em{font-style:normal;font-size:10.5px;color:var(--sub);margin-left:4px}
  .gside.yes .gcard{border-color:#c9d3fb}
  .gside.no .gcard{border-color:#f3d2ad}
  .unas{margin-top:12px;font-size:12.5px;color:var(--sub);line-height:1.8}
  .unas span{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#f3f4f6;color:#374151;margin:2px 4px 2px 0}

  /* ---------- プロジェクター（文字の大きさは幅から決める） ---------- */
  .proj{
    position:relative;width:100%;aspect-ratio:16/9;background:var(--p-bg);color:var(--p-ink);border-radius:14px;
    box-shadow:0 0 0 6px #1b1e24,0 24px 50px -20px rgba(0,0,0,.4);
    padding:2em 2.6em;display:flex;flex-direction:column;overflow:hidden;font-size:16px;
  }
  .proj:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;box-shadow:none}
  .proj:-webkit-full-screen{width:100vw;height:100vh;border-radius:0;box-shadow:none}
  .proj .ph{display:flex;justify-content:space-between;align-items:flex-start;gap:1em;flex:none}
  .proj h2{font-size:1.6em;font-weight:700;letter-spacing:-.01em;line-height:1.3}
  .proj .psub{font-size:.85em;color:var(--p-sub);margin-top:.3em}
  .proj .stamp{font-size:.75em;color:var(--p-sub);white-space:nowrap;font-variant-numeric:tabular-nums}
  .pbody{flex:1;min-height:0;margin-top:1.3em;display:flex;gap:2.4em}
  .pempty{flex:1;display:grid;place-items:center;color:var(--p-sub);font-size:1.1em;text-align:center;line-height:1.8}

  .pleg{display:flex;gap:1.2em;flex-wrap:wrap;font-size:.75em;color:var(--p-sub)}
  .pleg i{display:inline-block;width:.95em;height:.95em;border-radius:.2em;margin-right:.4em;vertical-align:-.12em}
  .sbs{flex:1.6;min-width:0;display:flex;flex-direction:column;gap:.7em;justify-content:center}
  .sb{display:grid;grid-template-columns:7em 1fr;gap:.8em;align-items:center}
  .sb .nm{font-weight:700;font-size:1.05em;line-height:1.15}
  .sb .nm small{display:block;font-size:.62em;color:var(--p-sub);font-weight:500;margin-top:.15em}
  .bar{display:flex;height:2em;border-radius:.35em;overflow:hidden;background:var(--p-card)}
  .bar span{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9em;font-variant-numeric:tabular-nums;flex:none;overflow:hidden;white-space:nowrap}
  .bar .l2{background:var(--p-lv2);color:#0e1014}
  .bar .l1{background:var(--p-lv1);color:#fff}
  .bar .l0{background:var(--p-lv0);color:#cbd2de}
  .two{display:flex;flex-direction:column;gap:.25em}
  .rl{display:grid;grid-template-columns:2.8em 1fr;align-items:center;gap:.5em}
  .rl>span{font-size:.72em;color:var(--p-sub);white-space:nowrap}
  .rl .bar{height:1.35em}
  .rl .bar span{font-size:.75em}

  .hbox{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
  .hbox h4{font-size:.85em;color:var(--p-sub);font-weight:600}
  .hbox .mean{font-size:2.6em;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;margin-top:.1em}
  .hbox .mean small{font-size:.32em;color:var(--p-sub);font-weight:500;margin-left:.4em}
  .hbox .mean .ar{font-size:.5em;color:var(--p-sub);margin:0 .25em;vertical-align:.3em}
  .hcols{height:9em;display:flex;align-items:flex-end;gap:.3em;margin-top:.8em;border-bottom:1px solid var(--p-line)}
  .hc{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}
  .hc b{font-size:.7em;color:#cbd2de;margin-bottom:.15em;font-variant-numeric:tabular-nums}
  .hc i{display:block;width:100%;background:var(--p-lv1);border-radius:.2em .2em 0 0}
  .hc .pair{display:flex;align-items:flex-end;gap:.12em;width:100%;height:100%}
  .hc .pair i{flex:1}
  .hc .pair i.a{background:var(--p-r1)}
  .hc .pair i.b{background:var(--p-r2)}
  .hx{display:flex;gap:.3em;font-size:.7em;color:var(--p-sub);margin-top:.35em}
  .hx span{flex:1;text-align:center}
  .hnote{font-size:.75em;color:var(--p-sub);margin-top:.9em;line-height:1.6}
  .hnote b{color:var(--p-ink)}

  /* 入力状況 */
  .tiles{flex:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:1em}
  .tile{background:var(--p-card);border-radius:.8em;padding:1em 1.2em;display:flex;flex-direction:column;justify-content:space-between;border:2px solid transparent}
  .tile.on{border-color:var(--p-lv1)}
  .tile .k{font-size:.85em;color:var(--p-sub);font-weight:600}
  .tile .v{font-size:2.6em;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
  .tile .v small{font-size:.38em;color:var(--p-sub);font-weight:500;margin-left:.2em}
  .tile .pg{height:.35em;border-radius:.2em;background:#2b303a;overflow:hidden}
  .tile .pg i{display:block;height:100%;background:var(--p-lv1)}

  /* 深まったか */
  .deepw{flex:1;min-width:0;display:flex;flex-direction:column;gap:1em}
  .deepw .bar{height:2.3em;flex:none}
  .bar .dy{background:var(--d-yes);color:#0e1014}
  .bar .dn{background:var(--d-neu);color:#0e1014}
  .bar .dx{background:var(--d-no);color:#0e1014}
  .rcols{flex:1;min-height:0;display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:minmax(0,1fr);gap:1.4em}
  .rcol{min-height:0;display:flex;flex-direction:column}
  .rcol h4{font-size:.95em;font-weight:700;padding-bottom:.4em;border-bottom:.18em solid var(--p-line);flex:none}
  .rcol h4 small{font-size:.8em;color:var(--p-sub);font-weight:500;margin-left:.4em;font-variant-numeric:tabular-nums}
  .rcol.yes h4{border-color:var(--d-yes)} .rcol.neutral h4{border-color:var(--d-neu)} .rcol.no h4{border-color:var(--d-no)}
  .rcol ul{flex:1;overflow:auto;min-height:0;margin-top:.4em}
  .rcol li{font-size:.78em;line-height:1.55;padding:.45em 0;border-bottom:1px solid #20242c;color:#dde2ea;word-break:break-word}

  /* グループ（プロジェクター） */
  .proj .gcols{flex:1;min-height:0;margin-top:0;gap:2em;overflow:auto;align-content:start}
  .proj .gside h5{font-size:1em;color:var(--p-ink)}
  .proj .gside h5 small{color:var(--p-sub)}
  .proj .gwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(11em,1fr));gap:.7em}
  .proj .gcard{border:0;background:var(--p-card);border-radius:.6em;padding:.6em .8em;margin-top:0}
  .proj .gside.yes .gcard{box-shadow:inset .25em 0 0 var(--d-yes)}
  .proj .gside.no .gcard{box-shadow:inset .25em 0 0 var(--d-no)}
  .proj .gcard .gt{font-size:.85em}
  .proj .gcard .gt small{color:var(--p-sub)}
  .proj .gcard .gm{gap:.3em;margin-top:.4em}
  .proj .gcard .gm span{font-size:.78em;padding:.15em .6em;background:#2b303a;color:#e5e9f0}
  .proj .gcard .gm span em{display:none}
  .proj .unas{color:var(--p-sub);font-size:.75em;margin-top:.8em}
  .proj .unas span{background:#2b303a;color:#cbd2de}

  /* ---------- 本番用の上書き（ここから下はプロトタイプにない） ---------- */
  /* 参加者のスマホ：枠の絵をやめ、画面いっぱいに出す */
  body.p{background:var(--surface)}
  body.p .phone{width:100%;max-width:520px;height:auto;min-height:100vh;min-height:100dvh;margin:0 auto;border-radius:0;box-shadow:none}
  body.p .phone{overflow:visible}
  body.p .pv{overflow:visible;padding-bottom:8px}
  body.p .toast{position:fixed;left:50%;right:auto;width:min(476px,calc(100% - 44px));transform:translate(-50%,8px)}
  body.p .toast.on{transform:translate(-50%,0)}
  .status .net{font-weight:600}
  .status .net.off{color:#b42318}
  .status .net.wait{color:#9a5a12}
  .err{font-size:13px;color:#b42318;margin-top:8px;line-height:1.6}
  .linkbtn{color:var(--sub);font-size:12px;text-decoration:underline;text-underline-offset:2px}

  /* 運営画面 */
  body.a .stage{grid-template-columns:minmax(0,1200px)}
  .login{max-width:420px;margin:40px auto}
  .login .inp{margin-top:12px}
  .login .abtn{margin-top:12px;width:100%;padding:12px}
  .top .who{font-size:12px;color:var(--sub);margin-left:auto}
  .top .who button{color:var(--accent);font-weight:600;font-size:12px;margin-left:8px}
  .offline{font-size:12px;color:#b42318;font-weight:600}

  /* ---------- プロジェクター：明るい版（2026-10-26。上の暗いプロジェクターの指定を上書きする） ---------- */
  .proj{
    --pj-bg:#fffdf8; --pj-ink:#1f2430; --pj-sub:#6b6f7b; --pj-line:#ece8df; --pj-card:#ffffff;
    --pj-lv0:#ebe9e3; --pj-lv1:#86b6ef; --pj-lv2:#2a78d6;
    --pj-r1:#c9c6bd; --pj-r2:#2a78d6;
    --pj-yes:#2a78d6; --pj-neu:#bdbab1; --pj-no:#eb6834;
    --pj-yes-soft:#eaf2fc; --pj-neu-soft:#f3f1ec; --pj-no-soft:#fdeee7;
    --pj-sun:#fff3cc;
    background:var(--pj-bg); color:var(--pj-ink);
    box-shadow:0 0 0 1px var(--pj-line),0 24px 50px -24px rgba(31,36,48,.25);
  }
  .proj::before,.proj::after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0}
  .proj::before{width:24em;height:24em;right:-8em;top:-10em;background:radial-gradient(circle,#ffe9a8 0%,rgba(255,233,168,0) 68%)}
  .proj::after{width:20em;height:20em;left:-7em;bottom:-9em;background:radial-gradient(circle,#d6e7ff 0%,rgba(214,231,255,0) 68%)}
  .proj>*{position:relative;z-index:1}
  .proj h2{color:var(--pj-ink)}
  .proj .psub,.proj .pempty,.proj .pleg{color:var(--pj-sub)}
  .proj .stamp{color:#6b5200;background:var(--pj-sun);border-radius:999px;padding:.35em .9em;font-weight:700}
  .proj .pleg i{border-radius:.25em}

  /* 要素ごとの行 */
  .vrows{flex:1.75;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.45em}
  .vgh{font-size:.78em;font-weight:800;color:var(--pj-sub);letter-spacing:.04em;margin-top:.25em}
  .vrow{display:grid;grid-template-columns:7.4em minmax(0,1fr) 4.8em;gap:.9em;align-items:center;background:var(--pj-card);border-radius:.75em;padding:.4em .9em;box-shadow:0 1px 0 var(--pj-line),0 6px 16px -14px rgba(31,36,48,.35)}
  .vrow .nm{font-weight:800;font-size:1em;line-height:1.1}
  .vrow .nm small{display:block;font-size:.6em;color:var(--pj-sub);font-weight:600;margin-top:.2em}
  .vrow.ind .nm{border-left:.22em solid var(--pj-lv1);padding-left:.5em}
  .sbar{display:flex;gap:2px;height:1.5em;min-width:0}
  .sbar span{border-radius:.35em;display:flex;align-items:center;justify-content:center;font-size:.7em;font-weight:800;min-width:0;overflow:hidden;white-space:nowrap}
  .sbar .l2{background:var(--pj-lv2);color:#fff}
  .sbar .l1{background:var(--pj-lv1);color:#0d2a52}
  .sbar .l0{background:var(--pj-lv0);color:var(--pj-sub)}
  .reach,.delta{text-align:right;font-weight:800;line-height:1}
  .reach{font-size:1.3em}
  .reach small,.delta small{display:block;font-size:.5em;font-weight:600;color:var(--pj-sub);margin-top:.2em;white-space:nowrap}
  .vrow.cmp{padding:.32em .9em}
  .pair2{display:flex;flex-direction:column;gap:.22em;min-width:0}
  .pair2 .rl{display:grid;grid-template-columns:2.7em minmax(0,1fr);align-items:center;gap:.4em}
  .pair2 .rl>em{font-style:normal;font-size:.66em;color:var(--pj-sub);font-weight:600}
  .pair2 .sbar{height:1em}
  .pair2 .sbar span{font-size:.62em}
  .pair2 .rl.r1 .sbar{opacity:.5}
  .delta{font-size:1.2em}

  /* 右側のカード（満足度） */
  .side{flex:1;min-width:0;display:flex;flex-direction:column;gap:.8em;justify-content:center}
  .scard{background:var(--pj-card);border-radius:1em;padding:.9em 1.1em;box-shadow:0 1px 0 var(--pj-line),0 12px 26px -20px rgba(31,36,48,.4)}
  .scard h4{font-size:.8em;color:var(--pj-sub);font-weight:800}
  .hero{font-size:2.6em;font-weight:800;line-height:1.05;margin-top:.1em;white-space:nowrap}
  .hero small{font-size:.3em;color:var(--pj-sub);font-weight:600;margin-left:.3em}
  .hero .ar{font-size:.5em;color:var(--pj-sub);margin:0 .15em;vertical-align:.2em}
  .dpill{display:inline-block;font-size:.32em;font-weight:800;color:#6b5200;background:var(--pj-sun);border-radius:999px;padding:.25em .7em;vertical-align:.7em;margin-left:.4em}
  .hist{height:6.5em;display:flex;align-items:flex-end;gap:.28em;margin-top:.7em;border-bottom:1px solid var(--pj-line)}
  .hist .c{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}
  .hist .c b{font-size:.62em;color:var(--pj-sub);margin-bottom:.15em}
  .hist .c i{display:block;width:100%;background:var(--pj-lv2);border-radius:.25em .25em 0 0}
  .hist .pr{display:flex;align-items:flex-end;gap:2px;width:100%;height:100%}
  .hist .pr i{flex:1;border-radius:.2em .2em 0 0}
  .hist .pr i.a{background:var(--pj-r1)}
  .hist .pr i.b{background:var(--pj-r2)}
  .hx2{display:flex;gap:.28em;font-size:.62em;color:var(--pj-sub);margin-top:.3em}
  .hx2 span{flex:1;text-align:center}
  .hnote2{font-size:.66em;color:var(--pj-sub);margin-top:.5em}
  .trio{display:grid;grid-template-columns:repeat(3,1fr);gap:.5em}
  .trio div{background:var(--pj-card);border-radius:.8em;padding:.55em .6em;text-align:center;box-shadow:0 1px 0 var(--pj-line),0 8px 18px -16px rgba(31,36,48,.4)}
  .trio b{display:block;font-size:1.6em;font-weight:800;line-height:1.1}
  .trio span{font-size:.68em;color:var(--pj-sub);font-weight:700}

  /* 入力状況 */
  .tiles2{flex:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:1em}
  .t2{background:var(--pj-card);border-radius:1em;padding:1em 1.2em;display:flex;align-items:center;gap:1em;border:2px solid transparent;box-shadow:0 1px 0 var(--pj-line),0 12px 26px -20px rgba(31,36,48,.4)}
  .t2.on{border-color:var(--pj-lv2);background:#f5f9ff}
  .ring{position:relative;width:4.4em;height:4.4em;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--pj-lv2) calc(var(--p) * 1%), var(--pj-lv0) 0)}
  .ring::before{content:"";position:absolute;inset:.55em;border-radius:50%;background:var(--pj-card)}
  .t2.on .ring::before{background:#f5f9ff}
  .ring span{position:relative;font-size:.85em;font-weight:800}
  .ring.plain{background:var(--pj-sun)}
  .ring.plain::before{display:none}
  .ring.plain span{font-size:1.3em;color:#6b5200}
  .t2 .k{font-size:.8em;color:var(--pj-sub);font-weight:800}
  .t2 .v{font-size:2.3em;font-weight:800;line-height:1.05}
  .t2 .v small{font-size:.38em;color:var(--pj-sub);font-weight:600;margin-left:.2em}

  /* 深まったか */
  .deep2{flex:1;min-width:0;display:flex;flex-direction:column;gap:1em}
  .dbar{display:flex;gap:3px;height:2.5em;flex:none}
  .dbar span{border-radius:.55em;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95em;white-space:nowrap;overflow:hidden;min-width:0}
  .dbar .y{background:var(--pj-yes);color:#fff}
  .dbar .n{background:var(--pj-neu);color:var(--pj-ink)}
  .dbar .x{background:var(--pj-no);color:#fff}
  .notes{flex:1;min-height:0;display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:minmax(0,1fr);gap:1.2em}
  .ncol{min-height:0;display:flex;flex-direction:column}
  .ncol h4{font-size:.95em;font-weight:800;display:flex;align-items:center;gap:.4em;flex:none}
  .ncol h4 i{width:.8em;height:.8em;border-radius:.25em;display:inline-block;flex:none}
  .ncol h4 small{font-size:.75em;color:var(--pj-sub);font-weight:600}
  .ncol ul{flex:1;min-height:0;overflow:auto;margin-top:.5em;display:flex;flex-direction:column;gap:.45em}
  .ncol li{font-size:.76em;line-height:1.5;padding:.55em .8em;border-radius:.6em;background:var(--pj-neu-soft);word-break:break-word}
  .ncol.yes li{background:var(--pj-yes-soft)}
  .ncol.no li{background:var(--pj-no-soft)}
  .ncol li.none{background:none;color:var(--pj-sub);padding-left:0}

  /* グループ（プロジェクター） */
  .proj .gside h5{color:var(--pj-ink)}
  .proj .gside h5 small{color:var(--pj-sub)}
  .proj .gcard{background:var(--pj-card);box-shadow:0 1px 0 var(--pj-line),0 8px 18px -16px rgba(31,36,48,.4)}
  .proj .gside.yes .gcard{box-shadow:inset .3em 0 0 var(--pj-yes),0 1px 0 var(--pj-line)}
  .proj .gside.no .gcard{box-shadow:inset .3em 0 0 var(--pj-no),0 1px 0 var(--pj-line)}
  .proj .gcard .gt small{color:var(--pj-sub)}
  .proj .gcard .gm span{background:var(--pj-neu-soft);color:var(--pj-ink)}
  .proj .unas{color:var(--pj-sub)}
  .proj .unas span{background:var(--pj-neu-soft);color:var(--pj-ink)}

  /* 参加者のスマホ：少し明るく */
  body.p .eyebrow{display:inline-block;align-self:flex-start;background:#fff3cc;color:#6b5200;border-radius:999px;padding:3px 11px;font-weight:700;margin-top:14px}
  body.p .status{background:linear-gradient(90deg,#fff3cc,#e3efff)}
