/* 白と黒の切りかえ */
/* ---- テーマ切替（白モード⇄アングラ黒モード：色だけ変わる） ---- */
@media(max-width:640px){#themebtn .tlb{display:none}}   /* 狭い窓では印だけ（CSS で出し分けるので、窓の幅を変えても追いつく） */
#themebtn{margin-left:12px;background:var(--sur2);border:1px solid var(--line2);color:var(--tx);border-radius:999px;font-weight:800;font-size:11.5px;padding:6px 12px;cursor:pointer;white-space:nowrap;flex:0 0 auto}
body.light{
  --bg:#eef1f7; --sur:#ffffff; --sur2:#e7ebf3; --line:#e0e5ee; --line2:#c7d1e0;
  --tx:#141b28; --dim:#586780;
  --irm:#c9780a; --gem:#0a9880; --bad:#d81b60; --ok:#1668c9; --good:#1a9a4f;
  --faint:#5f6b82;          /* うすいが読める。--line2(#c7d1e0)は薄すぎた */
  --mine:#d5e3f8;           /* 自分の発言。濃紺だと黒文字が沈む */
  --shadow:0 8px 24px rgba(30,40,60,.12);
}
body.light #top{background:rgba(255,255,255,.9)}
#goldvein{position:absolute;top:12px;right:12px;width:54px;height:54px;border:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,#ffce3a 45%,#e0900a);box-shadow:0 0 24px rgba(255,206,58,.75);font-size:26px;cursor:pointer;z-index:9;animation:goldpulse 1s ease-in-out infinite}
@keyframes goldpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
/* ── 狭い画面でヘッダーがはみ出さないように ── */
@media(max-width:430px){
 #topin{padding:11px 12px;gap:8px 10px;flex-wrap:wrap}
 #purse{gap:11px}
 #purse b{margin-left:3px}
 #themebtn{margin-left:6px;padding:6px 10px}
}
@media(max-width:360px){
 #topin{padding:11px 9px;gap:6px 8px}
 #purse{gap:8px;font-size:11px}
 #themebtn{font-size:11px;padding:5px 8px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* ══ 足もと。規約とプライバシーポリシーへ、どこからでも行けるように ══ */
#foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;
 max-width:1000px;margin:36px auto 22px;padding:16px 18px 0;
 border-top:1px solid var(--line);color:var(--dim);font-size:12.5px}
.fl{background:none;border:0;color:var(--dim);font-size:12.5px;padding:4px 0;
 cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.fl:hover{color:var(--tx)}
.fnote{margin-left:auto;color:var(--faint)}
/* 同意のチェック。規約 第3条4項に合わせて、登録の前に必ず通る */
.rgagree{display:flex;gap:9px;align-items:flex-start;margin:2px 0 14px;
 font-size:12.5px;line-height:1.65;color:var(--dim);cursor:pointer}
.rgagree input{margin-top:3px;flex:none;width:17px;height:17px}
.rgagree b{color:var(--tx)}
.rgagree a{color:var(--tx)}
/* 開いたときに、どこを見ればいいか分かるように一瞬光らせる */
@keyframes lawblink{0%,100%{background:transparent}30%{background:rgba(255,194,71,.16)}}
#terms.lookhere>summary,#privacy.lookhere>summary{animation:lawblink 1.1s ease-out 2}
/* ══ 窓口からの通報 ══ */
#repform{position:fixed;inset:0;z-index:86;background:rgba(6,8,12,.82);backdrop-filter:blur(6px);
 display:flex;align-items:flex-start;justify-content:center;padding:26px 14px;overflow:auto}
#repformbox{background:var(--sur);border:1px solid var(--line2);border-radius:16px;padding:18px;
 max-width:600px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.rfhd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.rfhd b{font-size:16px}
.rfhd .btn{margin-left:auto}
#repformbox .rgl{display:block;margin:12px 0 4px;font-weight:700;font-size:13px}
.rfreq{margin-left:7px;font-size:11px;font-weight:700;color:var(--bad);
 border:1px solid var(--bad);border-radius:4px;padding:1px 5px;vertical-align:2px}
#rfbody{width:100%;resize:vertical;line-height:1.7;min-height:120px}
#repformbox .txt{width:100%}
.rfdis{margin:14px 0 8px;border:1px solid var(--line);border-radius:10px;
 background:var(--sur2);padding:10px 12px}
.rfdis>summary{cursor:pointer;font-weight:700;font-size:13px}
.rfdis ul{margin:10px 0 2px;padding-left:1.15em;color:var(--dim);font-size:12.5px;line-height:1.8}
.rfdis li{margin-bottom:5px}
.rfdis b{color:var(--tx)}
.rfdis a{color:var(--tx)}
/* ══ 管理者：通報の札 ══ */
.reptabs{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.rptab{background:var(--sur2);border:1px solid var(--line);color:var(--dim);
 border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}
.rptab.on{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.rptab b{margin-left:5px}
.repit.open{border-color:var(--line2);background:var(--sur2)}
.rephd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.repwhy.site{background:var(--irm);color:#1a1200}
.repmail{font-size:11px;font-weight:700;color:var(--good);
 border:1px solid var(--good);border-radius:4px;padding:1px 6px}
.repmail.no{color:var(--faint);border-color:var(--line2)}
.repdone2{font-size:11px;font-weight:700;color:var(--dim);
 border:1px solid var(--line2);border-radius:4px;padding:1px 6px}
.repmore{margin-left:auto}
.repit.open .repnote{white-space:pre-wrap;line-height:1.8;max-height:none}
.repmailrow{margin:8px 0 2px;font-size:12.5px;color:var(--dim)}
.repmailrow b{color:var(--tx)}
.repmemo{margin:6px 0 2px;font-size:12.5px;color:var(--dim);
 border-left:2px solid var(--line2);padding-left:9px}
/* ══ 未対応の通報の印。管理者のときだけ出る ══ */
#admflag{display:inline-flex;align-items:center;gap:5px;
 background:var(--bad);color:#fff;border:0;border-radius:999px;
 padding:5px 11px 5px 9px;font-size:13px;font-weight:800;cursor:pointer;
 box-shadow:0 2px 10px rgba(0,0,0,.25)}
#admflag span{font-variant-numeric:tabular-nums}
#admflag:hover{filter:brightness(1.1)}

/* ══ 付けている称号の札。名前のとなりに出る ══ */
.eqt{display:inline-block;margin-left:5px;padding:1px 7px;border-radius:999px;
 background:var(--sur2);border:1px solid var(--line2);color:var(--dim);
 font-size:10.5px;font-weight:800;vertical-align:1px;white-space:nowrap}
.eqt.adm{background:var(--bad);border-color:var(--bad);color:#fff}
.xhd .eqt{margin-left:4px}
.prfnm .eqt{margin-left:6px;font-size:11px}
/* ══ タイルの棚。押して選べるようにする ══ */
.shelf{margin:6px 0 4px;border:1px solid var(--line);border-radius:12px;
 background:var(--sur2);overflow:hidden}
.shtabs{display:flex;gap:4px;overflow-x:auto;padding:7px 8px;
 border-bottom:1px solid var(--line);scrollbar-width:thin}
.shtab{flex:none;background:transparent;border:1px solid var(--line);color:var(--dim);
 border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.shtab.on{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.shwords{display:flex;flex-wrap:wrap;gap:5px;padding:9px;max-height:190px;overflow-y:auto}
.shwords .tk{font-size:14px;padding:7px 11px}
.shwords .empty2{padding:6px 2px}
@media(max-width:520px){.shwords{max-height:150px}}
/* ══ 落ち方のグラフ ══ */
.steps{display:flex;flex-direction:column;gap:5px;margin:8px 0}
.stepr{display:flex;align-items:center;gap:8px;font-size:12.5px}
.stepn{flex:none;width:9.5em;color:var(--dim)}
.stepbar{flex:1;height:14px;background:var(--sur2);border-radius:4px;overflow:hidden;min-width:40px}
.stepbar i{display:block;height:100%;background:var(--ok);border-radius:4px}
.stepr b{flex:none;width:2.6em;text-align:right;font-variant-numeric:tabular-nums}
.steppc{flex:none;width:3em;text-align:right;color:var(--faint);font-variant-numeric:tabular-nums}

/* ══ 音の入切。テーマの隣 ══ */
#soundbtn{background:var(--sur2);border:1px solid var(--line);color:var(--tx);
 border-radius:999px;padding:6px 10px;font-size:14px;cursor:pointer;line-height:1}
#soundbtn:hover{border-color:var(--line2)}
#soundbtn[aria-pressed="false"]{color:var(--faint)}
#foot a.fl{color:var(--dim);text-decoration:none}
#foot a.fl:hover{color:var(--irm)}

/* 録画・画面共有の対策（03-account.js の applyPrivacy。はじめから入）：見せたくないものを画面に出さない */
body.privacy input[type=email],body.privacy #li{-webkit-text-security:disc}
@supports not (-webkit-text-security:disc){body.privacy input[type=email],body.privacy #li{color:transparent;text-shadow:0 0 8px var(--tx)}}
body.privacy input::-ms-reveal,body.privacy input::-ms-clear{display:none}   /* Edge がパスワードの欄に出す 👁 */
@media print{#mycode,.secret,#rp,#lp{visibility:hidden!important}}
body.privacy .secret{filter:blur(6px);user-select:none;-webkit-user-select:none}
body.privacy .pweye{opacity:.4;cursor:not-allowed}
#privbtn{background:none;border:1px solid var(--bad);color:var(--tx);border-radius:9px;padding:2px 7px;font-size:15px;cursor:pointer;line-height:1.4}
