/* nemuツール 共通スタイル v01 */
:root{
  --bg:#12101a; --panel:#1c1a28; --panel2:#242130; --deep:#15131f;
  --line:#2e2b3f; --txt:#eae7f5; --sub:#9b95b5;
  --acc:#ff5fa2; --acc2:#7c5cff; --gold:#ffc65c; --ok:#3ddc97; --ng:#ff6b6b;
  --hot:#ff6b4a; --cold:#4aa8ff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--txt);
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic UI",sans-serif;
  padding:14px;max-width:1100px;margin:0 auto;-webkit-text-size-adjust:100%}
button{font-family:inherit;cursor:pointer;border:none;border-radius:10px;font-weight:700;transition:.15s}
button:active{transform:scale(.97)}
button:disabled{opacity:.45;cursor:default;transform:none}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;padding:9px 10px;font-family:inherit;font-size:14px;width:100%}
input:focus,textarea:focus{outline:none;border-color:var(--acc2)}

/* ---- TOPページへ戻る（全画面に必ず置く） ---- */
.toplink{display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  color:var(--sub);font-size:12px;background:var(--panel);border:1px solid var(--line);
  border-radius:20px;padding:7px 14px;margin-bottom:12px;transition:.15s}
.toplink:hover{color:var(--txt);border-color:var(--acc);transform:translateX(-2px)}

