:root{--bg:rgba(18,18,31,.78);--panel:rgba(26,26,46,.88);--line:#2a3a5a;--text:#e0ddd5;--muted:#8a9aaa;--gold:#e8c97a;--err:#e06060}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(rgba(10,10,22,.62),rgba(10,10,22,.62)),url(bg.jpg) center/cover fixed #12121f;color:var(--text);font-family:'Hiragino Kaku Gothic Pro','Meiryo',sans-serif;line-height:1.6}
main{max-width:1280px;margin:0 auto;padding:16px}
h1{color:var(--text);font-size:24px}
h2{color:var(--text);font-size:17px;margin:12px 0 8px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
form{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
input,select{display:block;width:100%;margin-top:3px;padding:8px;background:#0d1220;color:var(--text);border:1px solid var(--line);border-radius:6px;font-size:16px}
button{padding:8px 14px;background:#142036;color:var(--text);border:1px solid #fff;border-radius:6px;cursor:pointer;font-size:14px}
.error{color:var(--err)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.bar .menu{margin:0 auto}
.bar form{padding:0;border:0;background:none}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;white-space:nowrap}
th{color:var(--text);background:var(--panel)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.menu{display:flex;gap:6px}
.menu a{padding:6px 12px;background:#142036;border:1px solid #fff;border-radius:6px;color:var(--text);text-decoration:none;font-size:14px}
a{color:var(--text)}
.map{display:grid;gap:4px;margin-top:8px}
.map{overflow-x:auto}
.city{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);font-size:12px;line-height:1.1;text-align:center}
.ok{color:#5cb85c}
.muted{color:var(--muted);font-size:13px}
.busy{color:#e8a040;font-size:13px}
td.job{white-space:nowrap}
td.job button{padding:4px 10px;font-size:13px}
button:disabled{opacity:.4;cursor:not-allowed}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;max-width:640px;width:calc(100% - 32px);padding:16px}
dialog::backdrop{background:rgba(0,0,0,.65)}
dialog h3{margin:0 0 4px;color:var(--text)}
.cmds{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:10px 0}
.cmds form{padding:0;border:0;background:none}
.cmd{width:100%;height:100%;text-align:left;line-height:1.4;background:#0d1220;color:var(--text);border-color:var(--line)}
.cmd .pv{color:#5cb85c}
.cmd small{color:var(--muted)}
dialog form[method=dialog]{padding:0;border:0;background:none;text-align:right}
form.inline{padding:0;border:0;background:none}
table.stat th{width:1%}
.btn{display:inline-block;padding:8px 14px;background:#142036;color:var(--text);border:1px solid #fff;border-radius:6px;text-decoration:none;font-size:14px}
.actions{margin-top:12px}
table.stat{margin:8px 0 10px}
.sub{color:var(--text);font-size:14px;margin:12px 0 4px}
.heroes td{vertical-align:middle}
.hname{font-weight:700;color:var(--text)}
.idle{color:var(--muted);font-size:12px}
.job button{margin-top:3px}
.stats{min-width:170px}
.sline{display:flex;align-items:center;gap:5px;font-size:12px;line-height:1.5}
.sl{color:var(--muted);width:1em}
.sbar{display:block;flex:1;height:7px;min-width:60px;background:#0d1220;border-radius:3px;overflow:hidden}
.sbar i{display:block;height:100%}
.sv{width:2.2em;text-align:right;font-variant-numeric:tabular-nums}
i.force_{background:#d9605a}i.intel{background:#5a8fd9}i.politics{background:#5cb85c}i.lead_{background:#cc88ee}i.charm{background:#e8c97a}i.exp{background:#e8a040}
.lvcol{min-width:90px;font-size:13px}.lvcol .sbar{margin:3px 0}.lvcol small{color:var(--muted)}
.icon{border-radius:50%;object-fit:cover;border:1px solid #3a3a4a;display:inline-block;vertical-align:middle}
.noimg{display:inline-flex;align-items:center;justify-content:center;background:#1a1a2a;color:var(--gold)}
.hcell{text-align:center;min-width:90px}
.rad{padding:0 6px;text-align:center}
.radar{display:block;margin:auto}
fieldset.iconpick{border:1px solid var(--line);border-radius:6px;margin:0 0 10px;padding:8px}
fieldset.iconpick legend{font-size:13px;color:var(--muted)}
.icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;max-height:280px;overflow-y:auto}
.icons label{margin:0;text-align:center;cursor:pointer;font-size:11px}
.icons input{position:absolute;opacity:0;width:0;height:0}
.icons img{width:52px;height:52px;border-radius:50%;object-fit:cover;display:block;margin:auto;border:2px solid transparent}
.icons input:checked+img{border-color:var(--gold)}
.icons input:focus-visible+img{outline:2px solid var(--gold)}
.terr{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:8px 0 10px}
.terr div{background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:4px 2px;min-width:0}
.terr span{width:100%;text-align:center;color:var(--muted);font-size:12px}
.terr b{font-weight:400;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:640px){.terr{grid-template-columns:repeat(4,minmax(0,1fr))}}
.unit{font-size:13px;min-width:150px}
.unit small{display:block;line-height:1.3;color:var(--muted)}
.unit .sbar{margin:3px 0}
i.ub-sol{background:#d9605a}i.ub-sol.ub-spear{background:#4caf6a}i.ub-sol.ub-bow{background:#3fb0c0}i.ub-sol.ub-horse{background:#c8843a}i.ub-train{background:#5a8fd9}i.ub-exp{background:#cc88ee}i.ub-mor{background:#e8c97a}
.ugrid{display:grid;grid-template-columns:auto auto;gap:0 8px;font-size:12px;margin-top:2px;justify-content:start}
.ugrid span{color:var(--muted)}
.ugrid b{font-weight:400;font-variant-numeric:tabular-nums}
i.st{background:#5cb85c}i.st.st2{background:#e3d04a}i.st.st3{background:#e06060}
.lvcol small{display:block;line-height:1.3}
.state.bad{color:var(--err)}
.lvcol small.inl{display:inline}
.terrbtn{display:flex;flex-direction:column;align-items:center;padding:4px 2px;background:var(--bg);color:var(--text);border:0;border-radius:0;min-width:0;cursor:pointer}
.terrbtn b{font-weight:400;font-size:14px;color:var(--text);text-decoration:underline}
.terr{grid-template-columns:repeat(9,minmax(0,1fr))!important}
@media(max-width:640px){.terr{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
dialog h4{margin:12px 0 2px;color:var(--text);font-size:14px}
dialog h4 small{color:var(--muted);font-weight:400}
.milf{padding:8px;background:#0d1220;border:1px solid var(--line);border-radius:6px;font-size:13px}
.milf small{color:var(--muted)}
.milf .row{display:flex;gap:6px;margin-top:6px}
.milf .row input,.milf .row select{margin:0;flex:1;min-width:0;font-size:14px;padding:5px}
.milf .row button{white-space:nowrap;padding:5px 10px;font-size:13px}
.armrow{display:flex;align-items:center;gap:6px;margin:4px 0 0;color:var(--text)}
.armrow small{flex:1}
.armrow input{width:90px;margin:0;padding:4px;font-size:14px}
.taxf{margin:8px 0}
#dlgWait{max-width:820px}
.namebtn{background:none;border:0;padding:0;color:#ff7a45;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.simform{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:0;border:0;background:none}
.simform label{display:block;margin:0;font-size:12px;color:var(--muted)}
.simform input{width:100%;margin:2px 0 0;padding:4px 6px}
.simform h4{grid-column:1/-1;margin:6px 0 0;color:var(--text);font-size:13px}
.simform .acts{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.simcharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin:12px 0}
.simchart{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;position:relative}
.simchart h4{margin:0 0 4px;font-size:13px;color:var(--text)}
.simchart svg{display:block;width:100%;height:auto}
.simtip{position:absolute;pointer-events:none;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:3px 6px;font-size:12px;white-space:nowrap;display:none;z-index:1}
.manual td,.manual th{white-space:normal}
.historyt td:last-child{white-space:normal}
.mildlg{max-width:860px}
.milgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0 12px}
.milgrid .milf{display:flex;flex-direction:column;margin:0;padding:8px;background:#0d1220;border:1px solid var(--line);border-radius:6px}
.milgrid .milf small{display:block;margin:2px 0 0}
.milgrid .milf b small{display:inline;margin:0 0 0 6px}
.milgrid .milf .row{margin-top:auto;padding-top:6px}
.cityf{background:none;border:0;padding:0;margin:0}
.milgrid .milf .cityf:first-of-type{margin-top:auto}
.milgrid .milf .row button:only-child{width:100%}
.milgrid .wide{grid-column:1/-1}
.milgrid .milwide{grid-column:span 2}
.armgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:8px;align-items:end;margin-top:6px}
.armgrid label{margin:0;font-size:13px;color:var(--text)}
.armgrid input{width:100%;margin:2px 0 0;padding:4px;font-size:14px}
.armgrid button{padding:5px 12px;font-size:13px}
@media(max-width:640px){.milgrid{grid-template-columns:1fr}.milgrid .milwide{grid-column:auto}.armgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.armgrid button{grid-column:1/-1}}
.brow{display:flex;align-items:center;gap:6px;margin:3px 0;font-size:12px;white-space:nowrap}
.brow>span:first-child{color:var(--muted);flex:none}
.brow .sbar{position:relative;flex:1;min-width:40px;height:16px;margin:0}
.brow .sbar small{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-variant-numeric:tabular-nums;text-shadow:0 0 2px #000,0 0 2px #000,0 1px 1px #000}
.unit{min-width:220px}
.milgrid .milf .row select{flex:none;width:auto;min-width:72px}
.mapbar{display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;margin:0}
.mapbar b{color:var(--text);font-size:14px}
.mapbar select{width:100%;margin:0}
.mapbar label{display:flex;gap:6px;align-items:center;margin:0}
.city.here{border-color:var(--gold);color:var(--gold);font-weight:bold}
button.city.adj{width:100%;padding:0;color:var(--text);border-color:#5a8fd9;border-radius:0;cursor:pointer;font-weight:400}
.mapact{padding:0;border:0;background:none;margin:8px 0}
.mapact .row{display:flex;gap:6px;margin-top:4px}
.mapact .row select{flex:1;min-width:0;margin:0}
.mapact .row input{flex:1;min-width:0;margin:0}
button.city.here{border-color:var(--gold);color:var(--gold);font-weight:bold}
.mapwrap{display:flex;gap:24px;align-items:flex-start;margin-top:8px}
.mapwrap .map{margin-top:0;flex:none;max-width:100%}
.mapcmds{margin-left:auto;display:flex;flex-direction:column;gap:14px;min-width:180px}
.mapcmds div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mapcmds b{grid-column:1/-1;color:var(--text);font-size:14px}
.mapcmds .btn{padding:6px 8px;font-size:13px;text-align:center}
.mapcmds button.btn{width:100%;margin:0}
@media(max-width:1199px){.mapwrap{flex-direction:column}.mapcmds{margin-left:0}}
.polform{padding:0;border:0;background:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.polform input,.polform select{width:auto;margin:0}
.polform input.grow{flex:1;min-width:180px}
.chatlog{max-height:360px;overflow:auto;border:1px solid var(--line);padding:6px 10px;margin:8px 0}
.chatlog p{margin:3px 0;font-size:14px}
.citycard{margin:10px 0 16px}
.citycard h4{margin:0 0 4px;color:var(--text)}
.citycard .polform{display:inline-flex;margin:2px 6px 2px 0}
.helpq{width:24px;height:24px;padding:0;border-radius:50%;font-size:13px;line-height:22px;vertical-align:middle;margin-left:4px}
.chead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 8px}
.chead>b{white-space:nowrap}   /* 名前とLvは折り返さない。右の効果が長いときは次の行へ */
.chead>span{display:flex;align-items:baseline;gap:8px;white-space:nowrap;margin-left:auto}
.milgrid .milf .chead small.ctime{display:inline;margin:0;color:var(--muted)}
.cres{color:#5cb85c;font-size:13px;font-weight:700}
.cres.weak,.ok .weak{color:#e05a5a}
.lvrow{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.agebox{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.lvcol .agebox small{font-size:10px}
.agebox b{font-weight:400;font-size:13px;font-variant-numeric:tabular-nums}
.colorpick{display:flex;flex-wrap:wrap;gap:8px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin:10px 0}
.colorpick legend{color:var(--text);font-size:13px;padding:0 4px}
.colorpick label{display:flex;align-items:center;gap:2px;margin:0;cursor:pointer}
.colorpick input{width:auto;margin:0}
.colorpick span{display:inline-block;width:26px;height:26px;border-radius:4px;border:1px solid var(--line)}
.colorpick input:disabled+span{opacity:.15}
.maplegend{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;margin:4px 0}
.maplegend span{display:flex;align-items:center;gap:4px}
.maplegend i{display:inline-block;width:14px;height:14px;border:1px solid var(--line);background:var(--panel)}
.hirefilter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0;border:0;background:none;margin:8px 0}
.hirefilter label{display:flex;gap:4px;align-items:center;margin:0}
.hirefilter input{width:auto;margin:0}
.dismissf{padding:0;border:0;background:none;margin:0 0 10px}
.danger{background:#2a1010;color:#e09090;border-color:#8a3030}
.merchants,.tabs{flex-wrap:wrap;margin-bottom:12px}
.merchants a[aria-current],.tabs a[aria-current]{border-color:var(--gold);font-weight:bold}
.tabs.small a{padding:4px 10px;font-size:13px}
.tabs.pager{margin-top:12px}
.infosearch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0;border:0;background:none;margin-bottom:12px}
.infosearch label{display:flex;gap:6px;align-items:center;margin:0}
.infosearch input[type=search]{width:180px;margin:0;padding:4px 6px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.nowrap{white-space:nowrap}
.tradet{table-layout:fixed;min-width:700px}
.tradet th:nth-child(1),.tradet th:nth-child(2){width:56px}
.tradet th:nth-child(3){width:80px}
.terr5{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.tradet td{height:44px}
.maxb{flex:none;white-space:nowrap;padding:1px 8px;font-size:12px}
.chead:has(.maxb){align-items:center}
.tradef{display:flex;gap:6px;align-items:center}
.tradef input{flex:1;min-width:50px;width:auto;margin:0;padding:4px;font-size:14px}
.tradef button{white-space:nowrap;padding:4px 8px;font-size:13px;flex:none}
.tradef button:not([name=max]){min-width:122px}
.forgef{background:none;border:0;padding:0}
.marchheroes{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 8px}
.marchheroes label{display:flex;align-items:center;gap:4px;margin:0}
.marchheroes input{width:auto;margin:0}
.marchheroes label[hidden]{display:none}
.marchgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin-bottom:6px}
.marchgrid label{margin:0;font-size:13px}
/* 戦闘画面（1人用の三分と同じ配色） */
.bt-screen{background:rgba(13,10,26,.35);border:2px solid #3a2a5a;border-radius:12px;padding:16px}
.bt-title{font-size:16px;font-weight:700;color:var(--text);text-align:center;letter-spacing:2px;margin-bottom:10px}
.bt-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:12px;align-items:start}
.bt-left,.bt-right{display:flex;flex-direction:column;gap:10px}
.bt-sides{display:grid;grid-template-columns:1fr 40px 1fr}
.bt-side{background:rgba(13,18,32,.78);border:1px solid #6a2a2a;border-radius:8px;padding:10px}
.bt-def{border-color:#2a4a6a}
.bt-stitle{font-size:13px;font-weight:700}
.bt-vs{font-size:20px;font-weight:700;color:#e8c97a;text-align:center;padding-top:30px}
.bt-unit{background:#0d1220;border:1px solid;border-radius:6px;padding:6px 8px;margin-top:5px}
.bt-dead{opacity:.45}
.bt-uhead{display:flex;align-items:center;gap:4px;font-size:12px}
.bt-uhead .icon{border-radius:50%}
.bt-pick{cursor:pointer}
.bt-pick.on{outline:2px solid #e8c97a;outline-offset:1px}
.bt-cd{margin-left:auto;font-size:11px;color:#e8c97a;white-space:nowrap}
.bt-cd.ok{color:#5cb85c}
.bt-sol{font-size:16px;font-weight:700}
.bt-bar{height:13px;background:#0d0d1a;border-radius:3px;overflow:hidden}
.bt-bar i{display:block;height:100%}
.bt-mbar{height:5px}
.bt-stat{font-size:10px;color:#888}
.bt-inj{font-size:10px;color:#e8a040}
.bt-wall{font-size:10px;color:#88ccee;margin-top:4px}
.bt-bad{color:#e06060}
.bt-ctrl{background:rgba(13,13,26,.82);border:1px solid #2a2a3a;border-radius:6px;padding:10px}
.bt-tachead{font-size:12px;font-weight:700;color:var(--text);margin:6px 0 4px}
.bt-tacs{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.bt-tac{display:flex;gap:6px;align-items:flex-start;margin:0;background:#0d1220;border:1px solid var(--line);border-left:3px solid #6ab06a;border-radius:4px;padding:4px 6px;font-size:12px;cursor:pointer}
.bt-ta{border-left-color:#e06060}.bt-td{border-left-color:#6aaaee}
.bt-tac input{width:auto;margin:2px 0 0}
.bt-tac small{color:#888}
.bt-tac span{flex:1}
.bt-q{width:18px;height:18px;line-height:16px;font-size:11px;flex:none}
.bt-end{background:rgba(13,10,26,.85);border:1px solid #e8c97a;border-radius:8px;padding:10px 14px;margin:0 auto 12px;max-width:640px;text-align:center;color:#ccc;font-size:13px}
.bt-endtitle{color:var(--text);font-size:16px;font-weight:700;letter-spacing:2px;margin-bottom:4px}
.bt-over{grid-template-columns:minmax(0,640px);justify-content:center}
.bt-btns{flex-wrap:wrap;margin-top:8px}
.bt-btns select{width:auto}
.bt-tachead{display:flex;align-items:center;gap:10px}
.bt-ret{display:flex;align-items:center;gap:3px;margin:0 0 0 auto;font-weight:400;color:#e06060}
.bt-ret input{width:auto;margin:0}
.bt-result{background:#0d0d1a;border:1px solid #2a2a3a;border-radius:6px;padding:10px}
.bt-log{background:rgba(10,8,16,.78);border:1px solid #2a2a3a;border-radius:8px;padding:8px 10px;height:640px;overflow:auto;font-size:12px;line-height:1.45;color:#ccc}
.bt-full{height:60vh;font-size:13px}
.bt-lhead{display:grid;grid-template-columns:1fr 1fr;background:#151520;font-size:15px;text-align:center}
.bt-lhead div:first-child{border-right:1px solid #2a2a3a}
.bt-rhead{color:#e8c97a;text-align:center;font-size:12px;margin:8px 0 3px;background:linear-gradient(90deg,transparent,#2a2008,transparent)}
.bt-rhead:first-child{margin-top:0}
.bt-more{padding:0 6px;font-size:11px;margin-left:4px}
.bt-neu{background:#2a2008;border:1px solid #ffdd55;color:#ffdd55;padding:1px 6px;margin:2px 0;font-size:12px}
.bt-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bt-pas{font-size:11px;color:#ddbb88}
.bt-city{font-size:11px;color:#88ccee;background:#0a1a2a;border-left:2px solid #88ccee;padding-left:4px}
.bt-ev{display:flex;justify-content:space-between;gap:6px}
.bt-imp{color:#ffdd55 !important;font-weight:700}
.bt-sum{display:grid;grid-template-columns:1fr 1fr;background:#0d1a28;border:1px solid #2a4a6a;font-size:12px;padding:1px 6px;margin-top:3px}
.bl{padding:3px 4px;border-bottom:1px solid #0d0d1a;color:#aaa}
.bl.atk,.bl.war{color:#e06060}.bl.def{color:#6aaaee}.bl.tac{color:#ee88cc}.bl.sys{color:#999;font-style:italic}.bl.inj{color:#e8a040}
.bl.imp{color:#ffdd55;font-weight:700;background:#2a2008;border-left:3px solid #ffdd55}
.bl.round-header{color:#e8c97a;text-align:center;background:linear-gradient(90deg,transparent,#2a2008,transparent)}
.bl.round-summary{background:#0d1a28;border:1px solid #2a4a6a;color:#aaccee}
.bl.passive{color:#ddbb88;background:#1a1508;border-left:3px solid #ddbb88}
@media(max-width:1000px){.bt-body{grid-template-columns:1fr}.bt-log{height:auto;max-height:70vh}}
.tn-fight{margin-bottom:14px}
.tn-sides{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
.tn-tacs{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px}
.tn-tacs label{display:flex;align-items:center;gap:4px;margin:0}
.tn-tacs input{width:auto;margin:0}
.tn-log{height:auto;max-height:260px;font-size:12px;line-height:1.5}
.tn-pick label{display:flex;gap:8px;align-items:center;margin:4px 0}
.tn-pick label select{flex:1;margin:0}
@media(max-width:700px){.tn-sides{grid-template-columns:1fr}}
.tn-chat{max-height:260px}
.tn-notice{color:#e8c97a}
.tn-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.tn-head h2{margin-right:0}
.tn-head span{display:flex;gap:6px}
.tn-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:6px 0}
.tn-slots div{background:#0d1220;border:1px solid var(--line);border-radius:6px;padding:6px;text-align:center}
.tn-slots span{display:block;font-size:11px;color:var(--muted)}
.tn-slots b{color:var(--gold);font-size:13px}
.tn-cands{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.tn-cands button{display:flex;flex-direction:column;align-items:center;padding:4px 10px;font-size:13px;background:#0d1220;color:var(--text);border-color:#fff}
.tn-cands button:hover:not(:disabled){background:#16223a}
.tn-team .row button{background:none;color:var(--muted);border-color:var(--line)}
.tn-cands button small{font-size:10px;color:var(--muted)}
.tn-team .row{display:flex;gap:10px;margin:8px 0 0}
.tn-pick>.row{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.facnow td{background:#142036}
.facnext td{font-weight:700}
.tn-inline{display:inline-block;margin-left:10px;vertical-align:middle}
.tn-inline button{padding:3px 10px;font-size:12px}
.unify{background:rgba(42,32,8,.9);border:1px solid var(--gold);color:var(--gold);padding:6px 12px;border-radius:6px;text-align:center;margin:0 0 10px}
.itmf{display:flex;gap:6px;align-items:center}
.itmf select{width:auto;margin:0}
.itemlist td{vertical-align:middle}
.tn-modes{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin:24px auto;gap:16px}
.tn-modes .milf{padding:16px 18px;font-size:14px;min-height:130px}
.tn-modes .chead b{font-size:16px}
.tn-chathead{margin-top:40px}
@media(max-width:640px){.tn-modes{grid-template-columns:1fr}}
body.scheming .city:not([data-sch]){opacity:.35}
body.scheming button.city[data-sch]{border:2px solid #e06060;box-shadow:0 0 8px #e06060aa;cursor:crosshair}
#schBar{position:sticky;top:0;z-index:5}
.armslist{display:block}
.mtoc{line-height:2}
.mtoc a{margin:0 2px}
.mspec{display:flex;gap:14px;align-items:flex-start}
.mspec-tabs{display:flex;flex-direction:column;gap:2px;min-width:130px;position:sticky;top:8px}
.mpages{min-width:200px;max-height:calc(100vh - 16px);overflow:auto}
.mpages ul{list-style:none;margin:0 0 6px;padding:0 0 0 12px}
.mpages ul ul{margin:0}
.mpages a{display:block;padding:2px 6px;color:var(--muted);font-size:13px;text-decoration:none;border-left:2px solid transparent}
.mpages a:hover{color:var(--text)}
.mpages a.t2{color:var(--gold);margin-top:4px}
.mpages a.on{color:var(--text);border-left-color:#5a8fd9;background:#142036}
.mguide h3.msec,.mguide h5{scroll-margin-top:8px}
.mspec-tabs button{background:none;border:0;border-left:3px solid transparent;border-radius:0;text-align:left;padding:7px 10px;color:var(--muted);font-size:13px}
.mspec-tabs button.on{border-left-color:#5a8fd9;color:var(--text);background:#142036;font-weight:700}
.mspec-body{flex:1;min-width:0}
.mspec-body h4{margin:14px 0 4px}
.mguide p,.mguide li{line-height:1.8}
.mflow li{margin:4px 0}
.mtip{background:#0a1a0a;border:1px solid #2a4a2a;border-radius:6px;padding:7px 11px;color:#9cb89a}
.mwarn{background:#1a0d0d;border:1px solid #5a2020;border-radius:6px;padding:7px 11px;color:#e09090}
@media(max-width:700px){.mspec{flex-direction:column}.mspec-tabs{flex-direction:row;flex-wrap:wrap;position:static}.mpages{max-height:none}.mpages ul{display:none}}
.mguide h3.mpage{font-size:18px;margin:0 0 6px}
.mguide h3.msec{font-size:16px;margin:28px 0 8px;padding:6px 10px;background:#1d2c48;border-radius:4px}
.mguide h5{margin:10px 0 0;color:var(--text);font-size:14px;border-left:3px solid #5a8fd9;padding-left:8px}
.mguide h5+p{margin:2px 0 0 11px}
.bar .menu a{padding:12px 26px;font-size:18px;border-width:2px}
.bar .menu a[aria-current]{background:#1d2c48;font-weight:700}
.m-home{border-color:#dd7777 !important}
.m-facilities{border-color:#c9a24a !important}
.m-trade{border-color:#6ab06a !important}
.m-tourney{border-color:#e0904a !important}
.m-map{border-color:#7777dd !important}
.m-info{border-color:#4ab0b0 !important}
.m-history{border-color:#a07acc !important}
.m-other{border-color:#8a9aaa !important}
.tabs:not(.small) a{background:#163a3a}
.tabs:not(.small) a[aria-current]{background:#2f6e6e;border-color:#fff}
.mfig{margin:6px 0 10px}
.mfig img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px}
.mnum{display:inline-block;width:20px;height:20px;margin-right:6px;border-radius:50%;background:#ff7a45;color:#fff;font-size:12px;line-height:20px;text-align:center;vertical-align:1px}
span[title]>button:disabled{pointer-events:none}   /* 押せない理由は外側の span の title で出す */
.radwrap{display:flex;align-items:center;justify-content:flex-start;gap:10px}
.radwrap>svg{margin:0;flex:none}
.tmks{display:flex;flex-direction:column;gap:6px}
.tmks>div{display:grid;grid-template-columns:repeat(4,18px);gap:2px}
.tmk{width:18px;height:18px;line-height:16px;font-size:11px;text-align:center;border:1px solid #666;color:#888}
.tmk.on{border-color:#fff;color:var(--text);opacity:1;font-weight:700}
.tmk{background:rgba(var(--c),.12)}.tmk.on{background:rgba(var(--c),.55)}   /* 色は戦術・兵法ごと（TACTIC_COLOR） */
.ut-sword{color:#e07a72}.ut-spear{color:#5cc47a}.ut-bow{color:#4fc4d4}.ut-horse{color:#dd9a50}   /* 兵種の文字の色（内政の兵の棒と同じ系統） */
.tmks.wide{gap:2px}   /* 一覧（実在武将）は戦術だけを上4つ・下3つ */
table.tight{width:auto}table.tight th,table.tight td{padding:2px 6px}table.tight .hcell{gap:4px}table.tight th.stc{width:2.2em;padding:2px 4px}table.tight td.num{padding:2px 4px}   /* 実在武将: 中身の幅に合わせて詰める */
th.stc{width:3.2em}
.tmks:not(.wide)>div{grid-template-columns:repeat(4,24px);gap:3px}.tmks:not(.wide) .tmk{width:24px;height:24px;line-height:22px;font-size:14px}   /* 内政の能力の欄は大きめ */
.acct{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.acct form{margin:0}   /* その他: ログアウト・メールアドレス・管理 */
.mapcmds div.mapheroes{grid-template-columns:repeat(2,1fr)}   /* 勢力図: 武将の名前の一覧から選ぶ */
.mapheroes .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mapheroes .btn[aria-current]{background:#3a5a8c;border-color:#9cc3ff;font-weight:bold}
.mapheroes .busy{grid-column:1/-1}
