/* 公開ファイル: 誰でも読める。コメントに内部の事情や人の発言を書かない（反映の前に node --expose-internals tools/public-comments.cjs --check で確認） */
:root{
  --bg:#f5f7fb;--surface:#fff;--surface2:#f9fafc;--ink:#172033;--muted:#5b6678;--line:#e4e8ef;
  --brand:#6046e7;--brand2:#7c66f0;--brandsoft:#eeeaff;--good:#0e6d4e;--goodbg:#e8f8f2;--warn:#9a6200;--warnbg:#fff5da;
  --bad:#b53b45;--badbg:#fff0f1;--info:#2764c5;--infobg:#ebf3ff;--shadow:0 12px 32px rgba(29,42,68,.08);
  --radius:16px;--radius-sm:11px;
}
:root{--fs-9:9px;--fs-9-5:9.5px;--fs-10:10px;--fs-10-5:10.5px;--fs-11:11px;--fs-11-5:11.5px;--fs-12:12px;--fs-12-5:12.5px;--fs-13:13px;--fs-13-5:13.5px;}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.75;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.boot{min-height:100vh;display:flex;gap:12px;align-items:center;justify-content:center}.spinner{width:22px;height:22px;border:3px solid #ddd;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e8e2ff 0,transparent 38%),radial-gradient(circle at 90% 80%,#dff4ff 0,transparent 32%),var(--bg)}.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:var(--shadow)}.brandmark{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--brand),#9d68ee);display:grid;place-items:center;color:white;font-weight:900;letter-spacing:-1px;margin-bottom:18px}.auth-card h1{margin:0 0 7px;font-size:27px}.auth-card p{margin:0 0 25px;color:var(--muted);line-height:1.7}.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:var(--fs-13);font-weight:700;color:#455166}.input,.select,.textarea{width:100%;border:1px solid #d9deE8;background:#fff;border-radius:11px;padding:11px 12px;color:var(--ink);outline:none;transition:.15s}.input:focus,.select:focus,.textarea:focus{border-color:#9a8af0;box-shadow:0 0 0 3px #eeeaff}.textarea{min-height:120px;resize:vertical}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:800;background:var(--brand);color:#fff;display:inline-flex;gap:7px;align-items:center;justify-content:center}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.secondary{background:#fff;color:#374158;border:1px solid var(--line)}.btn.soft{background:var(--brandsoft);color:#4e3bc4}.btn.good{background:var(--good)}.btn.bad{background:var(--bad)}.btn.small{padding:7px 10px;border-radius:8px;font-size:var(--fs-12)}.btn.full{width:100%}.hint{font-size:var(--fs-12);color:var(--muted);line-height:1.6}.errorbox,.noticebox{padding:11px 13px;border-radius:10px;font-size:var(--fs-13);margin:12px 0}.errorbox{background:var(--badbg);color:var(--bad)}.noticebox{background:var(--infobg);color:#24579e}
.app-shell{min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;display:flex;align-items:center;padding:0 24px;gap:18px}.logo{display:flex;gap:10px;align-items:center;font-weight:900;white-space:nowrap}.logo .mini{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand),#9d68ee);display:grid;place-items:center;color:#fff}
/* 「📲 アプリにする」（PWA, 2026-09-25）。携帯では絵だけにして上のバーを詰まらせない */
.installbtn[hidden]{display:none}
.wishform .wf-q{font-weight:800;margin:12px 0 6px}
.wishform .wf-req{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--badbg);color:var(--bad);font-size:var(--fs-11);font-weight:800}
.wishform .wf-now{margin:2px 0 8px;padding:8px 10px;border-radius:10px;background:var(--goodbg);color:var(--good)}
.wishform .wf-missing{margin-top:8px;color:var(--warn)}
.wishform [hidden]{display:none!important}
body.tv-simple .modalback:not(.tv-showall) .tv-more,body.tv-simple main .tv-more{display:none!important}
body:not(.tv-simple) .tv-simple-only,.tv-showall .tv-simple-only{display:none!important}
.gd-moreline{text-align:center;margin:6px 0 14px}
.viewsw{margin-left:8px}
.wishform .wf-opts{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:8px}
.wishform .wf-opt{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-13);cursor:pointer;line-height:1.5}
.wishform .wf-opt input{margin-top:4px;flex:0 0 auto;width:18px;height:18px}
.wishstate{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.release-list{margin:6px 0 0;padding-left:1.3em;line-height:1.9}
.release-list li{white-space:pre-line}
.guide-caution{margin:6px 0;padding:7px 10px;border-radius:9px;background:var(--warnbg);color:var(--warn);font-size:var(--fs-12-5);line-height:1.6}
.guide-caution a{color:inherit;font-weight:800}
.install-steps{margin:0 0 12px;padding-left:1.4em;line-height:2}
@media(max-width:760px){.installbtn .lbl{display:none}}.rolebadge{font-size:var(--fs-11);border-radius:999px;padding:4px 8px;background:var(--brandsoft);color:#5540cf;font-weight:800}.top-spacer{flex:1}.userbox{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#eef0f5;display:grid;place-items:center;font-weight:900}.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 68px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px 12px 34px;position:sticky;top:68px;height:calc(100vh - 68px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#dfe3ea;border-radius:99px}.sidebar::-webkit-scrollbar-thumb:hover{background:#cbd1db}.navbtn{width:100%;border:0;background:transparent;padding:11px 12px;border-radius:10px;text-align:left;color:#59657a;font-weight:750;margin-bottom:4px}.navbtn.active{background:var(--brandsoft);color:#4f3bc9}
/* 左メニューの見出し。画面が11個に増えて探しにくくなったのを分ける */
.navgroup{font-size:var(--fs-10-5);font-weight:800;color:#98a1b4;letter-spacing:.04em;
  padding:12px 12px 5px;text-transform:none}
.navgroup:first-child{padding-top:2px}.navbtn:hover{background:#f5f5fa}.content{padding:26px;min-width:0}.pagehead{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.pagehead h1{font-size:25px;margin:0 0 5px}.pagehead p{margin:0;color:var(--muted);font-size:var(--fs-13)}.actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.stats{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat .k{font-size:var(--fs-12);color:var(--muted);font-weight:700}.stat .v{font-size:25px;font-weight:900;margin-top:6px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px rgba(29,42,68,.025);overflow:hidden}.panelhead{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;justify-content:space-between}.panelhead h2{font-size:16px;margin:0}.panelbody{padding:18px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.toolbar .input{width:min(320px,100%)}.toolbar .select{width:auto;min-width:145px}.grow{flex:1}.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:930px}.table th{font-size:var(--fs-11);text-transform:none;color:#788297;background:#fafbfc;padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid #edf0f4;vertical-align:top;font-size:var(--fs-13)}.table tr:last-child td{border-bottom:0}.gamecell{display:flex;gap:10px;min-width:270px}.thumb{width:88px;height:50px;border-radius:8px;object-fit:cover;flex:none}.gametitle{font-weight:850;line-height:1.35}.sub{color:var(--muted);font-size:var(--fs-12);line-height:1.5;margin-top:3px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:var(--fs-11);font-weight:800;background:#f0f2f6;color:#5f697b;margin:2px 3px 2px 0}.pill.good{background:var(--goodbg);color:var(--good)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}.pill.info{background:var(--infobg);color:var(--info)}.deadline{font-weight:850}.deadline.soon{color:#b86d00}.deadline.closed{color:#9a4a51}.stack{display:grid;gap:6px}.inline{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.nowrap{white-space:nowrap}.empty{padding:46px 24px;text-align:center;color:var(--muted)}.empty b{display:block;color:#465166;margin-bottom:6px}.source-list{display:grid;gap:7px;margin-top:9px}.source-list a{font-size:var(--fs-12);color:#335fb0;text-decoration:none}.source-list a:hover{text-decoration:underline}.modalback{position:fixed;inset:0;background:rgba(18,25,39,.45);z-index:100;display:grid;place-items:center;padding:18px}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 64px rgba(15,23,42,.28)}.modalhead{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modalhead h3{margin:0;font-size:17px}.modalbody{padding:19px}.modalfoot{padding:14px 19px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.xbtn{border:0;background:#f2f3f6;border-radius:8px;width:32px;height:32px}.divider{height:1px;background:var(--line);margin:17px 0}.kv{display:grid;grid-template-columns:150px 1fr;gap:10px 14px;font-size:var(--fs-13)}.kv .key{color:var(--muted)}.codebox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f5f7fa;border:1px solid var(--line);padding:11px;border-radius:10px;word-break:break-all}.toast{position:fixed;right:20px;bottom:20px;z-index:300;background:#222c3d;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:var(--shadow);max-width:min(420px,calc(100vw - 40px));font-size:var(--fs-13)}.toast.bad{background:#a73540}.toast.good{background:#116a50}
.toast.warn{background:#8a5a00}
/* 運営とタレントの切り替え。兼任している人のヘッダーに出る */
.rolesw{display:inline-flex;background:#eef0f6;border-radius:999px;padding:3px;gap:2px}
.rolesw button{border:0;background:transparent;border-radius:999px;padding:5px 13px;
  font-size:var(--fs-12);font-weight:800;color:#6b7488;white-space:nowrap;cursor:pointer}
.rolesw button.on{background:#fff;color:#4f3bc9;box-shadow:0 1px 3px rgba(30,40,70,.16)}
.rolesw button:not(.on):hover{color:#3d4658}

/* 問い合わせ先。詳細からその場で直せるようにする */
.contactbox{border:1px solid var(--line);border-radius:11px;padding:12px 13px;display:grid;gap:9px;
  background:#fbfcfe}
.ctb-now{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ctb-now b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-13);word-break:break-all}
.ctb-edit{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}
@media(max-width:760px){.ctb-edit{grid-template-columns:1fr}}

/* いまの状況を1枚で。数字カードを数える前に、これで全体をつかむ */
.statusstrip{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin-bottom:16px;box-shadow:0 3px 12px rgba(29,42,68,.025)}
.stx-line{margin:0 0 13px;font-size:14.5px;line-height:1.75;color:#39435a}
.stx-line b{color:#1f2740;font-size:16px}
.stx-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
.stx{border:1px solid var(--line);background:#fbfcfe;border-radius:11px;padding:9px 8px;
  display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.stx:hover{border-color:#b9c2d6;background:#fff;transform:translateY(-1px)}
.stx-v{font-size:21px;font-weight:900;color:#26304a;line-height:1.1}
.stx-l{font-size:var(--fs-10-5);color:#6b7488;font-weight:700;text-align:center;line-height:1.35}
.stx.good .stx-v{color:var(--good)}
.stx.warn .stx-v{color:#b06a00}
.stx.bad .stx-v{color:var(--bad)}
@media(max-width:760px){
  .statusstrip{padding:13px}
  .stx-row{grid-template-columns:repeat(2,1fr)}
  .stx-line{font-size:var(--fs-13-5)}
}
@media(max-width:760px){.rolesw button{padding:5px 9px;font-size:var(--fs-11)}}
.agencybox{border:1px solid #e2c98f;background:#fffaf0;border-radius:10px;padding:12px 13px;
  display:grid;gap:8px}
.agencybox .hint{color:#7a5a20}
.agencybox .input{background:#fff}
.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.game-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;display:flex;flex-direction:column}.game-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#edf0f5}.game-card-body{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1;min-height:0}.game-card h3{margin:0;font-size:16px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:calc(1.4em * 2)}.game-meta{color:var(--muted);font-size:var(--fs-12);line-height:1.5}.interest-row{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:8px}.interest{border:1px solid var(--line);background:#fff;color:#59657a;border-radius:10px;padding:9px;font-weight:800}.interest.wanted.on{border-color:#6d55e6;background:var(--brandsoft);color:#513dcc}.interest.interested.on{border-color:#e8a54c;background:#fff5df;color:#9b6200}.interest:disabled{opacity:.45}.talent-notice{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:var(--fs-13);color:#536074}.keys-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.keycard{background:#fff;border:1px solid var(--line);border-radius:14px}.keycode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;font-weight:900;letter-spacing:1px;background:#f6f7fa;border-radius:9px;padding:12px;margin:11px 0}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.integration{border:1px solid var(--line);border-radius:13px;padding:15px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#aab1bd;margin-right:6px}.dot.on{background:#13a16e}
.mobile-nav{display:none}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}.game-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{padding:0 13px;height:60px}.logo span.title{display:none}.layout{display:block;min-height:calc(100vh - 60px)}.sidebar{display:none}.content{padding:15px 12px 78px}.pagehead{display:block}.pagehead .actions{justify-content:flex-start;margin-top:12px}.stats{grid-template-columns:repeat(2,1fr)}.stat{padding:13px}.game-grid{grid-template-columns:1fr}.keys-grid,.config-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:50;padding:7px 5px calc(7px + env(safe-area-inset-bottom))}.mobile-nav button{flex:1;min-width:0;border:0;background:transparent;font-size:var(--fs-10);color:#717b8f;padding:7px 2px;border-radius:8px}.mobile-nav button.active{background:var(--brandsoft);color:#4f3bc9;font-weight:800}.kv{grid-template-columns:1fr}.kv .key{font-weight:800}.modalback{padding:8px}.modal{max-height:94vh}.userbox .name{display:none}}
.setup-shell{min-height:100vh;background:radial-gradient(circle at 12% 8%,#ebe7ff 0,transparent 30%),radial-gradient(circle at 92% 18%,#e4f5ff 0,transparent 26%),var(--bg);padding:30px 16px}.setup-card{width:min(1080px,100%);margin:0 auto}.setup-hero{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 24px;box-shadow:var(--shadow);margin-bottom:16px}.setup-hero .brandmark{margin:0;flex:none}.setup-hero h1{margin:0 0 5px;font-size:27px}.setup-hero p{margin:0;color:var(--muted);line-height:1.65}.setup-hero>.btn{margin-left:auto;white-space:nowrap}.setup-section{display:grid;grid-template-columns:48px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin:14px 0;box-shadow:0 4px 16px rgba(29,42,68,.025)}.setup-num{width:38px;height:38px;border-radius:12px;background:var(--brandsoft);color:#513dcc;display:grid;place-items:center;font-weight:900;font-size:16px}.setup-section-body h2{margin:4px 0 6px;font-size:18px}.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.setup-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.checktile{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;font-size:var(--fs-13);font-weight:750;background:#fafbfc}.rulebox{margin-top:14px;background:#f7f6ff;border:1px solid #e5e0ff;border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-13)}.rulebox b{white-space:nowrap;color:#4f3bc9}.rulebox span{color:#657086;line-height:1.55}.integration.compact{height:100%;display:grid;align-content:center}.setup-talent{border:1px solid var(--line);border-radius:13px;padding:14px;margin-top:10px;background:#fbfcfe}.setup-talent-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.setup-submit{position:sticky;bottom:12px;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;gap:16px;align-items:center;justify-content:space-between;box-shadow:0 12px 36px rgba(31,42,62,.14);margin-top:18px}.setup-main-btn{padding:13px 24px;font-size:15px}.setup-progress{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow);margin-top:16px}.setup-progress h2{margin-top:0}.setup-progress-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0;display:flex;gap:10px;align-items:center;color:#788297}.setup-progress-item.working{background:#f7f6ff;border-color:#dfd9ff;color:#5744c9}.setup-progress-item.done{background:var(--goodbg);border-color:#c6eadb;color:var(--good)}.setup-progress-item.warn{background:var(--warnbg);border-color:#f4ddb2;color:var(--warn)}.setup-progress-item.skip{background:#f5f6f8;color:#7b8494}
@media(max-width:820px){.setup-shell{padding:12px 8px}.setup-hero{align-items:flex-start;flex-wrap:wrap;padding:18px}.setup-hero>.btn{margin-left:0}.setup-section{grid-template-columns:1fr;padding:16px}.setup-num{width:32px;height:32px}.setup-grid,.setup-grid.three{grid-template-columns:1fr}.setup-submit{bottom:6px;display:block}.setup-submit .setup-main-btn{width:100%;margin-top:10px}.rulebox{display:block}.rulebox b{display:block;margin-bottom:5px}.setup-talent .nowrap{flex-wrap:nowrap}}
.gmail-easy{margin-top:12px;padding:14px 15px;border:1px solid #d9e6ff;background:#f5f9ff;border-radius:13px;font-size:var(--fs-13);line-height:1.65}.gmail-easy ol{margin:8px 0 12px;padding-left:20px}.gmail-easy a{text-decoration:none}.advanced-box{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fafbfc}.advanced-box summary{cursor:pointer;font-weight:800;color:#566176}.advanced-box[open] summary{margin-bottom:10px}
/* v1.3 guided first-run wizard */
.wizard-card{width:min(980px,100%)}.wizard-hero{margin-bottom:12px}.wizard-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 14px}.wizard-dot{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 8px;text-align:center;color:#8992a2;font-weight:800}.wizard-dot span{display:grid;place-items:center;width:27px;height:27px;margin:0 auto 4px;border-radius:50%;background:#f1f3f7;font-size:var(--fs-12)}.wizard-dot small{font-size:var(--fs-10)}.wizard-dot.active{border-color:#cfc5ff;background:#f8f6ff;color:#513dcc}.wizard-dot.active span{background:var(--brand);color:#fff}.wizard-dot.done{border-color:#cce8dc;background:#f3fbf7;color:#14785b}.wizard-dot.done span{background:#18a376;color:#fff}.wizard-step{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.wizard-step[hidden]{display:none}.wizard-title{display:flex;gap:13px;align-items:flex-start;margin-bottom:18px}.wizard-title h2{margin:3px 0 5px;font-size:21px}.wizard-title p{margin:0;color:var(--muted);line-height:1.6}.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.wizard-next{padding:11px 18px}.roster-status{display:flex;align-items:center;gap:11px;border:1px solid #d9e6ff;background:#f7faff;border-radius:13px;padding:12px 14px;margin-bottom:12px}.roster-status.ok{border-color:#c8eadc;background:#f3fbf7}.roster-status.warn{border-color:#efd7a4;background:#fff9ee}.roster-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:900}.spinner{width:22px;height:22px;border:3px solid #dfe4ef;border-top-color:#6d55e6;border-radius:50%;animation:mgdspin .8s linear infinite;flex:none}@keyframes mgdspin{to{transform:rotate(360deg)}}.setup-summary{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px}.summary-row{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.summary-row:last-child{border-bottom:0}.summary-row span{color:var(--muted)}.auto-defaults{border:1px solid #dcd5ff;background:#f8f6ff;border-radius:14px;padding:14px;line-height:1.65}.auto-defaults>b{display:block;margin-bottom:8px}
@media(max-width:760px){.wizard-progress{gap:4px}.wizard-dot{padding:8px 3px}.wizard-dot small{font-size:var(--fs-9)}.wizard-step{padding:16px 13px}.wizard-title h2{font-size:18px}.wizard-actions{flex-direction:column-reverse}.wizard-actions .btn{width:100%}.summary-row{display:block}.summary-row b{display:block;margin-top:3px}.setup-talent{padding:11px}.setup-talent-head{gap:8px}}
.auth-switch{margin-top:16px;text-align:center;font-size:var(--fs-13)}.auth-switch a{color:var(--accent);font-weight:700;text-decoration:none}.auth-switch a:hover{text-decoration:underline}
/* v1.4 outreach + recommendation UX */
.setup-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.checkcol{width:40px;text-align:center}.game-desc{font-size:var(--fs-12);line-height:1.55;color:#4f5a6e;margin-top:4px;max-width:520px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:calc(1.55em * 2)}.recommend-mini{margin-top:5px;padding:5px 7px;border-radius:8px;background:#f6f3ff;color:#5640c8;font-size:var(--fs-11)}.quick-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:205px}.bulk-panel{margin-bottom:14px;border-color:#d9d2ff;background:linear-gradient(90deg,#fbfaff,#fff)}.bulkbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bulkbar>.sub{flex:1;min-width:220px}.game-admin-table{min-width:1300px}.genre-picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.genre-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-weight:750;font-size:var(--fs-12);color:#5c677a}.genre-chip:hover{border-color:#b8aef4}.genre-chip.on{background:var(--brandsoft);border-color:#9f90ef;color:#4e39c7}.talent-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.talent-choice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;cursor:pointer}.talent-choice:has(input:checked){border-color:#a99cf2;background:#f8f6ff}.talent-choice input{margin-top:4px}.mini-link{display:inline-block;font-size:var(--fs-10);color:#2f62ad;background:#eef5ff;border-radius:999px;padding:3px 6px;margin:4px 4px 0 0}.game-image-wrap{position:relative}.match-badge{position:absolute;top:9px;left:9px;background:#5f48dc;color:#fff;font-weight:900;font-size:var(--fs-11);border-radius:999px;padding:6px 9px;box-shadow:0 5px 16px rgba(43,32,108,.25)}.talent-game-desc{font-size:var(--fs-13);line-height:1.65;color:#4c586c;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:calc(1.65em * 2)}.steam-link{font-size:var(--fs-12);font-weight:750;color:#355fac;text-decoration:none}.steam-link:hover{text-decoration:underline}.setup-click-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.setup-click{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;text-decoration:none;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;text-align:left;color:var(--ink)}.setup-click:hover{border-color:#b9aef2;background:#fbfaff}.setup-click.static{cursor:default}.setup-click>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--brandsoft);color:#4d39c6;font-weight:900}.setup-click>b{font-size:var(--fs-13)}.setup-click>small{font-size:var(--fs-10);color:var(--muted)}.cost-list{display:grid;gap:9px}.cost-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}.cost-list>div:last-of-type{border-bottom:0}.cost-list span{text-align:right;color:#4e596c}.setup-guide-panel{border-color:#dcd6ff}.auth-switch a{color:var(--brand)}
@media(max-width:1000px){.setup-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.talent-choice-grid{grid-template-columns:1fr}.setup-click-flow{grid-template-columns:1fr}}
@media(max-width:760px){.setup-grid.four{grid-template-columns:1fr}.quick-actions{min-width:160px}.bulkbar{align-items:stretch}.bulkbar .btn{flex:1 1 auto}.game-desc{max-width:280px}.cost-list>div{display:block}.cost-list span{display:block;text-align:left;margin-top:3px}}
/* v1.5.3 persistent AI research monitor */
#researchMonitor{position:fixed;right:18px;bottom:18px;z-index:80;width:min(420px,calc(100vw - 28px))}#researchMonitor[hidden]{display:none}.research-monitor-card{background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(28,38,58,.2);padding:13px}.research-monitor-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}.research-job{border-top:1px solid var(--line);padding:10px 0 4px}.research-job:first-of-type{border-top:0}.research-bar{height:7px;background:#edf0f5;border-radius:999px;overflow:hidden;margin:7px 0}.research-bar i{display:block;height:100%;background:linear-gradient(90deg,#6951df,#8f7cf0);border-radius:999px;transition:width .35s ease}.research-job.done .research-bar i{background:#20a87e}.research-job.error .research-bar i{background:#d84c62}.badtext{color:#b62d44}@media(max-width:700px){#researchMonitor{right:8px;bottom:8px;width:calc(100vw - 16px)}}

/* v1.5.5 sales + manual permission controls */
.price-sale{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}.price-sale b{font-size:var(--fs-13);color:#b4233b}.price-regular{text-decoration:line-through;color:#8a93a2;font-size:var(--fs-11)}.sale-badge{display:inline-block;border-radius:999px;padding:3px 7px;background:#fff0f2;color:#c22f48;font-weight:900;font-size:var(--fs-10)}.price-normal{margin-top:5px;font-size:var(--fs-13)}.status-stack{display:grid;gap:5px;min-width:145px}.status-stack>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.state-key{display:inline-block;min-width:30px;color:#7d8796;font-size:var(--fs-10);font-weight:800}.manual-tag{font-size:var(--fs-9);font-weight:900;color:#5d46ca;background:#f1edff;border-radius:999px;padding:3px 6px}.linkbtn{border:0;background:transparent;padding:2px 0;color:#4f42bd;text-decoration:underline;cursor:pointer;font-size:var(--fs-10);text-align:left}.linkbtn:hover{color:#31258d}.checktile label{cursor:pointer;line-height:1.4}

.pager{display:flex;justify-content:center;align-items:center;gap:14px;padding:16px;flex-wrap:wrap}.pager span{font-size:var(--fs-13);color:var(--muted)}

/* ============================================================
   Steam風 横長ゲームカード（v2）
   画像の縦幅がカードの高さの基準になるサイズ感にする
   ============================================================ */
.gcards{display:flex;flex-direction:column;gap:14px;margin-top:4px}

.gcard{
  position:relative;display:grid;grid-template-columns:320px 1fr;gap:18px;
  background:var(--panel,#fff);border:1px solid var(--line,#e6e9f0);border-radius:14px;
  padding:14px;box-shadow:0 2px 10px rgba(20,30,60,.05);
}
.gcard.is-light{background:#fbfcfe;border-style:dashed}

.gcard-pick{position:absolute;top:10px;left:10px;z-index:2;background:rgba(255,255,255,.92);
  border-radius:6px;padding:3px 5px;line-height:0;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.gcard-pick input{width:17px;height:17px;cursor:pointer}

/* 画像の枠は必ず 16:9。Nintendo(1920x1080)は無傷で収まり、Steam(460x215)は左右が少し
   切れるだけで済む。以前は 2.13 の横長枠だったため、16:9 の Nintendo 画像が上下に
   切り取られて「ぺったんこ」に見えていた。 */
.gcard-img{width:320px;aspect-ratio:16/9;height:auto;border-radius:10px;overflow:hidden;background:#e9edf4;
  display:flex;align-items:center;justify-content:center}
.gcard-img img{width:100%;height:100%;object-fit:cover;display:block}
.gcard-img.noimg img{display:none}
.gcard-img.noimg::after,.noimg-box{color:#8a93a6;font-size:var(--fs-12)}
.gcard-img.noimg::after,.gcard-img .noimg-box{color:#4d566b}
.noimg-box{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
/* 公式にまだ画像が無い作品（未発売など）。灰色の空欄ではなく作品名を出す。
   地と字の色は、作品名から決まる8色の色相（--nt-h）から作る（地は薄く・字は濃く。明るさの比は 5.9 以上）。
   左上の機種の札と下の状態の札に重ならないよう、上に 26px・下に 24px あけてある。 */
.noimg-title{flex-direction:column;gap:3px;text-align:center;padding:26px 12px 24px;overflow:hidden;
  background:hsl(var(--nt-h,215),55%,90%)}
.noimg-box.noimg-title{color:hsl(var(--nt-h,215),55%,24%)}
.noimg-title .noimg-ini{font-size:28px;font-weight:800;line-height:1;display:block}
.noimg-title span{font-size:var(--fs-12-5);font-weight:750;line-height:1.3;max-width:100%;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.noimg-title small{font-size:var(--fs-10-5);line-height:1.25;color:inherit}
/* 枠が低いときは、頭文字 → 作品名 の順にしまう。「画像はありません」などのひとことは最後まで残す */
@container cardimg (max-height: 127px){
  .noimg-title{padding:24px 10px 22px}
  .noimg-title .noimg-ini{display:none}
}
@container cardimg (max-height: 95px){
  .noimg-title{padding:22px 8px 24px}
  .noimg-title span{-webkit-line-clamp:1}
  .noimg-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
}
@container cardimg (max-height: 79px){
  .noimg-title{padding:20px 6px 24px}
  .noimg-title span{display:none}
}
/* 枠の高さで切り替えられないブラウザ向けの保険：頭文字をしまい、はみ出さないよう詰める */
@supports not (container-type: size){
  .noimg-title{padding:24px 10px 22px}
  .noimg-title .noimg-ini{display:none}
}
.gcard-img.noimg::after{content:'画像未取得'}

.gcard-body{display:flex;flex-direction:column;gap:7px;min-width:0}
.gcard-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.gcard-title{margin:0;font-size:19px;line-height:1.35;font-weight:700}
.gcard-app{font-size:var(--fs-11);color:#8a93a6;white-space:nowrap}
/* 説明文は必ず同じ高さにする。短い説明でも長い説明でもカードの高さを変えない。
   高さを height で固定しているので、文字数に関係なく枠は動かない。 */
.gcard-desc{margin:0;color:#4d566b;font-size:var(--fs-13-5);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  height:calc(1.6em * 3)}
.gcard-chips{display:flex;flex-wrap:wrap;gap:6px}
.gcard-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:var(--fs-12-5);color:#5b6478}
.gcard-status{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.gcard-int{font-size:var(--fs-12-5);color:#5b6478;margin-left:2px}
.gcard-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:2px}

.chip{display:inline-block;padding:2px 9px;border-radius:999px;background:#eef1f7;color:#46506a;
  font-size:var(--fs-11-5);font-weight:600;white-space:nowrap}
.chip.good{background:#e4f6ec;color:#0a6b3d}
.chip.warn{background:#fdf2dd;color:#8a5a00}
.chip.bad{background:#fdeaea;color:#a32a1e}
.chip.muted{background:#f1f3f7;color:#7b8496}

.card-price{display:flex;align-items:baseline;gap:9px}
.card-price .now{font-size:17px;color:#12203a}
.card-price .was{text-decoration:line-through;color:#8a93a6;font-size:var(--fs-13)}
.card-price .off{background:#c93a33;color:#fff;border-radius:5px;padding:2px 7px;font-size:var(--fs-12);font-weight:700}
.card-price .muted{color:#8a93a6;font-size:var(--fs-13)}

.card-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:7px 11px;border-radius:9px;font-size:var(--fs-12-5);font-weight:600}
.notice-light{background:#eef4ff;color:#28518f}
.notice-ex{background:#f4f0fb;color:#5b3f97}
.notice-warn{background:#fdf5e2;color:#8a5a00}

.toolbar .grow{flex:1;min-width:220px}

@media (max-width:820px){
  .gcard{grid-template-columns:1fr}
  .gcard-img{width:100%;height:auto}
}

/* パスワード変更フォーム（タレント／運営共通） */
.pwform{max-width:420px}
.pwform .field{margin-bottom:14px}
.auth-card.wide{max-width:520px}
@media (max-width:520px){ .pwform{max-width:100%} }
/* パスワード変更の注意書き・変更待ちの画面（14px・濃い灰で読みやすく） */
.pwnote,.pwrules{font-size:14px;line-height:1.7;color:#374158}
.pwrules ul{margin:2px 0 0;padding-left:1.4em;list-style:disc}
.pwrules li{margin:0}
.pwplain{padding:0}
.pwshow{display:flex;align-items:center;gap:8px;min-height:44px;margin:0 0 6px;font-size:14px;color:#374158;cursor:pointer}
.pwshow input{width:18px;height:18px;margin:0}
.pwforced-foot{display:flex;justify-content:center;margin-top:12px}
.pwforced-foot .btn.small{min-height:44px}
.nobreak{display:inline-block}
#pwError .errorbox,#rpError .errorbox{font-size:14px;line-height:1.7}
/* ログイン情報の結果の表：パソコン幅でも横にはみ出さず、パスワードの列まで見える */
.credwrap .table{min-width:0}
.credwrap td code{overflow-wrap:anywhere}
.noticebox .pwnote{margin-top:6px}

/* ============================================================
   タレント向け ゲーム棚（ストア風）
   ============================================================ */
.shelf{margin:26px 0}
.shelf-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.shelf-head h2{font-size:17px;margin:0}
.shelf-note{font-size:var(--fs-12);color:var(--muted)}
.shelf-row{display:grid;grid-auto-flow:column;grid-auto-columns:240px;gap:14px;
  overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity}
.shelf-row::-webkit-scrollbar{height:8px}
.shelf-row::-webkit-scrollbar-thumb{background:#cfd5e2;border-radius:99px}

.tcard{background:#fff;border:1px solid #e6e9f0;border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column;scroll-snap-align:start;cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease}
.tcard:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,30,60,.12)}
/* flex の中で画像枠が縮まないようにする。縮むと 16:9 が崩れて平たくなる。 */
.tcard-img{position:relative;aspect-ratio:16/9;height:auto;flex:0 0 auto;background:#e9edf4}
.tcard-img img{width:100%;height:100%;object-fit:cover;display:block}
/* 新作・セール・実績は画像の上に置かない。
   画像の上は「機種（左上）」と「状態（下端）」の2つだけにする。
   3層を重ねていたため、状態バッジと同じ位置に描かれてかぶっていた。 */
.tcard-badges{display:flex;flex-wrap:wrap;gap:3px;margin:4px 0 0}
.tbadge{font-size:var(--fs-10);font-weight:700;padding:2px 6px;border-radius:999px;background:#eef0f5;color:#5b6478}
.tbadge.b-new,.tbadge.b-sale,.tbadge.b-soon,.tbadge.b-pr,.tbadge.b-stream,.tbadge.b-ready{color:#fff}
.tbadge.b-new{background:#1a8048}
.tbadge.b-sale{background:#c93a33}
.tbadge.b-soon{background:#2f6df6}
.tbadge.b-pr{background:#7a4ec8}
.tbadge.b-promo{background:linear-gradient(135deg,#b9480f,#b85a12);color:#fff;box-shadow:0 1px 4px rgba(201,69,31,.3)}
.tbadge.b-stream{background:#0f7c8c}
.tbadge.b-ready{background:#0a6b3d}
.tcard-body{padding:9px 11px 11px;display:flex;flex-direction:column;gap:5px;flex:1}
.tcard-title{margin:0;font-size:var(--fs-13-5);line-height:1.4;font-weight:700;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  height:calc(1.4em * 2)}
.tcard-meta,.tcard-meta2{font-size:var(--fs-11);color:#6b7488}
.tprice{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-13)}
.tprice .toff{background:#c93a33;color:#fff;border-radius:4px;padding:1px 5px;font-size:var(--fs-11);font-weight:700}
.tprice .twas{text-decoration:line-through;color:#98a0b0;font-size:var(--fs-11)}
.tcard-streams{font-size:var(--fs-11);color:#5b6478;display:flex;align-items:center;gap:6px}
.tcard-actions{display:flex;gap:6px;margin-top:auto;padding-top:6px}
.tcard-actions .btn{flex:1;font-size:var(--fs-11-5);padding:6px 4px}

/* 小さい丸型の顔アイコン（+2 などの省略はしない。必ず全員出す） */
.facepile{display:inline-flex;gap:3px;flex-wrap:wrap;align-items:center}
.face{position:relative;overflow:hidden;width:22px;height:22px;border-radius:50%;background:#5b6bd6;color:#fff;
  font-size:var(--fs-10);font-weight:700;display:inline-flex;align-items:center;justify-content:center;
  border:2px solid #fff;box-shadow:0 0 0 1px #d6dbe6;cursor:pointer;flex:0 0 auto}
.face.me{box-shadow:0 0 0 2px #2f6df6}
/* 顔写真があれば頭文字の上に重ねる。読み込みに失敗したら頭文字が残る。 */
.face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.face.lg{width:30px;height:30px;font-size:var(--fs-12)}
/* PCはホバーで名前、スマホはタップで名前（JS側で toast を出す） */
.face::after{content:attr(data-face);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:#1e2536;color:#fff;font-size:var(--fs-11);font-weight:500;line-height:1;padding:5px 7px;border-radius:5px;
  white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:30}
@media (hover:hover){.face:hover{overflow:visible;z-index:20}.face:hover::after{opacity:1}}
.facegroup{display:inline-flex;align-items:center;gap:5px;margin-right:10px}
.facegroup .fglabel{font-size:var(--fs-11);color:#5a6377;white-space:nowrap}
.wishfaces{display:flex;flex-wrap:nowrap;gap:0;overflow:hidden;min-width:0}
/* 顔アイコンの行は高さを固定する。
   中身の有無や人数でカードごとに位置がずれると、並べたときに読みにくいため。 */
.facerow{height:26px;display:flex;align-items:center;gap:8px;overflow:hidden;margin-top:4px}
.facerow:empty{height:26px}
.facerow .facegroup{margin-right:0}

.tcard-img{position:relative;container-type:size;container-name:cardimg;overflow:hidden}
.tcard-overlay{position:absolute;left:5px;bottom:5px;right:5px;display:flex;flex-wrap:nowrap;gap:4px;
  pointer-events:none;overflow:hidden;max-height:44px}
.obadge{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-10);font-weight:700;line-height:1;
  padding:4px 6px;border-radius:4px;color:#fff;background:rgba(24,28,40,.88);
  backdrop-filter:blur(2px);white-space:nowrap;min-width:0;flex:0 1 auto}
.obadge .ob-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.obadge .ob-s{display:none}          /* 既定は通常表記。狭い枠でだけ短い表記に差し替える */
.obadge .ob-i{flex:0 0 auto}

/* 幅が足りない枠：短い表記に切り替える（棚カード238pxはここ） */
@container cardimg (max-width: 300px){
  .obadge .ob-t{display:none}
  .obadge .ob-s{display:inline}
  .obadge{font-size:var(--fs-9-5);padding:3px 5px}
}
/* さらに狭い枠：アイコンだけにする */
@container cardimg (max-width: 200px){
  .obadge .ob-s{display:none}
  .obadge{padding:4px 5px}
}
/* 高さが低い枠：1段しか置けないのでアイコンだけ（検索結果の56pxはここ） */
@container cardimg (max-height: 80px){
  .obadge .ob-t,.obadge .ob-s{display:none}
  .tcard-overlay{max-height:24px;left:4px;bottom:4px;right:4px}
}
/* コンテナクエリが使えないブラウザ向けの保険：はみ出さないよう詰める */
@supports not (container-type: size){
  .obadge{font-size:var(--fs-9-5);padding:3px 5px;max-width:33%}
}
.ob-ready{background:rgba(22,140,86,.94)}
.ob-perm{background:rgba(37,99,235,.94)}
.ob-money{background:rgba(180,120,10,.94)}
.ob-key{background:rgba(120,60,180,.94)}
.ob-warn{background:rgba(190,110,20,.94)}
.ob-deny{background:rgba(190,45,45,.94)}
.ob-info{background:rgba(60,70,90,.92)}

/* 遊べる機種のしるし。
   ロゴ画像は商標なので使わない。色分けした文字チップで示す。
   状態バッジは画像の下端なので、こちらは上端に置いて重ならないようにする。 */
.devs{display:inline-flex;gap:3px;flex-wrap:wrap}
.dev{font-size:var(--fs-10);font-weight:800;line-height:1;padding:3px 6px;border-radius:4px;color:#fff;white-space:nowrap;letter-spacing:.02em}
.dev-steam{background:#1b2838}
.dev-switch{background:#e60012}
.dev-switch2{background:#e60012;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}
.devs.on-img{position:absolute;left:5px;top:5px;z-index:2;pointer-events:none;max-width:calc(100% - 10px);overflow:hidden}
.devs.on-img .dev{box-shadow:0 1px 3px rgba(0,0,0,.35)}
@container cardimg (max-width: 200px){ .devs.on-img .dev{font-size:var(--fs-9);padding:2px 4px} }
@container cardimg (max-height: 80px){ .devs.on-img{left:4px;top:4px} .devs.on-img .dev{font-size:var(--fs-9);padding:2px 4px} }
.gd-devs{margin-top:6px}

/* 棚の「全◯◯件を見る」。棚の右端に寄せる。 */
.shelf-more{margin-left:auto;white-space:nowrap;flex:0 0 auto}

/* 「みんなの希望・申請前」の棚は目立たせる */
.shelf-hi{background:#fff8e8;border:1px solid #f0d9a8;border-radius:10px;padding:12px 14px;margin-bottom:18px}
.shelf-hi .shelf-head h2{color:#8a5a00}

/* ゲーム詳細
   長い内容でも「閉じる」が常に見えて、本文だけがスクロールするようにする。
   モーダル全体をスクロールさせると、ヘッダーが流れて閉じられなくなる。 */
.modal.modal-flex{display:flex;flex-direction:column;overflow:hidden}
.gd-loading{padding:40px;text-align:center;color:#66708a}
.gd-head{display:flex;gap:14px;align-items:flex-start;flex:0 0 auto;
  padding:17px 19px 13px;border-bottom:1px solid #e6e9f0;background:#fff}
.gd-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:4px 19px 19px;
  -webkit-overflow-scrolling:touch}
/* 下にまだ続きがあることが分かるように、下端をうっすら暗くする */
.gd-body{background:
  linear-gradient(#fff 30%,rgba(255,255,255,0)) top/100% 26px no-repeat,
  linear-gradient(rgba(255,255,255,0),#fff 70%) bottom/100% 26px no-repeat,
  radial-gradient(farthest-side at 50% 0,rgba(30,40,60,.10),rgba(0,0,0,0)) top/100% 10px no-repeat,
  radial-gradient(farthest-side at 50% 100%,rgba(30,40,60,.10),rgba(0,0,0,0)) bottom/100% 10px no-repeat;
  background-attachment:local,local,scroll,scroll}
.gd-img{width:180px;max-width:38%;border-radius:8px;display:block}
.gd-title{flex:1;min-width:0}
.gd-title h2{margin:0 0 4px;font-size:19px;line-height:1.3}
.gd-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.gd-badges .obadge{position:static}
.gd-sec{border-top:1px solid #e6e9f0;padding-top:12px;margin-top:14px}
.gd-body > .gd-sec:first-child{border-top:0;margin-top:6px}
.gd-sec h3{margin:0 0 8px;font-size:14px;color:#3a4157}
.gd-row{display:flex;gap:10px;padding:4px 0;align-items:flex-start;flex-wrap:wrap}
.gd-k{min-width:132px;color:#66708a;font-size:var(--fs-12);flex:0 0 auto}
.gd-v{flex:1;min-width:0;font-size:var(--fs-13)}
.gd-desc{font-size:var(--fs-13);color:#3a4157;line-height:1.6}
.gd-credit{margin-top:10px}
.gd-credit textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:var(--fs-12)}
.tcard-detail{margin-top:8px;width:100%}

/* 未返信・要対応。返信が必要なものほど強い色にして、上から順に処理できるようにする。 */
.ibx-list{display:grid;gap:10px}
.ibx{border:1px solid #e6e9f0;border-left:4px solid #cfd5e2;border-radius:11px;padding:12px 14px;background:#fff}
.ibx.need-req{border-left-color:#d8382f;background:#fff7f6}
.ibx.need-rec{border-left-color:#e0a020;background:#fffdf5}
.ibx.need-none{opacity:.85}
.ibx-head{display:grid;grid-template-columns:64px 1fr auto;gap:11px;align-items:center}
.ibx-head .thumb{width:64px;height:36px;object-fit:cover;border-radius:4px;background:#eef0f5}
.ibx-t{min-width:0}
.ibx-t b{font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ibx-need{font-size:var(--fs-12);font-weight:800;white-space:nowrap;color:#4d566b}
.ibx.need-req .ibx-need{color:#b52a22}
.ibx.need-rec .ibx-need{color:#8a5a00}
.ibx-why{font-size:var(--fs-12-5);color:#4d566b;margin-top:8px}
.ibx-sig{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.ibx-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.ibx-body{font-size:var(--fs-12-5);line-height:1.65;color:#3a4157;background:#f7f8fb;border-radius:8px;
  padding:9px 11px;margin-top:9px;white-space:pre-wrap;word-break:break-word}
.ibx-points{margin:9px 0 0;padding-left:20px;font-size:var(--fs-12-5);line-height:1.7;color:#4d566b}
.ibx-acts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
@media (max-width:640px){ .ibx-head{grid-template-columns:52px 1fr;grid-template-rows:auto auto}
  .ibx-head .thumb{width:52px;height:29px} .ibx-need{grid-column:1/3} }

.rsbox{background:#f7f8fb;border:1px solid #e6e9f0;border-radius:11px;padding:12px 14px}
.rsbox .gd-row{padding:5px 0}
.rsbox .btn{margin-top:10px}

/* 配信する前の確認。読まずに押せないよう、チェックが入るまでボタンを無効にする。 */
.dcl-ack{display:flex;gap:9px;align-items:flex-start;background:#fff8e8;border:1px solid #f0d9a8;
  border-radius:10px;padding:12px 14px;margin-top:12px;font-size:var(--fs-13-5);font-weight:700;cursor:pointer}
.dcl-ack input{margin-top:3px;flex:0 0 auto;width:18px;height:18px}
#dclGo:disabled{opacity:.45;cursor:not-allowed}

/* 配信準備画面。できている項目とできていない項目が一目で分かるようにする。 */
.sp-verdict{border-radius:12px;padding:14px 16px;margin-bottom:16px}
.sp-verdict.ok{background:#e9f7ef;border:1px solid #b6e0c6}
.sp-verdict.todo{background:#fff6e6;border:1px solid #f0d9a8}
.sp-verdict b{font-size:16px}
.sp-blockers{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.sp-list{display:grid;gap:8px}
.sp-row{display:grid;grid-template-columns:26px 1fr;gap:9px;align-items:start;
  border:1px solid #e6e9f0;border-radius:10px;padding:11px 13px;background:#fff}
.sp-row.is-todo{border-color:#f0d9a8;background:#fffdf7}
.sp-mark{font-size:15px;line-height:1.5}
.sp-label{font-weight:750;font-size:var(--fs-13-5)}
.sp-value{font-size:var(--fs-13);color:#4d566b;margin-top:2px;word-break:break-word}
.sp-note{font-size:var(--fs-11-5);color:#6b7488;margin-top:3px}
.sp-todo{font-size:var(--fs-12-5);color:#8a5a00;font-weight:700;margin-top:5px}

/* Nintendo 取り込みと同一作品の確認 */
.ninbar{margin-bottom:14px}
.prog{height:8px;background:#e8ebf2;border-radius:5px;overflow:hidden;margin:6px 0 7px}
.prog-in{height:100%;background:#2f6df6;border-radius:5px;transition:width .3s}
.linklist{display:grid;gap:10px}
.linkcard{display:grid;grid-template-columns:1fr 150px 1fr auto;gap:12px;align-items:center;
  border:1px solid #e2e6ef;border-radius:9px;padding:11px 13px;background:#fff}
.lc-side{display:flex;gap:9px;align-items:flex-start;min-width:0}
.lc-side img{width:88px;height:50px;object-fit:cover;border-radius:4px;flex:0 0 auto}
.lc-side .noimg-box{width:88px;height:41px;font-size:var(--fs-10);display:flex;align-items:center;justify-content:center;
  background:#eef0f5;border-radius:4px;color:#8a91a3;flex:0 0 auto}
.lc-t{min-width:0}
.lc-t b{display:block;font-size:var(--fs-13);line-height:1.35;word-break:break-word}
.lc-mid{text-align:center}
.lc-score{display:inline-block;font-weight:700;font-size:var(--fs-12);background:#eef3ff;color:#1c4bbf;
  border-radius:20px;padding:3px 10px;margin-bottom:4px}
.lc-act{display:flex;flex-direction:column;gap:5px}
@media (max-width:900px){.linkcard{grid-template-columns:1fr}.lc-act{flex-direction:row;flex-wrap:wrap}}

/* アイコンの意味（凡例） */
.legend{display:grid;gap:2px}
.lg-row{display:flex;gap:10px;align-items:flex-start;padding:6px 8px;border-radius:6px}
.lg-row:nth-child(odd){background:#f7f8fb}
.lg-icon{flex:0 0 26px;text-align:center;font-size:15px;line-height:1.4}
.lg-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.lg-body b{font-size:var(--fs-13)}
.lg-body .sub{font-size:var(--fs-12);line-height:1.5}
/* ヘッダーのアバターを丸い顔写真にする */
.userbox .avatar{position:relative;overflow:hidden}
.userbox .avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* 入力中の候補（サジェスト） */
.suggestbox{position:absolute;z-index:60;background:#fff;border:1px solid #d8dde8;border-radius:8px;
  box-shadow:0 8px 24px rgba(20,30,60,.14);margin-top:3px;min-width:280px;max-width:460px;overflow:hidden}
.sg-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;background:none;border:0;
  cursor:pointer;text-align:left;font:inherit;border-bottom:1px solid #f0f2f7}
.sg-item:last-child{border-bottom:0}
.sg-item:hover,.sg-item.on{background:#eef3ff}
.sg-item img{width:46px;height:22px;object-fit:cover;border-radius:3px;flex:0 0 auto;background:#e8ebf2}
.sg-t{flex:1;min-width:0;font-size:var(--fs-13);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-n{font-size:var(--fs-11);color:#7a8296;flex:0 0 auto}
/* メーカーの候補。ゲームと見分けがつくようにする */
.sg-ico{width:46px;flex:0 0 auto;text-align:center;font-size:16px;line-height:22px;
  background:#eef1f8;border-radius:3px}
.sg-pub .sg-t{font-weight:600}
.sg-pub .sg-n{color:#3f5bd6}
.toolbar{position:relative}

/* 運営ダッシュボードの「今、対応すべきもの」
   26項目あるので、1件=1行に収めて全体をひと目で見渡せるようにする。
   既定では0件の項目を畳む（対応すべきものだけが残る）。 */
.dtoolbar{display:flex;justify-content:flex-end;margin:-6px 0 10px}
.dtoolbar label{font-size:var(--fs-12);color:#5a6377}
.dboard{background:#fff;border:1px solid #e2e6ef;border-radius:10px;padding:4px 0;margin-bottom:20px}
.dgroup{display:grid;grid-template-columns:104px 1fr;gap:10px;align-items:start;
  padding:8px 14px;border-bottom:1px solid #f0f2f7}
.dgroup:last-child{border-bottom:0}
.dgroup h2{font-size:var(--fs-12);color:#7a8296;margin:5px 0 0;font-weight:700;white-space:nowrap}
.dcards{display:flex;flex-wrap:wrap;gap:5px}
/* 1行カード：アイコン・数字・ラベルを横に並べる */
.dcard{display:inline-flex;align-items:baseline;gap:5px;background:#f7f8fb;border:1px solid #e6e9f0;
  border-radius:7px;padding:5px 10px;cursor:pointer;text-align:left;font:inherit;line-height:1.2;
  transition:border-color .12s,background .12s}
.dcard:hover{border-color:#2f6df6;background:#eef3ff}
.dc-icon{font-size:var(--fs-12)}
.dc-count{font-size:15px;font-weight:800;color:#1e2536;font-variant-numeric:tabular-nums}
.dc-label{font-size:var(--fs-11);color:#5a6377;white-space:nowrap}
/* 0件は既定で隠す。チェックを入れたときだけ薄く出す。 */
.dcard.dc-zero{display:none}
.dboard.show-zero .dcard.dc-zero{display:inline-flex;opacity:.5}
.dboard.show-zero .dcard.dc-zero .dc-count{color:#8a91a3}
/* 一番上の「すぐ手を打てるもの」は他より目立たせる。ここから毎日の作業が始まる。 */
.dgroup.dg-hi{background:#fff8e8;border-bottom:1px solid #f0d9a8}
.dgroup.dg-hi h2{color:#8a5a00}
.dgroup.dg-hi .dcard{background:#fff;border-color:#f0d9a8}
.dgroup.dg-hi .dcard:hover{border-color:#c98a10;background:#fffdf5}
.dgroup[data-allzero="1"]{display:none}
.dboard.show-zero .dgroup[data-allzero="1"]{display:grid}
@media (max-width:640px){
  .dgroup{grid-template-columns:1fr;gap:4px;padding:9px 12px}
  .dgroup h2{margin:0}
  .dc-label{white-space:normal}
}

/* 絞り込みチェックボックス */
.advfilter{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-start;margin-top:10px;
  padding-top:10px;border-top:1px dashed #dfe3ec}
.advgroup{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.advlabel{font-size:var(--fs-11);font-weight:700;color:#3a4157;margin-right:2px}

/* 絞り込みは既定で閉じる。40個以上の選択肢を常に開くと携帯で何も見えない */
.advbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.advtoggle{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);
  background:#fff;border-radius:999px;padding:8px 14px;font-size:var(--fs-13);font-weight:700;
  color:#3a4157;cursor:pointer;min-height:40px}
.advtoggle:hover{border-color:#b9c2d6}
.advtoggle.open{background:var(--brandsoft);border-color:#c3bcf3;color:#4f3bc9}
.advtoggle-i{font-size:var(--fs-12)}
.advcaret{font-size:var(--fs-10);transition:transform .15s}
.advtoggle.open .advcaret{transform:rotate(180deg)}
.advcount{background:var(--brand);color:#fff;border-radius:999px;min-width:19px;height:19px;
  display:inline-grid;place-items:center;font-size:var(--fs-11);font-weight:800;padding:0 5px}
.advchips{display:flex;gap:5px;flex-wrap:wrap;flex:1;min-width:0}
.advchip{border:1px solid #c3bcf3;background:var(--brandsoft);color:#4436ad;border-radius:999px;
  padding:6px 11px;font-size:var(--fs-11-5);font-weight:700;cursor:pointer;min-height:36px}
.advchip:hover{background:#e5e0fb}
.advbody{display:flex;flex-direction:column;gap:9px;margin-top:12px;padding-top:12px;
  border-top:1px solid var(--line)}
@media(max-width:760px){
  .advbar{gap:7px}
  .advtoggle{flex:0 0 auto}
  .advchips{width:100%;order:3}
  .advchip{min-height:40px;padding:8px 13px;font-size:var(--fs-12-5)}
  .advbody{gap:12px}
}
.advchk{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11);border:1px solid #dfe3ec;border-radius:20px;
  padding:3px 9px;cursor:pointer;background:#fff;white-space:nowrap}
.advchk input{margin:0}
.advchk.on{border-color:#2f6df6;background:#eef3ff;color:#1c4bbf;font-weight:600}

.tsum{padding:14px 0 4px}
.tsum-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.tsum-item{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;
  border:1.5px solid #e2e6ef;border-radius:10px;padding:12px 8px;background:#fafbfd}
.tsum-item .ts-i{font-size:22px;line-height:1}
.tsum-item .ts-l{font-size:var(--fs-11);color:#7a8296}
.tsum-item b{font-size:var(--fs-13);line-height:1.35}
.tsum-item.ts-ok{border-color:#8fd0ae;background:#f2fbf6}
.tsum-item.ts-assigned{border-color:#8fb6f0;background:#f2f7ff}
.tsum-item.ts-free{border-color:#8fb6f0;background:#f2f7ff}
.tsum-item.ts-no{border-color:#eaa3a3;background:#fdf4f4}
.tsum-item.ts-others{border-color:#aab8e8;background:#f4f6fd}
.tsum-item.ts-checking,.tsum-item.ts-unknown{border-color:#eccf95;background:#fdfaf2}
.tsum-item.ts-none{opacity:.6;border-style:dashed}
/* 申請したが返事が来ず差し戻した状態。待っている（黄）とは別に見せる。 */
.tsum-item.ts-returned{border-color:#c3c9d4;background:#f5f6f8;border-style:dashed}
.tsum-item.ts-requesting{border-color:#eccf95;background:#fdfaf2}
.tsum-item.ts-unavailable{border-color:#c3c9d4;background:#f5f6f8}
.keyreq-panel .kr-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 0;border-top:1px solid var(--line)}
.keyreq-panel .kr-row:first-child{border-top:0}
.keyreq-panel .kr-title{font-weight:700;min-width:0;overflow-wrap:anywhere}
.keyreq-panel .kr-why{flex-basis:100%;font-size:var(--fs-12);color:var(--muted)}
.keyreq-panel .kr-actions{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.keyreq-mail{white-space:pre-wrap;background:#f7f8fb;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:var(--fs-13);max-height:50vh;overflow:auto}
.tcredit,.tcredit-req{border:1px solid #e2e6ef;border-radius:10px;padding:11px 13px;margin-bottom:10px;background:#fff}
.tcredit-req{border-color:#e9b3b3;background:#fdf6f6}
.tcredit pre,.tcredit-req pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:var(--fs-12-5);
  line-height:1.7;margin:7px 0 9px;color:#2b3245;background:#f7f8fb;border-radius:7px;padding:10px}
.tnotice{border:1px solid #eccf95;background:#fdfaf2;border-radius:10px;padding:11px 13px}
.tnotice ul{margin:6px 0 0;padding-left:20px}
.tnotice li{font-size:var(--fs-12-5);line-height:1.7;color:#6b4e12}
@media (max-width:520px){.tsum-row{grid-template-columns:1fr}.tsum-item{flex-direction:row;justify-content:flex-start;gap:8px;text-align:left}}

/* フォーム申請の導線 */
.formlink{display:flex;align-items:center;gap:10px;border:1px solid #dfe3ec;border-radius:9px;
  padding:10px 12px;margin-bottom:7px;text-decoration:none;color:inherit;background:#fff;transition:border-color .12s,background .12s}
.formlink:hover{border-color:#2f6df6;background:#eef3ff}
.fl-label{font-weight:700;font-size:var(--fs-13);white-space:nowrap}
.fl-url{flex:1;min-width:0;font-size:var(--fs-11);color:#7a8296;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-go{font-size:var(--fs-12);color:#2f6df6;font-weight:700;white-space:nowrap}
.formfield{margin-bottom:12px}
.formfield pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:var(--fs-12-5);line-height:1.7;
  background:#f7f8fb;border:1px solid #e6e9f0;border-radius:7px;padding:10px;margin:6px 0 0;max-height:240px;overflow:auto}
.noticebox.is-block{border-color:#e9b3b3;background:#fdf4f4;color:#8a3b3b}

.permform{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.permform label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-12);color:#4a5268}
.permform label.wide,.permform .wide{grid-column:1/-1}
.perm-row{border:1px solid #e2e6ef;border-radius:8px;padding:9px 11px;margin-bottom:7px;position:relative;padding-right:132px}
.perm-act{position:absolute;right:9px;top:9px;display:flex;gap:5px}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;margin-top:6px}
.pick{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);border:1px solid #e2e6ef;border-radius:6px;padding:5px 7px;cursor:pointer}
.permform label.pick{flex-direction:row;align-items:center;color:inherit}
.pick:has(input:checked){border-color:#5b7fd6;background:#eef3ff}
.permpick{border:1px solid #cfd8ef;background:#f7f9ff;border-radius:8px;padding:9px 11px;margin-top:4px}
@media (max-width:640px){.permform{grid-template-columns:1fr}.gd-img{width:110px}}

.gcards.loading{opacity:.55;transition:opacity .15s}
@media (max-width:640px){ .shelf-row{grid-auto-columns:180px} }

/* ============================================================
   タレント希望（3区分）
   ============================================================ */
.lvbtns{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:6px}
.lvbtns .btn{flex:1 1 auto;font-size:var(--fs-11);padding:6px 5px;min-width:74px}
.mylist-h{font-size:15px;margin:0 0 12px}
.gcard.is-mylist{grid-template-columns:200px 1fr}
.gcard.is-mylist .gcard-img{width:200px;height:auto}

.wishtabs{display:flex;gap:8px;margin:0 0 14px}
.wishlist{display:flex;flex-direction:column;gap:12px}
.wishcard{position:relative;display:grid;grid-template-columns:26px 200px 1fr;gap:14px;align-items:start;
  background:#fff;border:1px solid #e6e9f0;border-radius:12px;padding:12px}
.wishpick{padding-top:4px}
.wishpick input{width:17px;height:17px;cursor:pointer}
.wishimg{width:200px;height:94px;border-radius:8px;overflow:hidden;background:#e9edf4}
.wishimg img{width:100%;height:100%;object-fit:cover;display:block}
.wishbody h3{margin:0 0 4px;font-size:16px}
.wishmeta{font-size:var(--fs-12);color:#6b7488;margin-bottom:8px}
.wishrow{display:flex;align-items:center;gap:10px;margin:4px 0;flex-wrap:wrap}
.wishlv{font-size:var(--fs-12);font-weight:700;color:#46506a;min-width:190px}
.nofaces{color:#aab1c0;font-size:var(--fs-12)}
.wishactions{display:flex;gap:8px;margin-top:10px}
.pubblock{border:1px solid #e6e9f0;border-radius:10px;padding:12px;margin-bottom:12px}
.pubblock h4{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pubgame{padding:8px 0;border-top:1px dashed #e6e9f0}
.talentpick{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.talentpick .inline{font-size:var(--fs-13)}
@media (max-width:820px){
  .wishcard{grid-template-columns:26px 1fr}
  .wishimg{display:none}
  .wishlv{min-width:auto}
  .gcard.is-mylist{grid-template-columns:1fr}
  .gcard.is-mylist .gcard-img{width:100%;height:auto}
}

/* 版数表示（最新版を見ているか判断用） */
.mgd-buildtag{position:fixed;right:8px;bottom:4px;font-size:var(--fs-10);color:#9aa2b4;
  background:rgba(255,255,255,.75);padding:2px 7px;border-radius:99px;pointer-events:none;z-index:5}

@media (max-width:760px){
  /* 字の大きさ：小さい側を読める大きさへ（本文14px前後、補足13px、札12px以上）。パソコンは上の :root の値のまま */
  :root{--fs-9:11px;--fs-9-5:11px;--fs-10:12px;--fs-10-5:12px;--fs-11:12.5px;--fs-11-5:13px;--fs-12:13px;--fs-12-5:13.5px;--fs-13:14px;--fs-13-5:14.5px;}
  /* 押せるものを指の大きさに合わせる（44px。小さいボタンも同じにした：40pxでは押し間違いが残った） */
  .btn,.interest,.genre-chip,.navbtn{min-height:44px}
  .btn.small{min-height:44px;padding:9px 12px;font-size:var(--fs-13)}
  .linkbtn{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-12-5)}
  .xbtn{width:44px;height:44px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;flex:0 0 auto}
  .advchk{min-height:44px;padding:8px 12px;font-size:var(--fs-12-5);gap:7px}
  .checktile label{min-height:44px;display:flex;align-items:center}

  /* iPhoneで勝手に拡大されないよう、入力欄の文字は16px以上にする */
  .input,.select,.textarea{min-height:44px;font-size:16px}
  .toolbar{gap:8px}
  .toolbar .input,.toolbar .select{width:100%;min-width:0}
  .toolbar .btn{width:100%}
  .toolbar .inline{width:100%}

  /* 棚のカード。指でも押せる幅と、押しやすいボタンにする */
  .shelf-row{grid-auto-columns:208px;gap:11px}
  .shelf-head{flex-wrap:wrap;gap:8px}
  .shelf-more{margin-left:0;width:100%;min-height:44px}
  .lvbtns{gap:6px}
  .lvbtns .btn{min-width:0;flex:1 1 46%;font-size:var(--fs-12);padding:10px 6px;min-height:44px}
  .tcard-detail{min-height:44px}
  .tcard-actions .btn{font-size:var(--fs-12);padding:10px 4px}

  /* 運営ダッシュボードのカード */
  .dcard{min-height:44px;padding:9px 12px}
  .dc-label{font-size:var(--fs-12)}

  /* 詳細・確認のポップアップは画面いっぱいに使う */
  .modalback{padding:0;place-items:stretch}
  .modal{width:100%;max-height:100vh;max-height:100dvh;border-radius:0}
  .modal.modal-flex{height:100vh;height:100dvh}
  .gd-head{flex-wrap:wrap;gap:10px;padding:12px}
  .gd-img{width:96px;height:54px}
  .gd-head .btn{margin-left:auto}
  .gd-body{padding:12px}
  .gd-row{grid-template-columns:1fr;gap:2px}
  .gd-k{font-weight:800}
  .modalfoot{flex-wrap:wrap}
  .modalfoot .btn{flex:1 1 auto}

  /* 下の帯（メニュー）と重ならないようにする */
  .toast{left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));max-width:none}
  #researchMonitor{left:8px;right:8px;bottom:calc(70px + env(safe-area-inset-bottom));width:auto}

  /* 未返信・要対応、配信前の確認 */
  .ibx-acts .btn{flex:1 1 auto}
  .dcl-ack{padding:14px}
  .dcl-ack input{width:24px;height:24px}
}

/* 指で操作する端末では、狙いにくい小さな文字リンクを大きくする */
@media (hover:none) and (pointer:coarse){
  .linkbtn{min-height:40px}
  .mini-link{padding:7px 10px;font-size:var(--fs-11-5)}
  .face{width:26px;height:26px}
}

.todo-group{background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:14px 16px;margin-bottom:14px}
.todo-group.todo-gap{background:#fffaf2;border-color:#f0d9a8}
.todo-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;margin-bottom:11px}
.todo-head h2{font-size:16px;margin:0;display:flex;align-items:center;gap:8px}
.todo-n{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;
  border-radius:999px;background:var(--brandsoft);color:#4f3bc9;font-size:var(--fs-12);font-weight:900}
.todo-gap .todo-n{background:#fdefd6;color:#8a5a00}
.todo-head .sub{flex:1 1 240px;min-width:0}
.todo-list{display:grid;gap:9px}
.todo{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;
  border:1px solid #eceff4;border-radius:11px;padding:10px 12px;background:#fff}
.todo-img{width:96px;height:54px;object-fit:cover;border-radius:6px}
.todo-main{min-width:0}
.todo-title{font-size:14px;line-height:1.35;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.todo-who{display:flex;align-items:center;gap:7px;margin-top:6px;flex-wrap:wrap}
.todo-act{display:flex;flex-direction:column;gap:5px;align-items:stretch;min-width:150px}
.todo-act .btn{white-space:nowrap}

/* 数字の内訳は畳んでおく。やることがある日は開かない。 */
.dboard-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;
  margin-bottom:14px;overflow:hidden}
.dboard-wrap>summary{padding:13px 16px;cursor:pointer;font-weight:800;font-size:var(--fs-13-5);color:#59657a}
.dboard-wrap>summary:hover{background:#fafbfc}
.dboard-wrap[open]>summary{border-bottom:1px solid var(--line)}

@media (max-width:760px){
  .todo{grid-template-columns:72px 1fr;grid-template-rows:auto auto}
  .todo-img{width:72px;height:41px}
  .todo-act{grid-column:1/3;flex-direction:row;flex-wrap:wrap;min-width:0}
  .todo-act .btn{flex:1 1 auto;min-height:44px}
}

/* ------------------------------------------------ タレントトップのお知らせ */
/* 「気になる」を押した作品に動きがあったら、棚より先に見せる。
   まだ見ていないものは左の線と背景で分かるようにする。 */
.tnotices{border:1px solid var(--line);border-radius:12px;background:#fff;margin:0 0 18px;overflow:hidden}
.tnotices>summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;
  list-style:none;font-size:14px}
.tnotices>summary::-webkit-details-marker{display:none}
.tnotices>summary::before{content:'▸';color:#8a96a8;font-size:var(--fs-12)}
.tnotices[open]>summary::before{content:'▾'}
.tnotices[open]>summary{border-bottom:1px solid var(--line)}
.tn-badge{background:#d94a3d;color:#fff;border-radius:999px;padding:2px 9px;font-size:var(--fs-12);font-weight:700}
.tn-read{margin-left:auto;font-size:var(--fs-12-5);color:#3b6fd4;text-decoration:underline}
.tnotice-list{display:flex;flex-direction:column}
/* 名前は .tnotice と分けること。あちらは注意書きの箱で、こちらは1行のボタン。
   同じ名前にしたら詳細ポップアップの注意書きがこの grid を拾い、
   26px の列に押し込まれて文字が縦一列になった。 */
.tnrow{display:grid;grid-template-columns:26px 64px 1fr auto;align-items:center;gap:10px;
  width:100%;padding:10px 16px;background:none;border:0;border-top:1px solid #f0f2f6;
  text-align:left;cursor:pointer;font:inherit}
.tnrow:first-child{border-top:0}
.tnrow:hover{background:#f7f9fc}
.tnrow.is-new{background:#fff8ec;box-shadow:inset 3px 0 0 #e2761b}
.tn-icon{font-size:17px;text-align:center}
.tn-img{width:64px;aspect-ratio:16/9;height:auto;object-fit:cover;border-radius:5px}
.tn-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.tn-title{font-weight:700;font-size:var(--fs-13-5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tn-text{font-size:var(--fs-12-5);color:#59657a}
.tn-at{font-size:var(--fs-12);color:#8a96a8;white-space:nowrap}

/* --------------------------------------- 同じ会社へ続けて送るときの確認 */
/* 「本当に送りますか？」だけでは判断できないので、
   いつ・誰が・どの作品で送ったかを並べて見せる。 */
.resend-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;
  margin-top:12px;overflow:hidden}
.resend-row{display:grid;grid-template-columns:88px 84px 1fr;gap:10px;padding:9px 12px;
  font-size:var(--fs-13);border-top:1px solid #f0f2f6}
.resend-row:first-child{border-top:0}
.resend-date{font-weight:700}
.resend-who{color:#59657a}
.resend-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:760px){
  .tnrow{grid-template-columns:24px 1fr;grid-template-rows:auto auto}
  .tn-img{display:none}
  .tn-at{grid-column:2;font-size:var(--fs-11-5)}
  .resend-row{grid-template-columns:1fr;gap:2px}
}

/* 読んだお知らせは折りたたんで下へ。トップの未読欄へは復活させない。 */
.tnotices-read{border-top:1px solid var(--line);background:#fafbfc}
.tnotices-read>summary{padding:9px 16px;cursor:pointer;font-size:var(--fs-12-5);list-style:none}
.tnotices-read>summary::-webkit-details-marker{display:none}
.tnotices-read>summary::before{content:'▸ ';color:#8a96a8}
.tnotices-read[open]>summary::before{content:'▾ '}
.tnotices-read .tnrow{opacity:.72}

/* ---------------------------------------------- 運営: メーカー・申請候補 */
.linklike{background:none;border:0;padding:0;color:#2f5fd0;cursor:pointer;font:inherit;text-align:left}
.linklike:hover{text-decoration:underline}
/*
 * 数字を横に並べる小さい行。
 * 以前ここを .stat という名前にしていたため、ダッシュボードの
 * 大きなカード（同じ .stat）まで細い縦並びに変わってしまっていた。
 */
.statrow{display:flex;gap:22px;flex-wrap:wrap}
.statcell{display:flex;flex-direction:column;gap:2px;min-width:96px}
.statcell b{font-size:20px}
.ctlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.ctrow{display:grid;grid-template-columns:64px 92px 1fr auto;gap:10px;align-items:center;
  padding:8px 12px;border-top:1px solid #f0f2f6;font-size:var(--fs-13)}
.ctrow:first-child{border-top:0}
.ct-kind{color:#59657a}
.ct-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace}
.sercand{border:1px solid var(--line);border-radius:9px;padding:11px 13px;margin-bottom:8px}
.boxpub{margin-bottom:16px}
.badrow{background:#fdf4f4}
@media (max-width:760px){
  .ctrow{grid-template-columns:1fr;gap:2px}
  .statrow{gap:14px}
}

/* 調査履歴・返信の反映 */
.histlist{display:flex;flex-direction:column;gap:10px}
.histrow{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff}
.histrow.is-now{border-color:#8fd0ae;background:#f7fdfa}
.hr-head{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:var(--fs-13)}
.hr-date{color:#8a96a8;font-size:var(--fs-12);min-width:84px}
.hr-val{font-size:var(--fs-13-5);margin-top:5px;word-break:break-all}
.hr-quote{margin-top:6px;padding:7px 10px;background:#f7f9fc;border-radius:6px;
  font-size:var(--fs-12-5);color:#59657a;white-space:pre-wrap}
.replybox{max-height:260px;overflow:auto;background:#f7f9fc;padding:10px;border-radius:8px;
  font-size:var(--fs-12-5);line-height:1.65;white-space:pre-wrap}

/* ==================================================================
 * 携帯（760px以下）での作り
 *
 * ここまでのCSSは机の上の画面を前提にしている。
 * 携帯で困っていたのは主に3つ:
 *   ・表が最小930pxで、1行を見るのに左右へ振る必要があった
 *   ・絞り込みの選択肢53個が一度に出て、ゲームが見えなくなっていた
 *   ・押すところが小さく、指では狙いにくかった
 * まとめてここで直す。机の上の見た目には触らない。
 * ================================================================ */
@media (max-width: 760px) {

  /* ---- 表は1件ずつのカードにする（横スクロールをやめる） ---- */
  .tablewrap { overflow: visible; }
  .table { min-width: 0; display: block; border-collapse: separate; }
  .table thead { display: none; }
  .table tbody, .table tr, .table td { display: block; width: auto; }
  .table tr {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    margin-bottom: 10px;
    box-shadow: 0 1px 2px rgba(29,42,68,.04);
  }
  .table tr:last-child { margin-bottom: 0; }
  .table td {
    border: 0;
    padding: 7px 0;
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    font-size: var(--fs-13);
  }
  .table td + td { border-top: 1px dashed #eef1f6; }
  .table td::before {
    content: attr(data-label);
    font-size: var(--fs-11);
    font-weight: 700;
    color: var(--muted);
    line-height: 1.7;
  }
  /* 見出しを持たないセル（「該当なし」など）は普通に出す */
  .table td:not([data-label]) { display: block; }
  .table td:not([data-label])::before { content: none; }
  /* 1列目は見出しを出さず、カードの表題として大きく見せる */
  .table td:first-child {
    grid-template-columns: minmax(0, 1fr);
    padding-top: 0;
    font-size: 14px;
  }
  .table td:first-child::before { content: none; }
  .gamecell { min-width: 0; }
  .gamecell .thumb { width: 72px; height: 41px; }

  /* ---- 押すところは指のサイズに合わせる ---- */
  .btn { min-height: 42px; padding: 10px 15px; }
  .btn.small { min-height: 38px; padding: 8px 12px; font-size: var(--fs-12-5); }
  .input, .select, .textarea { min-height: 44px; font-size: 16px; }  /* 16px未満だとiOSが勝手に拡大する */
  .linkbtn, .linklike { min-height: 38px; display: inline-flex; align-items: center; }

  /* ---- 画面の外へはみ出させない ---- */
  .content { overflow-x: hidden; }
  .pagehead h1 { font-size: 21px; }
  .modal { width: 100%; border-radius: 16px 16px 0 0; }
  code, .ct-val, .ctb-now b { word-break: break-all; }
}

/* ---- 絞り込みは分類を選んでから中身を出す ---- */
.advcats { display: flex; gap: 6px; flex-wrap: wrap; }
.advcat {
  border: 1px solid var(--line); background: var(--surface); color: #4a5468;
  border-radius: 9px; padding: 8px 12px; font-size: var(--fs-12-5); font-weight: 700;
  cursor: pointer; min-height: 38px; display: inline-flex; align-items: center; gap: 6px;
}
.advcat:hover { border-color: #b9c2d6; }
.advcat.on { border-color: #c3bcf3; background: var(--brandsoft); color: #4436ad; }
.advcat[aria-selected="true"] {
  border-color: var(--brand); background: var(--brand); color: #fff;
  box-shadow: 0 2px 8px rgba(96,70,231,.22);
}
.advcatn {
  background: rgba(255,255,255,.28); border-radius: 999px; min-width: 17px; height: 17px;
  display: inline-grid; place-items: center; font-size: var(--fs-10-5); padding: 0 4px;
}
.advcat:not([aria-selected="true"]) .advcatn { background: var(--brand); color: #fff; }
.advbody > .advgroup {
  margin-top: 10px; padding-top: 11px; border-top: 1px solid var(--line);
  animation: advIn .16s ease-out;
}
@keyframes advIn { from { opacity: 0; transform: translateY(-3px) } to { opacity: 1; transform: none } }

@media (max-width: 760px) {
  .advcats { gap: 5px; }
  .advcat { min-height: 40px; font-size: var(--fs-12); padding: 8px 11px; flex: 1 1 auto; justify-content: center; }
  .advbody > .advgroup { gap: 6px; }
  .advchk { flex: 1 1 calc(50% - 3px); justify-content: flex-start; }
}

[hidden] { display: none !important; }

/* ==================================================================
 * 仕上げ
 *
 * 見た目を作り直すのではなく、すでにある形の「粗さ」を取る。
 *   ・キーボードで操作したときに、どこにいるか分かる
 *   ・押せるものは押せるように見え、触ると反応する
 *   ・影・角・境界の付け方を揃える
 *   ・動きは短く、同じ速さで。動きが苦手な人には出さない
 * 既存の配置や色の意味は変えない（作業中の画面が急に変わらないように）。
 * ================================================================ */

/* ---- キーボードで触っているときだけ、居場所を示す ---- */
:where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
  border-radius: 6px;
}
.btn:focus-visible { outline-offset: 3px; }
/* マウスで押しただけのときは出さない（うるさくなるため） */
:where(button, a):focus:not(:focus-visible) { outline: none; }

/* ---- 押した手ごたえ ---- */
.btn, .navbtn, .advcat, .advchip, .stx, .advtoggle, .rolesw button, .xbtn {
  transition: background-color .15s ease, border-color .15s ease,
              color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.btn:active, .advcat:active, .stx:active, .advtoggle:active { transform: translateY(1px); }
.btn:disabled { transform: none; }

/* ---- 影と境界を揃える ---- */
.panel { box-shadow: 0 1px 2px rgba(29,42,68,.04), 0 8px 24px rgba(29,42,68,.04); }
.suggestbox { box-shadow: 0 10px 30px rgba(20,30,60,.16); }

/* ---- 見出しの間合い ---- */
.pagehead h1 { letter-spacing: -.01em; }
.panelhead h2 { letter-spacing: -.005em; }
.gd-sec h3 { letter-spacing: -.005em; }

/* ---- 数字は桁がそろって見えるようにする ---- */
.stx-v, .todo-n, .advcount, .advcatn, .stat .v, .statcell b {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* ---- 読み込み中は、押せないことが見て分かるように ---- */
.btn:disabled, .input:disabled, .select:disabled { cursor: not-allowed; }

/* ---- 画像が来るまでの下地（真っ白にしない） ---- */
.thumb, .todo-img, .gd-img, .tn-img { background: linear-gradient(180deg,#eef1f6,#e6eaf1); }

/* ---- 長いものは、はみ出さずに省略する ---- */
.gametitle, .ibx-t b, .todo-title { overflow-wrap: anywhere; }

/* ---- 動きが苦手な人には動かさない ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* 窓口の「送り方」を、ひと目で分かるように */
.ctb-ch{display:inline-flex;align-items:center;gap:4px;background:var(--infobg);color:var(--info);
  border-radius:7px;padding:4px 9px;font-size:var(--fs-11-5);font-weight:800;white-space:nowrap}
.ctb-ch.bad{background:var(--badbg);color:var(--bad)}
.ctb-how{font-size:var(--fs-12);color:var(--muted);line-height:1.7}

/* ------------------------------------------------ 送信前の最終確認（企画） */
/*
 * 「出演する人」と「ゲームを起動する人」を見た目でも分ける。
 * 同じ並びに置くと、選んだ人数がそのままキー本数だと読まれてしまう。
 */
.planbox{border:1px solid var(--line);border-radius:12px;padding:14px;margin:14px 0;background:var(--panel-2)}
.planhead{font-weight:600;font-size:var(--fs-13);margin-bottom:10px;color:var(--fg)}
.planrows{display:flex;flex-direction:column;gap:6px}
.planrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.planrow .select{width:auto;min-width:150px}
.keystepper{align-items:center;gap:8px}
.keystepper .keynum{width:74px;text-align:center;font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}
.keystepper .btn.small{min-width:38px;font-size:16px;line-height:1}
@media(max-width:760px){
  .planrow{align-items:flex-start}
  .planrow .select{min-width:0;flex:1}
}

/* ------------------------------------------------ メーカーとのやり取り */
/*
 * 送ったものと届いたものを、左右と色で見分けられるようにする。
 * どちらが書いた文か分からないと、条件の読み違いが起きる。
 */
.thread{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;padding-right:4px}
.tmsg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel)}
.tmsg.out{border-left:3px solid var(--accent, #4a7dff)}
.tmsg.in{border-left:3px solid var(--good, #29a56c);background:var(--panel-2)}
.tmsg-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.tmsg-who{font-size:var(--fs-12);font-weight:600}
.tmsg-subj{font-size:var(--fs-12);font-weight:600;margin-bottom:6px;opacity:.85}
.tmsg-body{white-space:pre-wrap;font-size:var(--fs-12);line-height:1.7;max-height:220px;overflow:auto}
.tmsg-ja{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);white-space:pre-wrap;font-size:var(--fs-12);line-height:1.7}
.tmsg-ja b{display:block;font-size:var(--fs-11);opacity:.7;margin-bottom:4px}
@media(max-width:760px){ .thread{max-height:none} .tmsg-body{max-height:none} }

/* 返信を書く場所。やり取りを読んでから開く（開くまでは畳んでおく） */
.composer{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px;background:var(--panel-2)}
.composer .inline{gap:8px;flex-wrap:wrap}
.composer #threadHint{flex:1;min-width:220px}
.warnhint{color:var(--warn-fg, #b26a00);font-weight:600}

/* ------------------------------------------------ 作品カルテ（1作品の入口） */
/*
 * 1つの作品に画面が13個あって、どこを押せばいいか分からなかった。
 * 状態を上から順に出し、行ごとに「やること」を1つだけ置く。
 */
.hub{display:flex;flex-direction:column;gap:12px}
.hubrow{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel)}
.hubrow-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hubrow-h b{font-size:14px}
.hubicon{font-size:18px;line-height:1}
.hubrow-d{margin-top:10px;font-size:var(--fs-12);line-height:1.7}
.hubrow-a{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.kv2{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:var(--fs-12)}
.kv2>div:nth-child(odd){opacity:.65;white-space:nowrap}
.hubsrc{margin-top:10px}
.hubsrc summary{cursor:pointer;font-size:var(--fs-12);opacity:.8}
.hubsrc ul{margin:8px 0 0;padding-left:18px;font-size:var(--fs-12);line-height:1.8}
@media(max-width:760px){ .kv2{grid-template-columns:1fr;gap:2px 0} .kv2>div:nth-child(odd){margin-top:6px} }

/* ------------------------------------------------ 取得済みキー（タレント） */
/*
 * キーが来たあとにやること（登録・配信可否の確認・クレジット記載）を
 * この1枚で終わらせる。別画面を探させない。
 */
.keycard{display:flex;gap:0;flex-direction:column;overflow:hidden}
.keycard-img{width:100%;height:120px;object-fit:cover;display:block}
.keycard-b{padding:14px;display:flex;flex-direction:column;gap:8px}
.keycard-b b{font-size:14px}
.keyacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.keyacts .btn{white-space:nowrap}
.keynotice{border-left:3px solid var(--warn,#c98a00);background:var(--panel-2);padding:9px 11px;border-radius:8px;font-size:var(--fs-12);line-height:1.7}
.keynotice b{display:block;font-size:var(--fs-11);opacity:.75;margin-bottom:3px}
.credittext{white-space:pre-wrap;font-size:var(--fs-12);line-height:1.7;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px;margin:8px 0}
@media(max-width:760px){ .keycard-img{height:96px} .keyacts .btn{flex:1} }

/* --------------------------------------------- 作品カルテの進捗（時系列） */
/*
 * 上から下へ、実際に進む順に並べる。
 * いまどこまで来ているかが、開いた瞬間に分かることを狙う。
 */
.flow{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:var(--panel-2);margin-bottom:4px}
.flowstep{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);padding:4px 10px;border-radius:999px;
  border:1px solid transparent;white-space:nowrap}
.flownum{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;
  font-size:var(--fs-11);font-weight:700;background:var(--line);color:var(--fg)}
.flowstep.done{color:var(--good-fg,#177a4f)}
.flowstep.done .flownum{background:var(--good,#29a56c);color:#fff}
.flowstep.now{border-color:var(--brand,#6d55e6);background:var(--brandsoft,#efecff);font-weight:700}
.flowstep.now .flownum{background:var(--brand,#6d55e6);color:#fff}
.flowstep.none{opacity:.45}
.flowarrow{opacity:.35;font-size:14px}
/* いま進めるべき段を目立たせる */
.hubrow.is-now{border-color:var(--brand,#6d55e6);box-shadow:0 0 0 3px var(--brandsoft,#efecff)}
.hubstep{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--line);font-size:var(--fs-11);font-weight:700;flex:0 0 auto}
.hubrow.is-now .hubstep{background:var(--brand,#6d55e6);color:#fff}
@media(max-width:760px){ .flow{gap:2px;padding:10px} .flowstep{padding:3px 7px;font-size:var(--fs-11)} .flowarrow{display:none} }

/* ------------------------------------------- フォームに貼る項目（差出人） */
/*
 * フォームは氏名・会社名・返信先メールも聞いてくる。
 * 毎回打たせないよう、1行1項目でコピーできるようにする。
 */
.fmsender{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);
  border-radius:9px;margin-bottom:6px;font-size:var(--fs-12)}
.fms-l{flex:0 0 110px;opacity:.7}
.fms-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
@media(max-width:760px){ .fmsender{flex-wrap:wrap} .fms-l{flex:0 0 100%} .fms-v{flex:1 1 auto} }

/* キーの心当たり確認。配り間違いを本人の目でも止める */
.keyack{border:1px solid var(--brand,#6d55e6);background:var(--brandsoft,#efecff);border-radius:10px;padding:11px 12px;font-size:var(--fs-12)}
.keyack b{display:block;margin-bottom:3px}

/* キーの確認依頼。埋もれさせない */
.alertpanel{border-color:var(--bad,#d14343)}
.alertpanel .panelhead h2{color:var(--bad,#d14343)}
.alertrow{border:1px solid var(--line);border-left:3px solid #b8c0cf;border-radius:10px;padding:11px 12px;font-size:var(--fs-13)}
/* 重さで左の色を変える（赤＝すぐ手を打つ／黄＝様子を見る） */
.alertrow.bad{border-left-color:var(--bad,#d14343)}
.alertrow.warn{border-left-color:var(--warn,#c98a00)}

.advchip.on{background:#5f48dc;border-color:#5f48dc;color:#fff}
.loglist{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}
.logrow{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:start;
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.logrow-alert{border-color:#e2a0a0;background:#fff7f7}
.logtime{color:var(--muted);font-size:var(--fs-11-5);font-variant-numeric:tabular-nums;padding-top:3px}
.logbody{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:var(--fs-13);line-height:1.6}
@media(max-width:760px){
  .logrow{grid-template-columns:1fr;gap:4px}
  .logtime{padding-top:0}
}

@media(max-height:900px){
  .sidebar{padding-top:10px}
  .navbtn{padding:8px 12px;margin-bottom:2px;font-size:var(--fs-13)}
  .navgroup{padding:9px 12px 3px}
}
@media(max-height:720px){
  .navbtn{padding:6px 12px;font-size:var(--fs-12-5)}
  .navgroup{padding:6px 12px 2px;font-size:var(--fs-10)}
}

/**
 * 配信するときに守ること（1か所にまとめた表示）。
 *
 * これまで画面ごとにバラバラな見た目で、しかもクレジットは折りたたまれていた。
 * ここでは **畳まない・大きく出す・コピーは1タップ** を守る。
 */
.guide{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;margin-top:12px}
.guide-head{font-weight:900;font-size:var(--fs-13);padding:10px 13px;background:#f6f7fb;border-bottom:1px solid var(--line)}
.guide-block{padding:12px 13px;border-bottom:1px solid #eef0f5}
.guide-block:last-child{border-bottom:0}
.guide-k{font-weight:850;font-size:var(--fs-12-5);margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.guide-list{margin:0;padding-left:20px;font-size:var(--fs-13-5);line-height:1.8;color:#3a4157}
.guide-block.must{background:#fdf6f6}
.guide-block.must .guide-list li{font-weight:700;color:#8c211a}
.guide-block.warn{background:#fffaf0}
.guide-stop{background:#fdecea;border-bottom:1px solid #f0b6b0;padding:12px 14px;color:#8c211a}
.guide-block.credit .credittext{margin:8px 0 10px;font-size:var(--fs-12-5)}
.guide-copy{width:100%}
.guide-ok{padding:12px 13px;font-size:var(--fs-13);color:#2f6b52;background:#f2faf6}
.guide-ok .sub{display:block;margin-top:2px}
.guide-compact .guide-head{display:none}
@media(max-width:760px){.guide-list{padding-left:18px;font-size:var(--fs-13)}}

/* キーが届いたあと「次に何をすればよいか」を1行で出す */
.keynext{border-radius:10px;padding:10px 12px;background:#f4f6fa;border:1px solid var(--line)}
.keynext b{font-size:var(--fs-13)}
.keynext .sub{margin-top:3px}
.keynext.good{background:#f2faf6;border-color:#bfe3d3;color:#245c46}
.keynext.warn{background:#fffaf0;border-color:#f0dcb4;color:#7a5312}
.keynext.bad{background:#fdf1f0;border-color:#f0b6b0;color:#8c211a}
.keynext.good b,.keynext.warn b,.keynext.bad b{color:inherit}
.keydeclare{width:100%;margin-top:4px}

/* キーを登録したあとの結果 */
.keyresult{border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#f6f8fc;margin-bottom:12px}
.keyresult .sub{margin-top:4px}

/* 受信メールの本文（結び付ける前に中身を確かめる） */
.mailbody{white-space:pre-wrap;word-break:break-word;font-size:var(--fs-12);line-height:1.7;
  background:var(--panel-2,#f7f8fb);border:1px solid var(--line);border-radius:8px;
  padding:10px;margin:8px 0;max-height:260px;overflow:auto}



/* 見出しは行間を詰める（本文の1.75をそのまま使うと間延びする） */
h1,h2,h3,.gametitle,.game-card h3{line-height:1.4}

/* 押せるものの最低の大きさ。指で押せる高さにそろえる。 */
.btn{min-height:40px}
.btn.small{min-height:34px;padding:7px 12px}
.navbtn{min-height:42px}
.xbtn{min-width:38px;min-height:38px}
.input,.select,.textarea{min-height:42px}
.select{min-height:42px}

/* 役割の切り替えは押し間違えると画面が変わるので、特に押しやすくする */
.rolesw button{min-height:32px;padding:5px 12px}

/**
 * キーボードで動かしたときに、いまどこにいるかを必ず見せる。
 * マウスで押したときは出さない（:focus-visible）。
 */
:where(button,a,input,select,textarea,summary):focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
  border-radius:8px;
}

/* 押している間の手ごたえ */
.btn:active{transform:translateY(1px)}

/* 触れるものだとひと目で分かるように */
.navbtn,.btn,.pill[role="button"]{-webkit-tap-highlight-color:transparent}

@media(max-width:760px){
  /* スマホは指で押す。タレントはほぼスマホから見るので、ここは広めに取る。 */
  .btn{min-height:46px;padding:12px 16px}
  .btn.small{min-height:44px}
  .userbox .btn.small{min-width:44px}
  .linkbtn,.linklike{min-height:44px}
  .linkbtn{min-width:44px;justify-content:center}
  a.pill[href]{min-height:44px;padding:8px 12px}
  .advtoggle{min-height:44px}
  /* 「本文を見る」「読んだお知らせ」などの開く行（三角の印は残すので display は変えない） */
  details>summary.sub{padding-top:10px;padding-bottom:10px}
  /* 選ぶもの（チェック・丸）は、字の部分まで押せる札にして44px */
  label.pill:has(input),label.inline:has(input){min-height:44px}
  .wishpick{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0}
  .mini-link{display:inline-flex;align-items:center;min-height:44px}
  .tnotices>summary{min-height:44px}
  /* 表の「選ぶ」チェック：まわり44pxを押せば入る（app.js で label.chkhit に包んだ） */
  .chkhit{display:inline-grid;place-items:center;min-width:44px;min-height:44px;cursor:pointer}
  .input,.select,.textarea{min-height:46px;font-size:16px}  /* 16px未満はiPhoneで拡大される */
  .mobile-nav button{min-height:52px}
  .xbtn{min-width:44px;min-height:44px}
}

.gcard-next{flex:1 1 auto;min-width:140px;justify-content:center;font-weight:850}
.gcard-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}

/* 作品カルテの下段（ふだんは使わない設定） */
.hubfoot{display:flex;gap:8px;flex-wrap:wrap;padding:14px 2px 2px;margin-top:6px;
  border-top:1px dashed var(--line)}

/* =====================================================================
 * タレントの一覧に「配信していいか」を出す
 *
 * いちばん知りたいことが一覧に無く、1件ずつ開かないと分からなかった。
 * 題名のすぐ下、目線が最初に落ちる位置に置く。
 * ===================================================================== */
.tstatrow{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 8px}
.tstat{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12-5);font-weight:800;
  padding:5px 10px;border-radius:999px;background:#eef1f6;color:#4a5468;line-height:1.3}
.tstat.good{background:var(--goodbg);color:var(--good)}
.tstat.warn{background:var(--warnbg);color:var(--warn)}
.tstat.bad{background:var(--badbg);color:var(--bad)}
@media(max-width:760px){.tstat{font-size:var(--fs-13);padding:6px 11px}}

/* メーカーからもらった素材（プレスキット等） */
.assetlist{display:grid;gap:8px;margin-top:8px}
.assetrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-decoration:none;
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;min-height:44px}
.assetrow:hover{border-color:#c3bcf3;background:#fbfaff}
.assetname{font-weight:800;font-size:var(--fs-13);word-break:break-all;flex:1 1 auto}
.assetterms{flex-basis:100%}

.failrows{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.failrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.failrow .pill{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}

.shelf-row.is-wrap{grid-auto-flow:row;grid-auto-columns:auto;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  overflow:visible;scroll-snap-type:none}
/**
 * 携帯では2列にする。
 *
 * 1列だとカード1枚で画面がほぼ埋まり、何件あるのか分からない。
 * 幅の目安を140pxにしてあるのは、375pxの端末で
 * 本文の余白（左右12px）と折りたたみの余白（左右18px）を引いても
 * 2列が必ず入るようにするため（140×2＋間隔14＝294 ≦ 315）。
 */
@media(max-width:520px){
  .shelf-row.is-wrap{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
}

.permit-find{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.permit-find .input{flex:1;min-width:180px}
.permit-more{display:flex;align-items:center;justify-content:center;gap:12px;
  padding:14px 0 4px;flex-wrap:wrap}

/* 枠の帯を出すために、カード自体を位置の基準にする */
.tcard{position:relative}

/* 影は使わない。カードは hover で影を差し替えるので、そこで消えてしまう。 */
.tcard-ok{border-color:#8ccbb2}
.tcard-others{border-color:#aab8e8}
.tcard-no{border-color:#e5a9b0}
.tcard-ok::before,.tcard-others::before,.tcard-no::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;z-index:2}
.tcard-ok::before{background:var(--good)}
.tcard-others::before{background:#5568c8}
.tcard-no::before{background:var(--bad)}

/* メーカーとの実績の中身。ふだんは1行、押すと開く。 */
.pubev{margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}
.pubev>summary{padding:10px 12px;cursor:pointer;display:flex;align-items:center;gap:9px;
  flex-wrap:wrap;list-style:none;min-height:44px}
.pubev>summary::-webkit-details-marker{display:none}
.pubev>summary::before{content:'▸';color:var(--muted);font-weight:900;flex:none}
.pubev[open]>summary::before{content:'▾'}
.pubev[open]>summary .sub{display:none}
.pubev-list{padding:0 12px 12px;display:flex;flex-direction:column;gap:7px}
.pubev-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pubev-t{font-weight:700}

/* キーが要るのか要らないのか。申請文を作る前に見る一行。 */
.todo-key{margin-top:5px;font-size:var(--fs-13);line-height:1.5}
.todo-key.want{color:#8a4b00}
.todo-key.none{color:var(--muted)}

/* 残りのお知らせを開くボタン。ふだんは折りたたんでおく。 */
.tn-more{margin:2px 12px 10px}

/* お知らせの中の見出し（あなたのこと／みんなの呼び掛け）。 */
.tn-sec{padding:8px 12px 2px;font-size:var(--fs-12);font-weight:800;color:var(--muted)}

/* 返信を読んで決める画面。訳・原文・根拠を、その場に置く。 */
.ra-mail{margin:10px 0}
/* 返信を反映する画面では、届いたメールを長く見せる（全文を読んでから選ぶ） */
.ra-mail .replybox{max-height:480px}
.ra-k{font-size:var(--fs-12);font-weight:800;color:var(--muted);margin-bottom:4px}
.ra-ja .replybox{background:#f7fbff;border-color:#cfe3f7}
.ra-src{margin-top:8px}
.ra-src>summary{cursor:pointer;min-height:36px;display:flex;align-items:center}
.ra-why{margin-top:5px;font-size:var(--fs-12);line-height:1.6}
.ra-quote{color:#4d566b;background:#f4f6fa;border-left:3px solid var(--line);padding:3px 8px;display:inline-block;border-radius:0 6px 6px 0}

/* タレントへの2つの質問（もう持っているか／急ぎか）。 */
.ia-ask{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.ia-row{border-top:1px solid var(--line);padding-top:8px}
.ia-q{font-weight:800;font-size:var(--fs-13);margin-bottom:6px}

/* メール以外（X・DiscordのDM、フォーム）で届いた返事を貼り付ける箱。 */
.ra-paste{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;background:#fbfcff}
.ra-paste>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* 反映したあとの「あと何をすれば配信できるか」。 */
.ra-next{margin-top:10px}
.ra-next-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--line)}
.ra-next-row:last-child{border-bottom:0}
.ra-next-i{font-size:16px;flex:none}

/* 受け取ったあとでも「心当たりがない」と言える小さな入口。 */
.keydoubt{margin-top:8px;font-size:var(--fs-12)}
.keyrcv{margin:6px 0 2px;font-size:var(--fs-12);border-radius:8px;padding:6px 10px;display:inline-block}
.keyrcv.done{background:#f2faf6;border:1px solid #bfe3d3;color:#245c46;font-weight:600}
.keyrcv.todo{background:#fffaf0;border:1px solid #f0dcb4;color:#7a5312}
.plansum{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fafbfd;margin:8px 0}
.plansum-who{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-13)}
.planwho .sub{margin-left:2px}
.plansum-got{margin-top:8px;font-size:var(--fs-12);color:#245c46}
.plansum-line{font-size:var(--fs-13);line-height:1.7}
.plansum-count{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
.planedit{margin:8px 0 12px}
.planedit>summary{cursor:pointer;color:var(--brand,#6d55e6);font-size:var(--fs-12);font-weight:600;padding:4px 0}
.planedit[open]>summary{margin-bottom:8px}

/* 押したボタンの「クルクル」。通信のあいだだけ出す。 */
.is-busy{position:relative;color:transparent!important;pointer-events:none}
.is-busy::after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;
  border:2px solid currentColor;border-top-color:transparent;border-radius:50%;
  color:#5b6478;animation:mgdspin .7s linear infinite}
@keyframes mgdspin{to{transform:rotate(360deg)}}

.boxtools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}
.boxsort{display:flex;align-items:center;gap:8px}
.boxsort .select{width:auto;max-width:100%}
.boxrank{display:inline-grid;place-items:center;min-width:26px;height:26px;margin-right:8px;border-radius:8px;background:var(--brand);color:#fff;font-size:var(--fs-13);vertical-align:3px}
.boxwhy{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}

.formopen{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px}
.formopen[hidden]{display:none}

.wishwho{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.wishwho li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:var(--fs-13);line-height:1.5}
.wishwho li.is-soon .ww-name{color:#8a5a00}
.ww-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.ww-t{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;background:#f0f2f6;color:#46506a;
  font-size:var(--fs-12);font-weight:700;white-space:nowrap}
.ww-t.soon{background:#fff1d6;color:#8a5a00}
.ww-t.none{background:#fff;border:1px dashed #cfd5e2;color:#7a8396;font-weight:600}
.ww-when{font-size:var(--fs-12);color:var(--muted)}

.menubtn,.navback,.side-foot{display:none}
@media(max-width:760px){
  .menubtn{display:inline-grid;place-items:center;width:44px;height:44px;margin-left:-6px;border:0;border-radius:12px;
    background:transparent;color:var(--ink);font-size:22px;line-height:1;flex:0 0 auto}
  .menubtn:active{background:var(--brandsoft)}
  .sidebar{display:block;position:fixed;top:0;bottom:0;left:0;z-index:120;width:min(300px,84vw);height:auto;
    padding:14px 12px calc(20px + env(safe-area-inset-bottom));border-right:1px solid var(--line);
    box-shadow:0 16px 48px rgba(15,23,42,.22);overflow-y:auto;overscroll-behavior:contain;
    transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  body.navopen .sidebar{transform:none;visibility:visible;transition:transform .22s ease}
  body.navopen{overflow:hidden}
  body.navopen .navback{display:block;position:fixed;inset:0;z-index:110;background:rgba(18,25,39,.45)}
  .sidebar .navbtn{min-height:44px}
  .side-foot{display:block;border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
  .side-user{font-size:var(--fs-13);color:var(--muted);padding:4px 12px 6px;overflow-wrap:anywhere}
  .userbox #logoutBtn{display:none}
}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none!important}}
@media(max-width:420px){
  .logo:has(.rolesw) .mini{display:none}
  .rolesw button{padding:5px 9px}
  .topbar:has(.rolesw) .userbox{gap:4px}
}
@media(max-width:360px){
  .topbar:has(.rolesw) .userbox .avatar{display:none}
}
@media(max-width:420px){
  .logo:has(.viewsw) .rolebadge{display:none}
  .viewsw{margin-left:0}
}
.viewsw .tvs{display:none}
@media(max-width:480px){
  .topbar:has(.rolesw):has(.viewsw) .rolesw button{padding:5px 6px;font-size:var(--fs-11)}
  .topbar:has(.rolesw):has(.viewsw) .logo{gap:6px}
  .topbar:has(.rolesw):has(.viewsw) .userbox{gap:4px}
  .topbar:has(.rolesw):has(.viewsw) .userbox .avatar{display:none}
  .topbar:has(.rolesw):has(.viewsw) .viewsw .tvl{display:none}
  .topbar:has(.rolesw):has(.viewsw) .viewsw .tvs{display:inline}
}
@media(max-width:360px){
  .topbar:has(.rolesw):has(.viewsw) .userbox .iconlbl{display:none}
}

@media(max-width:760px){
  /* 上のバー：ボタンの文字を折らない。「アイコンの意味」は❓だけ（「アイコン/の意味」「ログア/ウト」と折れて縦長になっていた）。
     アバターはログイン中の人の手がかりなので、隠さずに小さくする */
  .topbar{gap:8px}
  .userbox{gap:6px}
  .userbox .btn.small{white-space:nowrap;padding:8px 10px;flex-shrink:0}
  .iconlbl .lbl{display:none}
  .userbox .avatar{width:30px;height:30px;flex-shrink:0}
  /* 版数の表示：下のメニューの上に浮かせない（本文やボタンに重なっていた）。本文の最後に置く。
     版数はスマホで古い画面が残っていないかを確かめる手がかりなので、消さない */
  .mgd-buildtag{position:static;display:block;margin:28px 0 0;padding:0;background:none;text-align:center;overflow-wrap:anywhere}
  .table{min-width:0!important}
  /* 表のセル：見出しは左の余白に置き、中身（いくつあっても）は右にまとめる。
     セルを2列のグリッドにしていたため、3つ目の中身が見出しの列に落ちて1行4〜5文字で折れ、札も横いっぱいに伸びていた。
     flow-root なので、2行になる見出しでも次のセルに重ならない */
  .table td[data-label]:not(:first-child){display:flow-root;padding:7px 0 7px 96px;overflow-wrap:anywhere}
  .table td[data-label]:not(:first-child)::before{float:left;width:88px;margin-left:-96px;line-height:1.5}
  .table td .select{max-width:100%}
  /* 選ぶチェックだけのセル（候補BOX・実績あり・メーカーの作品表）：右上に重ね、先頭の1行を使わない。
     次の「作品」のセルを表題の行にし、題名がチェックの下にもぐらないよう右をあける */
  .table tr{position:relative}
  .table td:first-child:has(> .chkhit:only-child){position:absolute;top:1px;right:3px;padding:0;border:0}
  .table td:first-child:has(> .chkhit:only-child)+td{border-top:0;padding-top:0;padding-right:40px}
  /* パネルの見出しと件数を押し合わせない（「同一作品の/確認」と折れていた） */
  .panelhead{flex-wrap:wrap;row-gap:4px}
  .panelhead>.sub{flex:1 1 100%}
  /* お知らせの帯：1行に押し込まず、折り返して並べる（「お知ら/せ」「既読にす/る」と折れていた） */
  .tnotices>summary{flex-wrap:wrap;gap:6px 8px;padding:11px 12px}
  .tnotices>summary>*{white-space:nowrap;flex:0 0 auto}
  .tnotices>summary .tn-read{margin-left:auto;padding:8px 0}
  .shelf-row:not(.is-wrap){align-items:start}
  .shelf-row.is-wrap .tcard{min-width:0}
  .shelf-row.is-wrap .tcard-detail{margin-top:auto}
  .facerow{height:auto;min-height:26px;overflow:visible;flex-wrap:wrap;row-gap:4px}
  .facerow .facegroup{flex-wrap:wrap;row-gap:4px}
  .wishfaces{flex-wrap:wrap;overflow:visible;row-gap:4px}
  /* マイリスト：画像を左の小さな枠にして、1画面に3〜4件見えるように（1件で画面が埋まっていた） */
  .gcards .gcard.is-mylist{grid-template-columns:104px minmax(0,1fr);gap:10px;padding:10px;align-items:start}
  .gcards .gcard.is-mylist .gcard-img{width:104px;border-radius:8px}
  .gcards .gcard.is-mylist .gcard-title{font-size:15px}
  .gcards .gcard.is-mylist .wishstate{margin-top:4px}
  /* 画像の左上：機種の札を右上へ（選ぶチェック・「あなた向け」と重なっていた） */
  .gcard .devs.on-img{left:auto;right:6px}
  .game-card .match-badge{left:auto;right:9px}
  .gcard-pick{padding:11px}
  .gcard-meta{gap:2px 12px}
  .gcard-actions{align-items:stretch}
  .gcard-actions>*{min-height:44px}
  /* ページ上の操作ボタン：幅をそろえて並べる（1つだけ次の行に取り残されていた）。4つなら2×2、1つなら全幅 */
  .pagehead .actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
  .pagehead .actions>.btn{width:100%;justify-content:center;text-align:center;padding-left:8px;padding-right:8px;font-size:14px}
  .advtoggle{white-space:nowrap}
  /* 作品カルテの進み具合：3つずつ2段に（「6 配信」だけ取り残されていた） */
  .flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .flowstep{justify-content:flex-start;min-width:0}
  /* 検索結果のカード：1列のときは題名に2行分の高さをとらない。ストアへのリンクを押しやすく */
  .game-grid .game-card h3{height:auto;max-height:calc(1.4em * 2)}
  .game-card .steam-link{display:inline-flex;align-items:center;min-height:44px}
  /* 検索欄の説明は小さめの字で最後まで見せる（入力する字は16pxのまま。iPhoneで勝手に拡大されない） */
  #gameQ::placeholder,#talentQ::placeholder{font-size:var(--fs-13)}
  /* キーの画面：はい／いいえの幅をそろえて押し間違いを防ぐ。ガイドを開くボタンも全幅に */
  .keyack .inline{flex-direction:column;align-items:stretch;gap:8px}
  .keyack .inline .btn{width:100%}
  .guide-block>.btn{display:flex;width:100%;justify-content:center}
  /* もらった素材の行：名前が長くても「開く」が右に残るように */
  .assetrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;row-gap:4px}
  .assetname{word-break:normal;overflow-wrap:anywhere}
  .assetterms{grid-column:1/-1}
  #sgBulk,#pgBulk{flex:1 1 100%;order:3}
  #sgCount,#pgCount{order:2;margin-left:auto}
  /* タレント希望の説明行：項目の途中で折らない（「配/信OK」と折れていた） */
  .wishmeta{line-height:1.6}
  .wishmeta .wm{display:inline-block;max-width:100%}
  /* 下のメニュー：短い呼び名にしたので、字を少し大きく */
  .mobile-nav button{font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .obadge{font-size:11px}
  /* 小さな札（会社の実績など）：狭い列では折り返す（320px幅のマイリストで右へはみ出していた） */
  .chip{white-space:normal;max-width:100%}
  /* 概要欄に貼る文：ストアのURLのような長い文字列も折り返す（320px幅で右が切れていた） */
  .credittext{overflow-wrap:anywhere}
  .tbadge.b-promo{color:#fff}
  /* 1 ふつうのポップアップ：中身が短いものは下から出す。見出し（×）と下のボタン（送信・保存）は流さない
       （まとめた申請文・タレント編集で、送信・保存が画面の外にあった） */
  .modal:not(.modal-flex){align-self:end}
  .modal>.modalhead{position:sticky;top:0;z-index:2;background:#fff}
  .modal .modalfoot{position:sticky;bottom:0;z-index:2;background:#fff;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  #bdBody{min-height:38vh!important;min-height:38dvh!important}
  /* 2 読み込み中・読み込めなかったときは全画面にしない（閉じるボタンがまだ無いので、まわりを押して閉じられるように） */
  .modalback:has(> .modal-flex > .gd-loading),.modalback:has(> .modal-flex > .empty){padding:16px;place-items:center}
  .modal.modal-flex:has(> .gd-loading),.modal.modal-flex:has(> .empty){height:auto;border-radius:18px}
  /* 4 希望の3択は見出しが長いので1つずつ全幅で1行に（「キーがなくてもやりた/い」と折れていた） */
  .wishform [data-wflv]{flex:1 1 100%}
  /* 7 チェック付きの表：2つ目の「作品」セルはカードの表題として全幅で（題名が4〜5文字ずつ折れていた） */
  .table td:first-child:has(> .chkhit:only-child)+td{padding-left:0}
  .table td:first-child:has(> .chkhit:only-child)+td::before{content:none}
  /* 8 一括送信の枠：選んでいないときは使えないボタンを出さない（検索欄が下のメニューに隠れていた） */
  .bulk-panel #bulkTalents:disabled,.bulk-panel #bulkAgency:disabled,.bulk-panel #clearSelection:disabled,.bulk-panel #bulkPerm:disabled{display:none}
  /* 9 タレント希望：選んでいる間だけ「まとめて申請」を下のメニューの上に浮かせる（2万pxの一覧の上まで戻らないと押せなかった） */
  #bulkWish:not(:disabled){position:fixed;left:12px;right:12px;width:auto;bottom:calc(75px + env(safe-area-inset-bottom));z-index:45;box-shadow:0 8px 24px rgba(29,42,68,.28)}
  .toolbar:has(> #bulkWish:not(:disabled))::after{content:"";flex:1 1 100%;height:46px}
  .content:has(#bulkWish:not(:disabled)){padding-bottom:140px}
  /* 10 タレント一覧の「操作」：4つを1段に等分（「停止」だけ取り残されて押し間違えやすかった）。外部リンクを44pxに */
  .table td[data-label]:not(:first-child):has([data-edit-talent]){padding-left:0}
  .table td[data-label]:not(:first-child):has([data-edit-talent])::before{content:none}
  .table td:has([data-edit-talent])>.inline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .table td:has([data-edit-talent])>.inline>.btn{padding-left:4px;padding-right:4px;white-space:nowrap}
  .table:has([data-edit-talent]) td a[href]{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .table:has([data-edit-talent]) td div.sub+br{display:none}
  /* 11 メーカー一覧：数字5つを3列に（1社で画面の半分以上、120社で4万pxあった） */
  .table:has([data-pub]) tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:10px}
  .table:has([data-pub]) td:first-child,.table:has([data-pub]) td:last-child{grid-column:1/-1}
  .table:has([data-pub]) td[data-label]:not(:first-child):not(:last-child){padding:6px 0}
  .table:has([data-pub]) td[data-label]:not(:first-child):not(:last-child)::before{float:none;display:block;width:auto;margin:0}
  /* 12 登録済みの札・作品カードの札：2行になっても楕円に崩れないように */
  .wishstate .pill{flex-wrap:wrap;border-radius:12px;line-height:1.35}
  .tcard-badges .tbadge{border-radius:10px}
  /* 15 絞り込みの分類ボタンと、選んだ条件の札も44pxに */
  .advcat,.advchip{min-height:44px}
  /* 16 今日やること：作品名を「…」で切らずに折り返す（同じシリーズの別作品と区別できなかった） */
  .todo-title{white-space:normal;overflow:visible;text-overflow:clip}
  .table.ai-recent tr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:10px;align-items:start}
  .table.ai-recent td{grid-column:1/-1}
  .table.ai-recent td:first-child{grid-column:1/4;grid-row:1}
  .table.ai-recent td[data-label]:nth-child(8){grid-column:4/7;grid-row:1;border-top:0;padding:0;text-align:right;font-weight:800;font-size:15px}
  .table.ai-recent td[data-label]:nth-child(8)::before{float:none;display:inline;width:auto;margin:0 6px 0 0}
  .table.ai-recent td[data-label]:nth-child(-n+4):not(:first-child){padding:6px 0}
  .table.ai-recent td[data-label]:nth-child(-n+4):not(:first-child)::before{float:none;display:inline;width:auto;margin:0 8px 0 0}
  .table.ai-recent td[data-label]:nth-child(5){grid-column:1/4}
  .table.ai-recent td[data-label]:nth-child(6){grid-column:4/5}
  .table.ai-recent td[data-label]:nth-child(7){grid-column:5/7}
  .table.ai-recent td[data-label]:nth-child(n+5):not(:nth-child(8)){padding:6px 0}
  .table.ai-recent td[data-label]:nth-child(n+5):not(:nth-child(8))::before{float:none;display:block;width:auto;margin-left:0}
  .table.ai-recent td:only-child{grid-column:1/-1}
  /* 22 候補BOXの一括操作：件数は右に、長いボタンは次の行に全幅で */
  .boxpub [data-box-draft]{flex:1 1 100%;order:3}
  .boxpub [data-box-count]{order:2;margin-left:auto}
  /* 23 枠の中の枠：左右の余白が重なって本文が画面の7割しかなかった。パネルの中は左右12pxに */
  .panelbody{padding:14px 12px}
  .ibx{padding:12px}
  .hub .hubrow{padding:12px}
  .hub .guide-block{padding:12px 10px}
  /* 26 お知らせの「すべて既読にする」と「読んだお知らせ」の行も44pxに */
  .tnotices>summary .tn-read{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
  .tnotices-read>summary{display:flex;align-items:center;gap:4px;min-height:44px}
  /* 27 棚のカード：顔アイコンが無い空の行は出さない（価格と「詳細を見る」の間に約80pxの空白） */
  .tcard .facerow:empty{display:none}
  /* 29 検索結果：「詳細を見て希望する」を残りの幅いっぱいに */
  .game-grid .game-card .wishstate .btn{flex:1 1 auto}
  /* 30 希望の申請ボタンを全幅に。取り消しはその下に同じ幅で */
  .wishform>.inline{flex-direction:column;align-items:stretch;gap:8px}
  .wishform>.inline>.btn{width:100%}
  .pwform>.btn[type=submit],#agencyForm>.btn,#settingsForm>.btn,#aiLimitSave{width:100%}
  /* 34 今日やること：「詳細」を隣の大きなボタンに押し込まない */
  .todo-act .linkbtn{flex:0 0 auto;min-width:64px;padding:0 12px}
  /* 35 「0件のものも表示する」を枠の右端から離す */
  .dtoolbar{padding:0 12px}
  /* 38 まとめた申請文の言語の選ぶ欄を1行に */
  #bdLang{display:block;margin:6px 0}
  /* 41 Nintendo取り込み：数字を左寄せにして大きく */
  .inline>div:has(>div.dc-count){text-align:left!important}
  .inline>div:has(>div.dc-count)>.dc-count{font-size:20px}
}
/* 320px前後の小さいiPhone：下のメニューの5つが1行に入るよう、字を1段小さく（「マイリスト」が「マイリ…」に切れていた） */
@media(max-width:360px){
  .mobile-nav button{font-size:11px;letter-spacing:-.02em;padding-left:1px;padding-right:1px}
  /* 17 作品詳細の上の帯：いちばん小さいiPhoneでは画像を出さない（帯だけで画面の約3分の1を使っていた） */
  .gd-head .gd-img{display:none}
  /* 21 タレント画面の上の2つ（12文字）は1つずつ全幅に */
  .pagehead .actions:has(> #seedTalents){grid-template-columns:1fr}
  /* 22 長いボタンを1行に収める（「…申請文を/作る」と最後だけ折れていた） */
  #sgBulk,#pgBulk,.boxpub [data-box-draft]{font-size:15px;padding-left:10px;padding-right:10px}
  /* 25 マイリストの画像を少し小さくして文字の列を広げる */
  .gcards .gcard.is-mylist{grid-template-columns:88px minmax(0,1fr)}
  .gcards .gcard.is-mylist .gcard-img{width:88px}
}

@media (min-width:761px) and (max-width:1024px){
  .tbadge.b-promo{color:#fff}
  /* 3 上のバーのボタンと名前を折らない（「アプリに/する」「ログアウ/ト」と2〜4行に折れていた）。名前は「…」で詰める */
  .userbox .btn.small{white-space:nowrap;flex-shrink:0}
  .userbox .name{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
  /* 5 キーのカードを1列に（ボタンがカードの外に出て、貼る文のURLが切れていた） */
  .keys-grid{grid-template-columns:1fr}
  .credittext{overflow-wrap:anywhere}
  /* 13 画像の左上の重なり（「Steam」と「あなた向け」・選ぶチェック）をなくす */
  .game-card .match-badge{left:auto;right:9px}
  .gcard .devs.on-img{left:auto;right:6px}
  .facerow{height:auto;min-height:26px;overflow:visible;flex-wrap:wrap;row-gap:4px}
  .facerow .facegroup{flex-wrap:wrap;row-gap:4px}
  .wishfaces{flex-wrap:wrap;overflow:visible;row-gap:4px}
  /* 16 今日やること：作品名を「…」で切らない */
  .todo-title{white-space:normal;overflow:visible;text-overflow:clip}
  /* 19 2列しかない表は幅に合わせる。横に続きがある表は端に影を出す */
  .table:not(:has(th:nth-child(3))){min-width:0}
  .tablewrap{background:
    linear-gradient(to right,#fff 30%,rgba(255,255,255,0)) left center/28px 100% no-repeat local,
    linear-gradient(to left,#fff 30%,rgba(255,255,255,0)) right center/28px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(30,40,60,.18),rgba(0,0,0,0)) left center/12px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%,rgba(30,40,60,.18),rgba(0,0,0,0)) right center/12px 100% no-repeat scroll}
  /* 20 設定の2つの箱を1列に */
  .config-grid{grid-template-columns:1fr}
  /* 21 見出しとボタンを同じ行で押し合わせない。ボタンの字は折らない */
  .pagehead{flex-wrap:wrap}
  .pagehead>div:first-child{flex:1 1 300px;min-width:0}
  .pagehead .actions{margin-left:auto}
  .pagehead .actions>.btn{white-space:nowrap}
  /* 28 棚の見出しを細く折らない */
  .shelf-head h2{flex:0 0 auto;white-space:nowrap}
  .shelf-note{min-width:0}
  /* 31 ジャンル設定の下の段：説明を1行目、ボタン2つを2行目に */
  [data-profile-genres]+.wizard-actions{flex-wrap:wrap}
  [data-profile-genres]+.wizard-actions>.sub{flex:1 1 100%}
  [data-profile-genres]+.wizard-actions>.btn{white-space:nowrap}
  [data-profile-genres]+.wizard-actions>#toAccount{margin-left:auto}
  /* 35 「0件のものも表示する」を右端から離す */
  .dtoolbar{padding:0 16px}
  /* 37 版数の表示を右下に浮かせない（本文の文字に重なっていた） */
  .mgd-buildtag{position:static;display:block;margin:28px 0 0;padding:0;background:none;text-align:center}
  /* 39 表の中の札（所属など）を1文字ずつ縦に折らない */
  .table .pill{white-space:nowrap}
  /* 40 自動更新の選ぶ欄が縦に伸びないように */
  .setup-grid.four{align-items:start}
}
/* 3 狭いタブレット：「アプリにする」「アイコンの意味」は絵だけに（意味は title・aria-label に残る） */
@media (min-width:761px) and (max-width:900px){
  .installbtn .lbl,.iconlbl .lbl{display:none}
}
/* 24 761〜820px：マイリストの画像を左の小さな枠に（この幅だけ全幅の大きな画像になっていた） */
@media (min-width:761px) and (max-width:820px){
  .gcards .gcard.is-mylist{grid-template-columns:160px minmax(0,1fr)}
  .gcards .gcard.is-mylist .gcard-img{width:160px}
}
/* 33 指で操作するタブレット：押す所を44pxに（マウスで使うPCでは変えない） */
@media (min-width:761px) and (max-width:1024px) and (hover:none) and (pointer:coarse){
  .btn,.btn.small{min-height:44px}
  .xbtn{min-width:44px;min-height:44px}
  .lvbtns .btn{font-size:var(--fs-12-5)}
  /* iPad も入力欄の字が16px未満だと、触った瞬間に画面が勝手に拡大される（768pxで66か所） */
  .input,.select,.textarea{font-size:16px}
}
@media (min-width:761px) and (max-width:1024px) and (min-height:901px){
  .navbtn{font-size:var(--fs-13)}
}
.wishform .wf-pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wishform .wf-pl{min-width:3em;font-weight:700;font-size:var(--fs-13)}
.simplefind{margin-bottom:14px}
.ewlist{margin-bottom:14px}
.ewrows{display:flex;flex-direction:column;gap:6px}
.ewrow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;padding:8px;cursor:pointer;font:inherit;color:inherit}
.ewrow:hover{border-color:var(--brand,#6d55e6)}
.ewrow img,.ew-noimg{width:96px;height:45px;object-fit:cover;border-radius:6px;flex:0 0 auto;background:#eef0f4}
.ew-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ew-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ew-tags{display:flex;gap:4px;flex-wrap:wrap}
.ew-go{flex:0 0 auto;font-size:var(--fs-12);color:var(--brand,#6d55e6);font-weight:700}
@media (max-width:480px){.ewrow img,.ew-noimg{width:72px;height:34px}}
.quickchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.quickchips .advchip.on{background:#5540cf;color:#fff;border-color:#5540cf}
.quickchips .advchip.on:hover{color:#fff}
/* フォームの欄に貼るもの（1つずつコピー）。長い値・複数行のURLも全部見える。押した行は ✓ */
.fmrows .fms-v{white-space:pre-wrap;word-break:break-all;overflow:visible;text-overflow:clip}
.fmsender.copied{background:#f0fdf4;border-color:#86efac}
.fmsender.copied .fms-l::before{content:'✓ ';color:#16a34a;font-weight:800}
.fmsender.empty .fms-v{font-weight:400;color:var(--muted)}
/* 申請を進める */
.modalback.aq-back{padding:0;place-items:stretch start;background:rgba(18,25,39,.25)}
.modal.aq-modal{width:clamp(400px,calc(50vw - 12px),600px);height:100vh;height:100dvh;max-height:none;border-radius:0 18px 18px 0}
.aq-steps{list-style:none;margin:0;padding:12px 19px;display:flex;align-items:center;gap:4px;background:var(--surface2);border-bottom:1px solid var(--line)}
.aq-step{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
.aq-step:not(:last-child)::after{content:"";flex:1 1 6px;min-width:6px;height:2px;margin-left:4px;border-radius:2px;background:#cfd5e2}
.aq-stepnum{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid #848ea3;background:#fff;color:var(--muted);font-size:14px;font-weight:800}
.aq-step.is-now{color:var(--ink);font-weight:800}
.aq-step.is-now .aq-steplabel{box-shadow:inset 0 -3px 0 var(--brand)}
.aq-step.is-now .aq-stepnum{background:var(--brand);border-color:var(--brand);color:#fff}
.aq-step.is-done{color:var(--good)}
.aq-step.is-done .aq-stepnum{background:var(--good);border-color:var(--good);color:#fff}
.aq-step.is-done::after{background:var(--good)}
.aq-nowtag{display:inline-block;margin-right:8px;padding:2px 10px;border-radius:999px;background:var(--brand);color:#fff;font-size:14px;font-weight:800}
.aq-nowtext{font-size:17px;font-weight:800;line-height:1.5}
.aq-card{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff;box-shadow:0 1px 2px rgba(29,42,68,.04),0 8px 24px rgba(29,42,68,.04)}
.aq-card.is-urgent{border-left:4px solid #b06a00}
.aq-title{margin:0;font-size:20px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.aq-why{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.aq-band{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid;border-radius:10px;font-size:14px;line-height:1.6}
.aq-band.is-warn{background:var(--warnbg);border-color:#e2c36b;color:#5b4300}
.aq-band.is-info{background:var(--infobg);border-color:#b9d2f3;color:#24579e}
.aq-band.is-good{background:var(--goodbg);border-color:#86efac;color:var(--good);font-size:16px;font-weight:800}
.aq-band.is-bad{background:#fdf4f4;border-color:#e9b3b3;color:#8a3b3b}
.aq-undo{position:relative;overflow:hidden;color:var(--ink)}
.aq-undo-bar{position:absolute;left:0;bottom:0;width:100%;height:4px;background:var(--info);transform-origin:left;animation:aqdrain 5s linear forwards}
@keyframes aqdrain{to{transform:scaleX(0)}}
@media (prefers-reduced-motion:reduce){.aq-undo-bar{display:none}}
.aq-foot{flex:0 0 auto;padding:12px 19px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;box-shadow:0 -6px 16px rgba(29,42,68,.06)}
.aq-go{width:100%;min-height:56px;font-size:17px;border-radius:12px;box-shadow:0 6px 16px rgba(96,70,231,.25);text-wrap:balance}
.aq-go:disabled{background:#e6e3fb;color:#3b2fa0;border:1px solid #c9c0ff;box-shadow:none;opacity:1}
.aq-sub{display:flex;gap:8px;margin-top:10px}
.aq-sub>*{position:relative;flex:1 1 0}
.aq-sub .btn{width:100%;min-height:44px;font-size:14px}
.aq-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:5;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.aq-menu button{display:flex;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:14px;color:var(--ink)}
.aq-menu button:hover{background:var(--brandsoft)}
.aq-prev{margin:0 0 8px;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-prev.is-ok{color:var(--good)}
/* 飛ばした理由の行は、後ろ（申請管理で直してほしいこと）が切れないように折り返す */
.aq-prev.is-skip{white-space:normal;overflow-wrap:anywhere}
.aq-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:16px;padding:12px 16px;border:1px solid #c9c0ff;border-radius:var(--radius);background:var(--brandsoft)}
.aq-banner p{flex:1 1 260px;margin:0;font-size:15px;line-height:1.6}
.aq-banner b{font-size:18px;color:#4e3bc4}
.aq-mobnote{display:none}
.aq-banner-more{display:block;font-size:14px;line-height:1.6;color:var(--muted)}
.aq-banner.is-quiet{background:#fff;border-color:var(--line)}
.aq-banner-head{display:block;font-size:15px;font-weight:800;line-height:1.6}
@media (max-width:760px){.aq-banner .btn{display:none}.modal.aq-modal{width:100%;border-radius:0}.aq-mobnote{display:block;font-size:14px;color:var(--muted)}}
.aq-banner .btn{min-height:44px}
.aq-count{font-size:13px}
.aq-modal .gd-head .btn{min-height:40px;font-size:14px}
.aq-stepbox{flex:0 0 auto;background:var(--surface2);border-bottom:1px solid var(--line)}
.aq-stepbox .aq-steps{border-bottom:0;padding-bottom:6px}
.aq-nowhint{padding:6px 19px 12px;line-height:1.7;outline-offset:-2px}
.aq-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.aq-body{padding-top:14px}
.aq-body>*+*{margin-top:12px}
.aq-body>.aq-prev+*{margin-top:0}
.aq-prev{animation:aqfade .4s ease both}
@keyframes aqfade{from{opacity:0}to{opacity:1}}
.aq-titlerow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.aq-titlerow .aq-title{flex:1 1 auto;min-width:0}
.aq-titlerow .todo-img{flex:0 0 auto}
.aq-nextlabel{display:inline-block;margin-bottom:8px;padding:2px 10px;border-radius:999px;background:var(--brandsoft);color:#4e3bc4;font-size:13px;font-weight:800}
.aq-card>.aq-band{margin-bottom:12px}
.aq-meta{margin-top:8px;font-size:15px;line-height:1.6}
.aq-host{margin-top:2px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.aq-assignee{margin-top:2px;font-size:14px;font-weight:700;line-height:1.6;color:#5b4300}
.aq-ask{margin-top:10px;font-size:16px;font-weight:700;line-height:1.6}
.aq-wish{margin-top:8px;font-size:15px;line-height:1.7}
.aq-rel{margin-top:6px;font-size:14px;line-height:1.6}
.aq-rel-none{color:var(--muted)}
.aq-pre{white-space:pre-line}
.aq-band .aq-bm{margin-top:6px;font-size:14px}
.aq-card .chip,.aq-card .ww-t{font-size:14px}
.aq-url{margin-top:6px;font-size:13px;min-height:40px}
.aq-check{padding:12px 14px;border:2px solid var(--brand);border-radius:12px;background:#fff}
.aq-checkhint{font-size:14px;color:var(--muted)}
.aq-checktitle{margin-top:4px;font-size:20px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.aq-undo{background:var(--infobg);border-color:#b9d2f3;justify-content:space-between;padding-bottom:15px}
.aq-undotext{font-size:15px}
.aq-sec{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.aq-undo .aq-cancel{min-height:48px;width:auto;background:#fff;border:2px solid var(--info);color:var(--ink)}
.aq-done{padding:36px 24px;text-align:center}
.aq-donemark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:var(--good);color:#fff;font-size:28px;font-weight:800}
.aq-donetitle{margin:0;font-size:20px;font-weight:800;line-height:1.4}
.aq-donesub{margin:8px 0 0;font-size:14px;color:var(--muted)}
.aq-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}
.aq-sumcell{padding:12px 6px;border:1px solid var(--line);border-radius:12px;background:#fff}
.aq-sumcell b{display:block;font-size:24px;font-weight:900}
.aq-sumcell span{font-size:13px;color:var(--muted)}
.aq-mark{flex:0 0 24px;display:grid;place-items:center;width:24px;height:24px;border:2px solid currentColor;border-radius:50%;font-size:14px;font-weight:800;line-height:1}
.aq-band:not(.aq-undo){align-items:flex-start}
.aq-band.is-good{align-items:center}
.aq-nowhint:focus,.aq-donetitle:focus{outline:none}
.aq-menuhead{padding:8px 12px 2px;border-top:1px solid var(--line);margin-top:4px;font-size:13px;color:var(--muted)}
.aq-others{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.aq-others>summary{min-height:44px;padding:10px 14px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:800;line-height:1.6;color:#3a4157}
.aq-others>summary:hover{background:var(--surface2)}
.aq-others[open]>summary{border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
.aq-obody{padding:12px 14px 14px}
.aq-kchips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.aq-klab{margin-right:2px;font-size:14px;font-weight:700;line-height:1.5;color:var(--muted)}
.aq-kchip{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:6px 14px;border:1px solid #8f84e8;border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:14px;font-weight:700;line-height:1.3;cursor:pointer}
.aq-kchip b{font-variant-numeric:tabular-nums}
.aq-kchip:hover:not(:disabled){background:var(--brandsoft)}
.aq-kchip.is-on,.aq-kchip.is-on:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.aq-kchip:disabled{background:var(--surface2);border-color:var(--line);color:#646d80;font-weight:600;cursor:not-allowed}
.aq-kmark{font-weight:900}
.aq-kreset{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14px;line-height:1.6}
.aq-ogroup+.aq-ogroup{margin-top:14px}
.aq-ohead{margin:0;font-size:15px;font-weight:800;line-height:1.5}
.aq-onote,.aq-omore{margin:2px 0 6px;font-size:14px;line-height:1.6;color:var(--muted)}
.aq-olist{margin:0;padding:0;list-style:none}
.aq-olist li{padding:6px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.aq-ocomp{color:var(--muted)}
/* 出演者（人数）とキーの本数を変える欄 */
.aq-cast{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;margin-top:6px;font-size:15px;font-weight:700;line-height:1.7;overflow-wrap:anywhere}
.aq-cast-names{min-width:0}
.aq-cast .aq-cast-edit{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:4px 8px;font-size:15px;font-weight:700;text-decoration:underline}
.aq-cast .aq-cast-edit:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}
.aq-edit{border:1px solid var(--line);border-radius:12px;background:#fff}
.aq-edit>summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:44px;padding:10px 14px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:800;line-height:1.6;color:#3a4157}
.aq-edit>summary:hover{background:var(--surface2)}
.aq-edit>summary:focus-visible,.aq-cast-cb:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.aq-edit[open]>summary{border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
.aq-edit>summary::after{content:"";flex:0 0 auto;margin-left:auto;width:8px;height:8px;border-right:2px solid #5b6678;border-bottom:2px solid #5b6678;transform:rotate(45deg)}
.aq-edit[open]>summary::after{transform:rotate(-135deg)}
.aq-edit-mark{padding:1px 10px;border-radius:999px;border:1px solid #e2c36b;background:var(--warnbg);color:#5b4300;font-size:14px;font-weight:700}
.aq-edit-body{padding:12px 14px 14px}
.aq-edit-sect+.aq-edit-sect{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.aq-edit-h{font-size:15px;font-weight:800;line-height:1.5}
.aq-edit-lead{margin:2px 0 8px;font-size:14px;line-height:1.6;color:var(--muted)}
.aq-edit-msg{margin:0 0 8px;font-size:14px;line-height:1.6}
.aq-edit-msg.is-bad{color:#8a3b3b}
.aq-cast-list{margin:0 0 8px;padding:0;list-style:none;max-height:220px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:10px}
.aq-cast-row+.aq-cast-row{border-top:1px solid var(--line)}
.aq-cast-label{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:44px;padding:6px 12px;cursor:pointer;font-size:15px;line-height:1.5}
.aq-cast-label:hover{background:var(--surface2)}
.aq-cast-cb{flex:0 0 auto;width:20px;height:20px;margin:0}
.aq-cast-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:700}
.aq-tag{flex:0 0 auto;padding:1px 8px;border:1px solid;border-radius:999px;font-size:14px;font-weight:700;line-height:1.5;white-space:nowrap}
.aq-tag.is-want{background:var(--brandsoft);border-color:#c9c0ff;color:#4e3bc4}
.aq-tag.is-show{background:var(--goodbg);border-color:#86efac;color:var(--good)}
.aq-tag.is-noshow{background:var(--surface2);border-color:var(--line);color:#646d80}
.aq-edit-status{margin-top:10px}
.aq-edit-count{font-size:15px;font-weight:800;line-height:1.6}
.aq-edit-warn,.aq-edit-note{margin-top:6px;padding:8px 10px;border:1px solid;border-radius:8px;font-size:14px;line-height:1.6}
.aq-edit-warn,.aq-edit-note{background:var(--warnbg);border-color:#e2c36b;color:#5b4300}
.aq-keystep{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.aq-edit .aq-keystep .aq-keybtn{min-width:44px;min-height:44px;font-size:18px;line-height:1}
.aq-keystep .aq-keynum{width:76px;min-height:44px;text-align:center;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.aq-keyunit{font-size:15px;font-weight:700}
.aq-edit-keynote{margin-top:6px;font-size:14px;line-height:1.6;color:var(--muted)}
.aq-edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.aq-edit .btn,.aq-edit-askbtns .btn{min-height:44px;font-size:14px}
.aq-edit-foot{margin:10px 0 0;font-size:14px;line-height:1.6;color:var(--muted)}
.aq-edit-body .aq-band{margin-top:12px}
.aq-edit-askbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.aq-band-actrow{display:block;margin-top:8px}
.aq-band .aq-band-act{min-height:44px;font-size:14px}
/* フォームはタブで開くので、案内パネルを窓と並べない。中央に置き、高さは一定にする（足元の位置を保つ） */
.modalback.aq-back{padding:18px;place-items:center;background:rgba(18,25,39,.45)}
.modal.aq-modal{width:min(560px,100%);height:min(720px,calc(100vh - 36px));height:min(720px,calc(100dvh - 36px));max-height:none;border-radius:18px}
.stagestrip .stage-row{grid-template-columns:repeat(7,1fr)}
.stx:disabled{opacity:.45;cursor:default;transform:none}
.stx.has{border-color:#c9c0ff;background:#fff}
.stx.has .stx-v{color:var(--brand)}
.stx.has.warn .stx-v{color:#b06a00}
.stx.has.bad .stx-v{color:var(--bad)}
.stx.has.good .stx-v{color:var(--good)}
.todo-search{margin-top:10px}
.todo-search .input{max-width:420px}
.todo-stage{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 6px;border-radius:8px;background:var(--brandsoft);color:#4e3bc4;font-size:var(--fs-12);font-weight:800}
.todo-group.todo-quiet{background:#fafbfd}
.todo-group.todo-quiet .todo-list{opacity:.85}
/* 押すものが無い群は、畳んだ1行（開くと理由と作品の一覧） */
.todo-group.todo-info{padding:0;margin-bottom:10px}
.todo-info>summary{cursor:pointer;display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;font-size:var(--fs-13);font-weight:700;color:#5b6577;list-style:none;border-radius:14px}
.todo-info>summary:hover{background:#f3f5f9}
.todo-info>summary::-webkit-details-marker{display:none}
.todo-info>summary::before{content:"▸";content:"▸"/"";flex:none;font-size:14px;color:#5b6577}
.todo-info[open]>summary::before{content:"▾";content:"▾"/""}
.todo-info-t{min-width:0}
.todo-info .todo-n{background:#eef0f4;color:#5b6577}
.todo-info>.todo-head{padding:0 14px}
.todo-info>.todo-list{padding:0 14px 14px}
/* 申請管理: 送ったあとは文面を折りたたむ */
.sentdraft{margin:0 0 12px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fbfcfe}
.sentdraft>summary{cursor:pointer;font-weight:700;color:#455166;font-size:var(--fs-13)}
.sentdraft[open]>summary{margin-bottom:8px}
.hubstage{vertical-align:middle}
@media (max-width:640px){ .stagestrip .stage-row{grid-template-columns:repeat(4,1fr)} }
@media (max-width:480px){ .stagestrip .stage-row{grid-template-columns:repeat(2,1fr)} }
a.chip.famitsu{display:inline-flex;align-items:center;gap:3px;text-decoration:none;background:#fff1f2;color:#be123c;border:1px solid #fecdd3;font-weight:700;white-space:nowrap}
a.chip.famitsu:hover{background:#ffe4e6}
.tcard-body>a.chip.famitsu,.game-card-body>a.chip.famitsu{align-self:flex-start;margin:2px 0 4px;font-size:var(--fs-11)}
/* 電ファミ（ファミ通の赤と区別できる青） */
a.chip.denfami{display:inline-flex;align-items:center;gap:3px;text-decoration:none;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-weight:700;white-space:nowrap}
a.chip.denfami:hover{background:#dbeafe}
.tcard-body>a.chip.denfami,.game-card-body>a.chip.denfami{align-self:flex-start;margin:2px 0 4px;font-size:var(--fs-11)}
@media (min-width:641px) and (max-width:900px){ .stagestrip .stage-row{grid-template-columns:repeat(4,1fr)} }
.stagestrip .stx:disabled:hover{transform:none;border-color:var(--line);background:#fbfcfe}
.wishstyle{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 6px;align-items:center}
.ws-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:var(--fs-12);font-weight:700}
.ws-chip.group{background:#ecfdf5;color:#065f46}
.ws-chip.none{background:#fff7ed;color:#9a3412}
.ws-play{font-size:var(--fs-12);color:var(--muted);font-weight:700}
.todo.is-new{border-color:#c4b5fd;box-shadow:0 0 0 2px #ede9fe inset}
.todo-new{font-size:var(--fs-12)}
.todo-newn{display:inline-grid;place-items:center;height:22px;padding:0 7px;border-radius:999px;background:#ede9fe;color:#5b21b6;font-size:var(--fs-12);font-weight:800}
.todo-assignee{color:#065f46;font-weight:700}
.todo-tools{display:inline-flex;gap:10px;margin-left:6px}
.todo-tools .linkbtn{font-size:var(--fs-12)}
.todo-mine{margin-left:12px;font-size:var(--fs-13)}
.todo-search{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.todo-bundles{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.todo-snoozed{background:#fff;border:1px dashed var(--line);border-radius:14px;padding:10px 14px;margin:0 0 14px}
.todo-snoozed>summary{cursor:pointer;font-weight:800;color:#455166}
.todo-snz-list{display:grid;gap:8px;margin-top:10px}
.todo-snz{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pill.is-nochannel{display:inline-block;border:1px dashed #b7bfce;border-radius:12px}
.pill-note{margin-left:6px;font-size:var(--fs-11);font-weight:700}
.pill-note.is-below{display:block;margin:2px 0 0;font-weight:600}

/* 機種の札（スマホ・その他のストア）と「最近追加」の札。文字と背景の明るさの比は、すべて 4.5 以上 */
.dev-mobile{background:var(--info)}
.dev-other{background:var(--muted)}
.tbadge.b-added{background:var(--infobg);color:var(--info);font-weight:700;box-shadow:inset 0 0 0 1px #9dbcf0}
.chip.added-new{background:var(--infobg);color:var(--info);font-weight:700}
.game-card-body>.chip.added-new{align-self:flex-start;margin:2px 0 4px;font-size:var(--fs-11)}
/* 詳細の札の並び：幅が足りなければ次の行へ。店の名前が長くても枠の中に収める */
.gd-devs{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
.gd-devs .chip.added-new{margin-left:0}
.gd-devs .devs{min-width:0;max-width:100%}
.dev{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* お願い（「やった」を押すまで出るお願い）の画面の style。ここ（.req の下）にまとめる */
.req-band{margin:0 0 16px}
.req-bandhead{margin:0 0 8px;font-size:15px;font-weight:800;line-height:1.5;color:var(--ink)}
.req-card{min-width:0;margin:0 0 10px;padding:14px 16px;border:3px solid var(--warn);border-radius:14px;background:var(--warnbg);box-shadow:var(--shadow)}
.req-card.is-overdue{border-color:var(--bad);background:var(--badbg)}
.req-title{font-size:17px;font-weight:800;line-height:1.5;color:var(--ink);overflow-wrap:anywhere;word-break:break-word}
.req-line{margin-top:4px;font-size:var(--fs-13);line-height:1.6;color:var(--ink)}
.req-due{margin-top:6px;font-size:20px;font-weight:900;line-height:1.4;color:var(--warn);overflow-wrap:anywhere}
.req-card.is-overdue .req-due,.req-due.is-overdue{color:var(--bad)}
.req-left{display:inline-block}
.req-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.req-acts .btn{flex:1 1 0;min-width:140px;min-height:46px}
.req-more{width:100%;min-height:46px}
.req-thin{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;margin:0 0 16px;padding:8px 14px;border:3px solid var(--warn);border-radius:14px;background:var(--warnbg);color:var(--ink);font-weight:800;text-align:left}
.req-thin.is-overdue{border-color:var(--bad);background:var(--badbg)}
.req-thin .req-thin-t{flex:1;min-width:0;overflow-wrap:anywhere}
.req-dashline{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;margin:0 0 14px;padding:8px 14px;border:2px solid var(--warn);border-radius:12px;background:var(--warnbg);color:var(--ink);font-weight:800;text-align:left}
.req-dashline.is-overdue{border-color:var(--bad);background:var(--badbg);color:var(--bad)}
.req-dashline .req-dash-t{flex:1;min-width:0}
.req-modal .modalbody{min-width:0;overflow-wrap:anywhere}
.req-modal .req-body{margin-top:10px;padding:10px 12px;max-height:40vh;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface2);font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.req-modal .req-gone{color:var(--muted)}
.req-modal .req-others{margin:10px 0 0}
.req-modal .req-talklink{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;padding:0 4px;border:0;background:transparent;color:var(--brand);font-weight:800;text-decoration:underline}
.req-modal .req-quote{margin:0 0 12px;padding:10px 12px;border-left:4px solid var(--muted);border-radius:6px;background:var(--surface2);color:var(--ink);font-size:15px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}
.req-modal .req-doneline{margin:0 0 8px;font-weight:800;line-height:1.7;overflow-wrap:anywhere}
.req-modal .req-sub{margin:8px 0 0;font-size:var(--fs-13);line-height:1.7}
.req-modal .textarea,.req-modal .req-input{font-size:16px}
.req-modal .textarea{min-height:88px}
.req-modal .req-input{min-height:44px}
.req-modal .req-warn{margin:6px 0 0;font-size:var(--fs-12-5);font-weight:700;line-height:1.5;color:var(--warn)}
.req-modal .req-err{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:var(--badbg);color:var(--bad);font-size:var(--fs-13);font-weight:700;line-height:1.6}
.req-modal .req-err:empty{display:none}
.req-modal .req-sendnote{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--warnbg);color:var(--ink);font-weight:800;line-height:1.6;overflow-wrap:anywhere}
.req-modal .req-len{margin-top:4px;font-size:var(--fs-12);color:var(--muted);text-align:right}
.req-modal .req-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.req-modal .req-quick .btn{min-height:44px}
.req-modal .req-check{display:flex;align-items:flex-start;gap:8px;min-height:44px;margin:4px 0 10px;font-size:var(--fs-13);font-weight:700;line-height:1.6;cursor:pointer}
.req-modal .req-check input{flex:none;width:20px;height:20px;margin-top:3px}
.req-modal .modalfoot .btn{min-height:46px}
.req-sw{margin:0 0 14px}
.req-sw button{min-height:44px}
.req-sw .talk-badge{margin-left:6px}
.req-table .req-t{min-width:160px;overflow-wrap:anywhere}
.req-table .req-comment{max-width:340px;white-space:pre-wrap;overflow-wrap:anywhere}
.req-table .req-over{color:var(--bad);font-weight:800}
.req-open{display:inline-flex;align-items:center;min-height:44px;color:var(--brand);font-weight:800}
.req-badgerow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-bottom:2px}
.req-badgerow .pill{margin:2px 0}
.req-badge-when{font-size:var(--fs-12);color:var(--muted)}
.req-msgtitle{margin-bottom:2px;font-size:15px;font-weight:800;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.req-cancelnote{margin-top:4px;font-size:var(--fs-12);line-height:1.5;color:var(--muted)}
.req-undorow{margin-top:2px}
.talk .req-undorow .talk-act{min-height:44px;padding:0 10px}
.talk .talk-row.is-admin.is-req-open .talk-bubble{border-left:4px solid var(--warn)}
.talk .talk-row.is-admin.is-req-cancel .talk-bubble{border:1px dashed var(--muted);background:var(--surface2);color:var(--muted)}
.talk .talk-formrow.req-formrow{flex-wrap:wrap}
.req-sendrow{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto}
@media(max-width:760px){
  .req-table .btn.small{min-height:44px}
}
/* お願いの画面の style（ここまで） */

/* キーの合計定価（ここから） */
.kvalue{margin:0 0 16px}
.kvalue-talent .panelbody{padding:14px 16px}
.kvalue-h{margin:0 0 4px;font-size:14px;font-weight:800;color:var(--ink)}
.kvalue-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}
.kvalue-yen{font-size:28px;font-weight:900;line-height:1.25;overflow-wrap:anywhere}
.kvalue-amt{white-space:nowrap}
.kvalue-n{font-size:var(--fs-12);font-weight:600;color:var(--muted)}
.kvalue-sub{margin-top:6px;font-size:var(--fs-12-5);line-height:1.6;overflow-wrap:anywhere}
.kvalue-note{margin-top:8px;font-size:var(--fs-12);line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.kvalue-body>.sub{margin:0;padding:14px 16px}
.kvalue-notes{padding:10px 16px 14px}
.kvalue-notes-top{padding:12px 16px 6px}
.kvalue-notes .kvalue-note:first-child{margin-top:0}
.kvalue-table{min-width:640px}
.kvalue-table td{font-variant-numeric:tabular-nums}
.kvalue-table tr.kvalue-total{background:var(--surface2)}
.kvalue-table tr.kvalue-total td{font-weight:800}
.kvalue-table tr.kvalue-unassigned{background:var(--warnbg);color:var(--ink)}
.kvalue-table tr.kvalue-unassigned .kvalue-n{color:inherit}
.kvalue-rowsub{display:block;margin-top:2px;font-size:var(--fs-12);font-weight:600;line-height:1.5;color:inherit}
@media(max-width:760px){
  .kvalue-yen{font-size:26px}
  .kvalue-notes{padding:8px 14px 12px}
  .kvalue-notes-top{padding:10px 14px 4px}
}
/* キーの合計定価（ここまで） */
/* App Store で探して足す（段2・2026-11-01・app.js の appstore… ）。画像は出さない */
.appstore-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}
.appstore-cta .appstore-sent{flex-basis:100%}
.appstore-results{margin-top:14px}
.appstore-list{display:grid;gap:8px}
.appstore-item{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.appstore-main{display:grid;gap:2px;min-width:0;flex:1 1 260px}
.appstore-main b{line-height:1.4;word-break:break-word}
.appstore-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.appstore-cta .btn,.appstore-acts .btn,.appstore-stop .btn{min-height:44px}
.appstore-link{font-size:var(--fs-12);color:#335fb0}
.appstore-note{margin:12px 0 0;font-size:var(--fs-11);color:var(--muted)}
.appstore-stop{margin:0 0 14px}
/* 会話（アプリの中のやり取り）の画面の style。ここ（.talk の下）にまとめる */
.talk-badge{display:inline-block;flex:none;min-width:20px;margin-left:0;padding:1px 6px;border-radius:999px;background:var(--bad);color:#fff;font-size:var(--fs-11);font-weight:800;line-height:1.6;text-align:center;vertical-align:middle}
.talk-badge:empty{display:none}
.navbtn:has(.talk-badge){display:flex;align-items:center;justify-content:space-between;gap:6px}
.menubtn{position:relative}
.talk-menudot{position:absolute;top:5px;right:5px;margin:0;grid-area:auto;width:12px;height:12px;border-radius:50%;background:var(--bad);border:2px solid #fff}
.talk-menudot[hidden]{display:none}
.talk-navbtn{position:relative}
.talk-navdot{position:absolute;top:3px;right:calc(50% - 22px);width:12px;height:12px;border-radius:50%;background:var(--bad);border:2px solid #fff}
.talk-navdot[hidden]{display:none}
.talk-topline{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;margin:0 0 16px;padding:10px 14px;border:1px solid #b9d3f7;border-radius:12px;background:var(--infobg);color:#24579e;font-weight:800;text-align:left}
.talk-topline:hover{background:#dfecff}
.talk-topline .talk-topline-t{flex:1;min-width:0}
.talk-h1{margin-top:10px}
.talk-stopbar.noticebox{background:var(--warnbg);color:var(--warn);margin:0 0 14px}
.talk-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.talk .talk-log{display:flex;flex-direction:column;gap:10px;padding:14px;min-height:200px;max-height:min(60vh,560px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface2)}
.talk .talk-row{display:flex}
.talk .talk-row.is-right{justify-content:flex-end}
.talk .talk-bubble{min-width:0;max-width:min(82%,560px);padding:9px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.talk .talk-row.is-left .talk-bubble{border-bottom-left-radius:4px}
.talk .talk-row.is-right .talk-bubble{border-bottom-right-radius:4px}
.talk .talk-row.is-admin .talk-bubble{background:var(--infobg);border-color:#c5dcf7}
.talk .talk-row.is-talent .talk-bubble{background:var(--brandsoft);border-color:#d9d2ff}
.talk .talk-row.is-hidden .talk-bubble{background:#f1f2f5;border-style:dashed;border-color:#c9cfdb;color:var(--muted)}
.talk .talk-who{margin-bottom:2px;font-size:var(--fs-12);font-weight:800;color:#24579e;overflow-wrap:anywhere;max-width:100%}
.talk .talk-row.is-talent .talk-who{color:#4f3bc9}
.talk .talk-text{font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.talk .talk-gone{font-style:normal}
.talk .talk-app{margin-bottom:2px}
.talk .talk-app .pill{overflow-wrap:anywhere;max-width:100%}
.talk .is-admin .talk-app .pill{background:#fff}
.talk .talk-hidemeta{margin-top:4px}
.talk .talk-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:3px}
.talk .talk-at{font-size:var(--fs-12);color:var(--muted)}
.talk .talk-act{min-height:32px;padding:0 6px;border:0;border-radius:8px;background:transparent;color:#4f3bc9;font-size:var(--fs-12);font-weight:700;text-decoration:underline}
.talk .talk-act:disabled{opacity:.5}
.talk .talk-newline{display:flex;align-items:center;gap:8px;font-size:var(--fs-12);font-weight:800;color:var(--bad)}
.talk .talk-newline::before,.talk .talk-newline::after{content:"";flex:1;height:1px;background:#e7b9bd}
.talk .talk-more,.talk .talk-empty{padding:6px 0;text-align:center;font-size:var(--fs-12-5);color:var(--muted)}
.talk .talk-empty{padding:34px 0}
.talk .talk-stopnote{margin:0;border-radius:0;background:var(--warnbg);color:var(--warn);font-weight:700}
.talk .talk-stopnote[hidden]{display:none}
.talk .talk-form{padding:12px 14px 14px;border-top:1px solid var(--line);background:#fff}
.talk .talk-form .textarea{min-height:88px;font-size:16px;resize:vertical}
.talk .talk-warn{margin:6px 0 0;font-size:var(--fs-12-5);font-weight:700;color:var(--warn)}
.talk .talk-formrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.talk .talk-sendnote{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:var(--badbg);color:var(--bad);font-size:var(--fs-13);font-weight:700;line-height:1.6;scroll-margin-bottom:96px}
.talk .talk-sendnote:empty{display:none}
.talk .talk-len{font-size:var(--fs-12);color:var(--muted)}
.talk .talk-form .btn{min-width:96px;min-height:44px}
.talk .talk-tabs button{min-height:36px}
.talk-pickpanel{margin-bottom:14px}
.talk .talk-pick{padding:12px 14px 14px}
.talk .talk-pick-l{display:block;margin-bottom:6px;font-size:var(--fs-13);font-weight:800;color:var(--ink)}
.talk .talk-pick-row{display:flex;align-items:center;gap:10px}
.talk .talk-pick-row .select{flex:1;min-width:0;min-height:44px;font-size:16px}
.talk .talk-pick .btn{flex:none;min-width:96px;min-height:44px}
.talk .talk-item{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left}
.talk .talk-item:hover{background:#f7f6ff}
.talk .talk-item-main{display:flex;flex:1;flex-direction:column;min-width:0}
.talk .talk-item-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.talk .talk-item-top{display:flex;align-items:center;gap:6px;min-width:0}
.talk .talk-item-top .pill{flex:none;margin:0;font-size:var(--fs-12)}
.talk .talk-av{position:relative;display:grid;flex:none;place-items:center;width:40px;height:40px;overflow:hidden;border-radius:50%;background:#eef0f5;font-weight:900}
.talk .talk-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:760px){
  .talk .talk-log{min-height:120px;max-height:min(56vh,480px);max-height:calc(100dvh - 475px);padding:10px}
  .talk .talk-form .textarea{min-height:64px}
  .talk .talk-warn{line-height:1.5}
  .talk .talk-bubble{max-width:90%}
  .talk .talk-act{min-height:44px;padding:0 10px}
  .talk .talk-tabs button{min-height:44px}
}


/* 小さな窓でも、ポップアップの見出し（×）と下のボタン（保存・送信）が、窓の外へ流れない（全部の幅で有効） */
.modal>.modalhead{position:sticky;top:0;z-index:2;background:#fff}
.modal .modalfoot{position:sticky;bottom:0;z-index:2;background:#fff}