/* ---- Xへ投稿 ---- */
.share{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  margin-top:12px;padding:12px;font-size:13px;background:#000;color:#fff;border:1px solid #3a3a44}
.share:hover{background:#15151c;border-color:#55555f}
.share svg{flex:0 0 auto}

/* ---- トップ（部屋作成／入室） ---- */
.top{max-width:420px;margin:2vh auto 6vh;text-align:center}
.top .logo{font-size:26px;font-weight:800;margin-bottom:6px}
.top .logo em{font-style:normal;background:linear-gradient(90deg,var(--acc),var(--acc2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.top .no{font-size:11px;color:var(--gold);border:1px solid var(--gold);border-radius:20px;padding:2px 10px}
.top .desc{color:var(--sub);font-size:13px;line-height:1.8;margin:14px 0 24px}
.card-box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:12px;text-align:left}
.card-box h3{font-size:14px;margin-bottom:12px}
.card-box label{display:block;font-size:11px;color:var(--sub);margin:10px 0 5px}
.pwbox{display:flex;gap:8px;align-items:stretch}
.pwbox button{white-space:nowrap;flex:0 0 auto;padding:0 14px}
.pwbox input{font-size:24px;letter-spacing:.4em;text-align:center;font-weight:800;color:var(--gold)}
.btn-main{width:100%;padding:14px;font-size:15px;background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;margin-top:14px}
.btn-sub{width:100%;padding:12px;font-size:14px;background:var(--panel2);color:var(--txt);border:1px solid var(--line);margin-top:10px}
.err{color:var(--ng);font-size:12px;margin-top:8px;min-height:16px}

/* ---- 部屋ヘッダー ---- */
.rhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:12px}
.rhead .t{font-size:15px;font-weight:800}
.rhead .t em{font-style:normal;color:var(--acc);font-size:11px;margin-left:7px}
.rhead .pw{margin-left:auto;font-size:11px;color:var(--sub);text-align:right;line-height:1.5}
.rhead .pw b{display:block;font-size:20px;color:var(--gold);letter-spacing:.22em;font-weight:800}
.rhead .pw .pwnote{display:block;font-size:9.5px;color:var(--sub);opacity:.75;margin-top:2px}
.rhead .quit{padding:7px 11px;font-size:11px;background:var(--panel2);color:var(--sub);border:1px solid var(--line)}
.rhead .announce{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:11px;
  background:#000;color:#fff;border:1px solid #3a3a44}
.rhead .announce:hover{background:#15151c;border-color:#55555f}
.rhead .rsize{flex:0 0 100%;font-size:9.5px;color:var(--sub);opacity:.55;text-align:right;margin-top:-2px}

/* ---- 2ペイン ---- */
.wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
@media(max-width:880px){.wrap{grid-template-columns:1fr}}
.pane{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:15px}
.pane>h2{font-size:12px;color:var(--sub);letter-spacing:.09em;margin-bottom:12px;display:flex;align-items:center;gap:7px}
.pane>h2 .dot{width:7px;height:7px;border-radius:50%;background:var(--acc)}
.pane>h2 .dot.b{background:var(--acc2)}
.pane>h2 .r{margin-left:auto;font-weight:400;letter-spacing:0}
/* 本番モード：1画面ぶんだけ使う */
.pane.solo{max-width:520px;margin:0 auto}
.roster{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.roster .who1{font-size:12px;background:var(--panel2);border-radius:7px;padding:5px 10px;color:var(--txt)}
.roster .who1 i{font-style:normal;color:var(--gold);font-size:10.5px}
.roster .who0{font-size:12px;color:var(--sub);line-height:1.9}
.roster .who0 b{color:var(--gold);font-size:17px;letter-spacing:.2em}
.pcount{font-size:11px;color:var(--sub);text-align:right;margin-top:8px}
.hostonly{font-size:10px;color:var(--gold);border:1px solid rgba(255,198,92,.4);border-radius:5px;padding:1px 6px;font-weight:400;letter-spacing:0}

/* ---- リスナータブ ---- */
.tabs{display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap}
.tab{flex:1;min-width:70px;padding:9px 4px;font-size:12px;background:var(--panel2);color:var(--sub);border:1px solid var(--line);position:relative}
.tab.on{background:var(--acc2);color:#fff;border-color:var(--acc2)}
.tab .badge{position:absolute;top:-6px;right:-4px;background:var(--gold);color:#12101a;font-size:9px;padding:2px 5px;border-radius:8px;font-weight:800}
.tab.add{flex:0 0 42px;min-width:42px;background:transparent;border-style:dashed;color:var(--acc);font-size:17px}
.empty{color:var(--sub);font-size:13px;text-align:center;padding:20px 4px;line-height:1.9}
.empty b{color:var(--gold);display:block;font-size:22px;letter-spacing:.2em;margin:6px 0 0}
.empty p{font-size:11.5px;opacity:.8;margin-top:14px}
.empty .join-self{background:rgba(124,92,255,.1);border:1px solid rgba(124,92,255,.35);
  border-radius:9px;padding:10px 12px;font-size:11.5px;color:var(--txt);opacity:1;line-height:1.75}
.empty .join-self b{display:inline;font-size:inherit;color:var(--acc2);letter-spacing:0;margin:0}
.steps{text-align:left;display:flex;flex-direction:column;gap:8px}
.steps>div{position:relative;background:var(--deep);border:1px solid var(--line);border-radius:10px;
  padding:11px 13px 11px 40px;font-size:12.5px;line-height:1.7;color:var(--txt)}
.steps>div i{position:absolute;left:11px;top:11px;width:20px;height:20px;border-radius:50%;
  background:var(--acc2);color:#fff;font-style:normal;font-size:11px;font-weight:800;
  display:flex;align-items:center;justify-content:center}
.steps>div small{color:var(--sub);font-size:10.5px}

/* ---- 読み上げ ---- */
.read{background:var(--deep);border:1px dashed var(--line);border-radius:10px;padding:11px 13px;margin-top:13px;font-size:14px;line-height:1.75}
.read span{display:block;color:var(--sub);font-size:10px;margin-bottom:4px;letter-spacing:.06em}
.read em{font-style:normal;font-weight:700}

/* ---- 共通パーツ ---- */
.btn-go{width:100%;padding:14px;font-size:16px;background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff}
.mini{padding:8px 11px;font-size:12px;background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
.row{display:flex;gap:7px;margin-top:10px}
.row>*{flex:1}
.big{font-size:64px;font-weight:800;text-align:center;line-height:1;padding:18px 0;color:var(--gold);font-variant-numeric:tabular-nums}
.stage{background:var(--deep);border:1px solid var(--line);border-radius:12px;padding:14px;min-height:120px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.log{margin-top:12px;max-height:200px;overflow:auto;font-size:12px}
.log>div{padding:6px 9px;background:var(--panel2);border-radius:8px;margin-bottom:5px;display:flex;gap:9px;align-items:center}
.log .who{color:var(--sub)}
.log .v{margin-left:auto;color:var(--sub);font-variant-numeric:tabular-nums}
.pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.pill.ok{background:rgba(61,220,151,.2);color:var(--ok)}
.pill.hot{background:rgba(255,107,74,.2);color:var(--hot)}
.pill.cold{background:rgba(74,168,255,.2);color:var(--cold)}
.pill.ng{background:rgba(255,107,107,.2);color:var(--ng)}
.pill.g{background:rgba(255,198,92,.2);color:var(--gold)}
.msg{text-align:center;margin-top:12px;font-size:15px;font-weight:700;min-height:22px}
.wait{color:var(--sub);font-size:13px;text-align:center;padding:26px 10px;line-height:1.8}

/* ---- キーパッド ---- */
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px;max-width:300px;margin-left:auto;margin-right:auto}
.pad button{padding:13px 0;font-size:17px;background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
.pad button.act{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;border:none}
.disp{background:var(--deep);border:1px solid var(--line);border-radius:10px;padding:14px;text-align:center;
  font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;min-height:60px;max-width:300px;margin:0 auto}
.disp.ph{color:var(--line);font-size:14px;font-weight:400;padding:22px}

/* ---- 選択肢ボタン ---- */
.opts{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.opts button{padding:14px;font-size:14px;background:var(--panel2);color:var(--txt);border:1px solid var(--line);text-align:left}
.opts button.sel{background:var(--acc2);border-color:var(--acc2);color:#fff}
.opts button.right{background:rgba(61,220,151,.18);border-color:var(--ok);color:var(--ok)}
.opts button.wrong{background:rgba(255,107,107,.14);border-color:var(--ng);opacity:.7}
.bars{margin-top:12px}
.bars .b{margin-bottom:9px;font-size:12px}
.bars .b .t{display:flex;margin-bottom:4px}
.bars .b .t span:last-child{margin-left:auto;color:var(--sub)}
.bars .b .g{height:9px;background:var(--deep);border-radius:5px;overflow:hidden}
.bars .b .g i{display:block;height:100%;background:linear-gradient(90deg,var(--acc2),var(--acc));transition:width .5s}

/* ---- モーダル ---- */
.mask{position:fixed;inset:0;background:rgba(10,9,15,.82);display:flex;align-items:center;justify-content:center;z-index:50;padding:18px}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;max-width:360px;width:100%}
.modal h3{font-size:16px;margin-bottom:6px}
.modal p{font-size:12px;color:var(--sub);line-height:1.7;margin-bottom:14px}
/* ---- 支援 ---- */
.supbtn{display:inline-flex;align-items:center;gap:7px;text-decoration:none;cursor:pointer;
  font-family:inherit;font-size:12px;font-weight:700;color:var(--gold);
  background:rgba(255,198,92,.1);border:1px solid rgba(255,198,92,.4);border-radius:20px;padding:8px 15px}
.supbtn:hover{background:rgba(255,198,92,.18);border-color:var(--gold)}
.modal.sup h3{font-size:17px}
.modal.sup p b{color:var(--gold)}
.modal.sup .thanks{background:rgba(61,220,151,.12);border:1px solid rgba(61,220,151,.35);
  color:var(--ok);border-radius:9px;padding:9px 11px;font-size:12px;margin-bottom:12px;text-align:center}
.modal.sup .fine{font-size:10px;line-height:1.7;color:var(--sub);opacity:.8;margin:12px 0 0}

.cel{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(18,16,26,.9);
  z-index:60;font-size:32px;font-weight:800;color:var(--gold);text-align:center;padding:22px;line-height:1.5;white-space:pre-line}
.cel.on{display:flex;animation:pop .6s}
@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.pop{animation:pop .4s}
