/* SIRIUS - 消防指令システム（離島型）風 ライト基調 */
:root{--bg:#dde3ea;--pn:#ffffff;--pn2:#f3f6f9;--ln:#a9b6c3;--ln2:#cdd6df;--tx:#14212e;--sub:#56687a;--hd:#0f3a6b;--hd2:#1d5a9a;--ac:#1565c0;--go:#1b7f3b;--red:#d32f2f;--yel:#f9c80e;--grn:#2e9e4f;--org:#ef7d0d;--pur:#7b3fa0;--blu:#1f78c8;--teal:#0f8f85;--gry:#7d8a96}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--tx);font-family:'Meiryo UI','Hiragino Sans','Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%}
a{color:var(--ac)}h2{font-size:16px;margin:0 0 8px;color:var(--hd)}h3{font-size:15px;margin:14px 0 6px;color:var(--hd);border-left:4px solid var(--hd2);padding-left:8px}
.no,.clock,.tm b,.log .t,.dt b,.stat b{font-family:Consolas,'Courier New',ui-monospace,monospace}
/* header */
.top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:linear-gradient(#174a83,#0f3a6b);color:#fff;padding:5px 10px;border-bottom:3px solid #f0b400;position:sticky;top:0;z-index:20}
.logo{font-weight:900;font-size:20px;letter-spacing:.2em;color:#fff;text-decoration:none;padding-right:6px;border-right:1px solid #ffffff55}
.pt{font-weight:700;font-size:15px;margin-right:6px}.top nav{display:flex;gap:3px;flex-wrap:wrap}
.top nav a{padding:4px 10px;border-radius:3px;border:1px solid #6f93bd;text-decoration:none;color:#dfe9f5;font-weight:700;font-size:14px;background:#ffffff14}.top nav a.on{background:#fff;color:var(--hd);border-color:#fff}
.sp{flex:1}.top select{background:#fff;color:var(--tx);border:1px solid #6f93bd;border-radius:3px;padding:4px 6px;font:inherit;max-width:260px}.top form{margin:0}
.chip{background:#ffffff1f;color:#fff;border:1px solid #8fb0d6;border-radius:3px;padding:3px 10px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.snd.on{background:var(--go);border-color:#9be3ad}
.clock{font-size:24px;letter-spacing:.06em;color:#fff;background:#06203d;border:1px solid #4d76a5;padding:0 10px;border-radius:3px;min-width:118px;text-align:center}
.who{font-size:13px;color:#dfe9f5}.who a{color:#fff;font-weight:700}
.alarm{background:var(--red);color:#fff;padding:7px 12px;font-size:16px;font-weight:700;animation:blink 1s steps(2,start) infinite}.alarm a{color:#fff}.hide{display:none!important}
@keyframes blink{50%{background:#8e1b1b}}@keyframes pulse{50%{box-shadow:0 0 0 3px #d32f2f66}}
main{padding:8px}#app.offline{outline:4px solid var(--red);outline-offset:-4px}
/* generic */
.panel{background:var(--pn);border:1px solid var(--ln);border-radius:3px;padding:10px 12px;margin-bottom:8px}.notice{max-width:640px;margin:30px auto}
.muted{color:var(--sub);font-size:13px}.ok{color:#1b7f3b;font-weight:700}.warn{color:#b26a00;font-weight:700}
button{font:inherit;font-weight:700;background:linear-gradient(#ffffff,#e3e8ee);color:var(--tx);border:1px solid #8796a5;border-radius:3px;padding:7px 12px;cursor:pointer;touch-action:manipulation;box-shadow:0 1px 0 #fff inset}
button:hover:not(:disabled){border-color:var(--ac)}button:active:not(:disabled){background:#cfd8e2}button:disabled{opacity:.45;cursor:default}
button.go{background:linear-gradient(#2a9a50,#1b7f3b);border-color:#145f2c;color:#fff}button.danger{background:linear-gradient(#fff,#fbe3e3);border-color:var(--red);color:var(--red)}
button.sub{background:#fff;color:var(--ac);border-color:#8fb0d6}button.small{padding:3px 9px;font-size:13px}button.big{width:100%;padding:14px;font-size:19px;margin-top:12px}
button.warnbtn{background:linear-gradient(#ffd54f,#f5b800);border-color:#b78a00;color:#3a2a00}
input,select,textarea{width:100%;background:#fff;color:var(--tx);border:1px solid #8796a5;border-radius:2px;padding:7px 9px;font:inherit;margin:3px 0}textarea{min-height:70px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #ffb300;border-color:#c68a00;background:#fffdf3}
.lbl{font-size:13px;color:var(--sub);margin:8px 0 2px;font-weight:700}.row2{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}.row3{display:grid;grid-template-columns:100px 1fr 1fr;gap:6px;align-items:end}
@media(max-width:640px){.row2,.row3{grid-template-columns:1fr}}
.seg{display:flex;flex-wrap:wrap;gap:4px}.seg button{flex:1 1 auto;min-width:52px;padding:8px 6px}.seg.big button{font-size:18px;padding:11px 8px}
.seg button.on{background:linear-gradient(#2f7fd1,#1565c0);border-color:#0d4a91;color:#fff;box-shadow:none}
.seg.tri4 .v-赤.on{background:var(--red);border-color:#8e1b1b}.seg.tri4 .v-黄.on{background:var(--yel);color:#222;border-color:#a88400}.seg.tri4 .v-緑.on{background:var(--grn);border-color:#1b6b35}.seg.tri4 .v-黒.on{background:#111;border-color:#000}
.tri{display:inline-block;min-width:24px;text-align:center;border-radius:2px;padding:0 5px;font-weight:900;margin:0 3px}.t-赤{background:var(--red);color:#fff}.t-黄{background:var(--yel);color:#222}.t-緑{background:var(--grn);color:#fff}.t-黒{background:#111;color:#fff}
.st{display:inline-block;border-radius:2px;padding:0 8px;font-size:12px;font-weight:800;margin:0 3px;background:var(--gry);color:#fff;white-space:nowrap}
.s-受付{background:var(--red);color:#fff}.s-指令{background:var(--yel);color:#222}.s-出動{background:var(--org);color:#fff}.s-現着{background:#c62828;color:#fff}.s-搬送{background:var(--pur);color:#fff}.s-病院着{background:var(--blu);color:#fff}.s-引揚{background:var(--teal);color:#fff}
.s-終了,.s-休止,.s-解除{background:#8a96a1;color:#fff}.s-取消{background:#8a96a1;color:#fff;text-decoration:line-through}.s-待機{background:var(--grn);color:#fff}.s-未受理{background:var(--red);color:#fff}.s-受理済{background:var(--org);color:#fff}
.tag{display:inline-block;border:1px solid #8fb0d6;color:var(--hd);background:#eef4fb;border-radius:2px;padding:0 5px;font-size:12px;margin-left:4px}
.maplink{display:inline-block;border:1px solid #8fb0d6;border-radius:2px;padding:0 5px;font-size:12px;text-decoration:none;background:#eef4fb}
.warnbox{background:#fff4d6;border:1px solid #e0a800;color:#5a4300;border-radius:2px;padding:6px 9px;margin:5px 0}
.pick{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}.chk{display:flex;align-items:center;gap:5px;border:1px solid var(--ln);border-radius:2px;padding:5px 9px;background:#fff;cursor:pointer}
.chk input{width:20px;height:20px;margin:0}.chk.rec,.chk.on{border-color:#1b7f3b;background:#e7f6ec}
.sos,.inc,.unit{border:1px solid var(--ln);background:#fff;border-radius:3px;padding:7px 9px;margin-bottom:6px}.sos{border-left:6px solid var(--org)}.sos.open{border-color:var(--red);background:#fdeaea;animation:pulse 1s infinite}
.sos .h,.inc .h{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.sos .t,.inc .t{margin-left:auto;color:var(--sub)}.btns{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.sosbox{border:1px solid #e3a3a3;background:#fff5f5;border-radius:3px;padding:8px 10px;margin-bottom:8px}.sosbox button{margin:5px 5px 0 0}.resp{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}.resp span{background:#eef4fb;border:1px solid var(--ln2);border-radius:2px;padding:1px 7px}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:4px;margin:6px 0}.tm{display:flex;flex-direction:column;align-items:center;padding:5px 3px;border-radius:2px;border:1px solid var(--ln);background:#f7f9fb}
.tm span{font-size:12px;color:var(--sub)}.tm b{font-size:17px}.tm.set{background:#e3f4e8;border-color:#5fae76}.tm.fixed{background:#fde8e8;border-color:#d99}
.times.mini{grid-template-columns:repeat(3,1fr)}.times.mini .tm b{font-size:15px}
.ulist .u{padding:3px 0;border-bottom:1px dashed var(--ln2)}
.log{margin-top:6px}.log>div{border-top:1px solid var(--ln2);padding:5px 0}.log .t{color:#0d47a1;margin-right:8px}.log .k{background:#e7eef6;border:1px solid var(--ln2);border-radius:2px;padding:0 5px;margin-right:8px;font-weight:800}.log .who{color:var(--sub);font-size:12px}.log .tx{white-space:pre-wrap;overflow-wrap:anywhere}
.foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:5px 7px;border-bottom:1px solid var(--ln2);vertical-align:top}th{color:#fff;font-size:13px;background:var(--hd2)}
table.big td{font-size:19px}tr.wait td{background:#fde8e8}tr.nowrow td{background:#e3f4e8;font-weight:800}tr.off td{opacity:.5}.calm{font-size:20px;color:#1b7f3b;padding:16px 0;text-align:center}
.scroll{overflow-x:auto}.pre{white-space:pre-wrap}.summary{white-space:pre-wrap;background:#f7f9fb;border:1px solid var(--ln2);border-radius:2px;padding:7px;margin:6px 0;overflow-wrap:anywhere}
.facts{display:flex;flex-wrap:wrap;gap:3px 12px}.loc{font-size:18px;font-weight:800;margin:2px 0 6px}
/* home / list pages */
.home{max-width:1100px;margin:0 auto}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-bottom:8px}
.tile{display:block;background:#fff;border:1px solid var(--ln);border-top:4px solid var(--hd2);border-radius:3px;padding:12px;text-decoration:none;color:var(--tx)}.tile b{display:block;font-size:19px;color:var(--hd)}.tile span{color:var(--sub);font-size:13px}
#open2{margin-top:8px;width:100%;padding:12px}
.stats,.bstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.stat{background:#fff;border:1px solid var(--ln);border-radius:3px;padding:8px 10px}
.stat span{display:block;color:var(--sub);font-size:13px}.stat b{font-size:30px}.stat.red{background:#fdeaea;border-color:var(--red);animation:pulse 1s infinite}
.board .bstats{margin-bottom:8px;grid-template-columns:2fr repeat(5,1fr)}.board .ev{font-size:24px;font-weight:900;display:flex;align-items:center;color:var(--hd)}.bgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:8px}
.ugrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}.ut{border-radius:3px;padding:8px;display:flex;flex-direction:column;align-items:center}.ut b{font-size:20px}.ut span{font-weight:800}.ut small{opacity:.9}
.cols2{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;align-items:start}
@media(max-width:1100px){.bgrid,.board .bstats,.cols2{grid-template-columns:1fr}}
/* 画面1 事案処理 */
.op{display:flex;flex-direction:column;gap:6px;height:calc(100vh - 62px)}
.tabsbar{display:flex;gap:3px;overflow-x:auto;flex:none;border-bottom:2px solid var(--hd2);padding:0 2px}
.tab{flex:none;display:flex;align-items:center;gap:5px;padding:6px 11px;border-radius:4px 4px 0 0;border:1px solid var(--ln);border-bottom:none;border-top:4px solid var(--ln);background:linear-gradient(#fff,#e6ebf0);color:var(--tx);text-decoration:none;font-weight:700;white-space:nowrap;box-shadow:none}
.tab small{color:var(--sub);font-size:11px}.tab.on{background:#fff;outline:2px solid var(--ac);outline-offset:-2px}.tab.new{border-top-color:var(--go);color:#145f2c}.tab.calling{background:#e3f4e8;animation:pulse 1.2s infinite}
.tab.sos{border-top-color:var(--red);background:#fdeaea;color:#8e1b1b;animation:blink2 1s steps(2,start) infinite}@keyframes blink2{50%{background:#f6b9b9}}
.tab.wait{animation:pulse 1.2s infinite}.tab.hist{color:var(--sub);margin-left:auto}
.tab.s-受付{border-top-color:var(--red)}.tab.s-指令{border-top-color:var(--yel)}.tab.s-出動{border-top-color:var(--org)}.tab.s-現着{border-top-color:#c62828}.tab.s-搬送{border-top-color:var(--pur)}.tab.s-病院着{border-top-color:var(--blu)}.tab.s-引揚{border-top-color:var(--teal)}
.tab.s-受付,.tab.s-指令,.tab.s-出動,.tab.s-現着,.tab.s-搬送,.tab.s-病院着,.tab.s-引揚{color:var(--tx)}
.opmain{flex:1;min-height:0;display:grid;grid-template-columns:minmax(380px,1fr) minmax(420px,1.15fr);gap:6px}
.pane{background:#fff;border:1px solid var(--ln);border-radius:3px;overflow:auto;min-height:0}
.ph{position:sticky;top:0;z-index:2;background:linear-gradient(#2a6bb0,#1d5a9a);color:#fff;padding:5px 10px;font-weight:800;font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ph .tag{background:#fff}.ph #reload,.ph #callStop{margin-left:auto}.ph.sosph{background:linear-gradient(#d84343,#b71c1c)}.ph.callph{background:linear-gradient(#2a9a50,#1b7f3b)}
.pbody{padding:8px 12px 14px}.pbody .loc{font-size:19px}
.step{display:flex;align-items:baseline;gap:6px;margin:10px 0 3px;padding-top:6px;border-top:1px solid var(--ln2);color:#0d47a1;font-weight:700}.step span{background:var(--hd2);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:13px}.step b{color:var(--sub);font-size:13px;margin-left:auto}
.locrow{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}.chosen{display:flex;align-items:center;gap:8px;background:#e8f1fb;border:1px solid #8fb0d6;border-radius:2px;padding:5px 8px;margin:3px 0}.chosen span{background:var(--hd2);color:#fff;font-size:12px;font-weight:800;padding:0 6px;border-radius:2px}.chosen b{font-size:17px;flex:1}
.big2{padding:11px 14px;font-size:17px;margin-top:8px}.btnrow{display:grid;grid-template-columns:1fr 1fr;gap:6px}.orders{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kv2 th{width:96px;background:#eef3f8;color:var(--sub)}.idle{text-align:center;padding-top:26px}
.callbtn{width:100%;max-width:500px;padding:30px 20px;font-size:30px;font-weight:900;background:linear-gradient(#2fb05a,#1b7f3b);border:2px solid #145f2c;color:#fff;border-radius:6px;box-shadow:0 3px 0 #145f2c}
.idle .btnrow{max-width:500px;margin:12px auto 0}
.dynbar{flex:none;background:#fff;border:1px solid var(--ln);border-radius:3px;padding:5px 8px}.dynh{display:flex;align-items:center;gap:10px;margin-bottom:4px}.dynh b{color:var(--hd)}.dynh button{margin-left:auto}
.dyn{display:flex;gap:4px;overflow-x:auto}.dt{flex:none;width:150px;display:flex;flex-direction:column;align-items:stretch;padding:4px 6px;border-radius:3px;border:1px solid #0003;text-align:left;box-shadow:none}
.dt .dtt{display:flex;justify-content:space-between;align-items:baseline}.dt b{font-size:18px}.dt span{font-size:13px;font-weight:900}.dt small{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.95}
.dt .dtp{background:#ffffffd9;color:#14212e;border-radius:2px;padding:0 4px;margin-top:2px}.dt .dtp.gps{color:#145f2c;font-weight:700}
.dt.on{outline:3px solid #ffb300;outline-offset:1px}.dt.s-指令{animation:pulse 1.2s infinite}
.dynops{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:5px;padding-top:5px;border-top:1px solid var(--ln2)}.opsl{font-size:12px;color:#fff;background:var(--hd2);padding:1px 6px;border-radius:2px;margin-left:6px}
.fkeys{flex:none;display:grid;grid-template-columns:repeat(10,1fr);gap:3px;background:#c3ccd6;border:1px solid var(--ln);border-radius:3px;padding:3px}
.fkeys button{padding:6px 2px;font-size:13px;display:flex;flex-direction:column;align-items:center;line-height:1.2}.fkeys i{font-style:normal;font-size:11px;color:#fff;background:#40556b;border-radius:2px;padding:0 5px;margin-bottom:2px}
.fkeys button[data-fk="1"]{background:linear-gradient(#2fb05a,#1b7f3b);color:#fff;border-color:#145f2c}.fkeys button[data-fk="2"]{background:linear-gradient(#ffd54f,#f5b800)}.fkeys button[data-fk="3"]{background:linear-gradient(#ff8a65,#e65100);color:#fff}
/* search */
.srch{position:relative;flex:1;min-width:180px}.srch input{margin:0}.srch.mini{flex:0 1 220px;min-width:160px}.srch.mini input{padding:4px 7px}
.srchr{position:absolute;top:100%;left:0;right:0;z-index:1000;background:#fff;border:1px solid #8796a5;box-shadow:0 4px 12px #0003;max-height:320px;overflow:auto}
.sr{padding:6px 9px;border-bottom:1px solid var(--ln2);cursor:pointer}.sr:hover,.sr.on{background:#fff3c4}.sr small{display:block;color:var(--sub);font-size:12px}
/* 画面2 地図・支援情報 */
.info{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:6px;height:calc(100vh - 62px)}
.mapcol{display:flex;flex-direction:column;min-height:0}.maptools{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:5px}.maptools button.on,.tabs2 button.on{background:linear-gradient(#2f7fd1,#1565c0);border-color:#0d4a91;color:#fff}
.legend{margin-left:auto;font-size:12px;color:var(--sub)}.lg{display:inline-block;width:11px;height:11px;border-radius:50%;margin:0 3px 0 8px;vertical-align:-1px}.lg-inc{background:var(--red)}.lg-unit{background:var(--org);border-radius:2px}.lg-sos{background:#ff1744}.lg-staff{background:#2ecc71}.lg-loc{background:#7f8fa6}
#mapWrap{position:relative;flex:1;min-height:360px;border:1px solid var(--ln);background:#eef2f5}#map,#mymap{position:absolute;inset:0;width:100%;height:100%;border:0}
.side{overflow:auto;min-height:0}.side .panel{margin-bottom:6px}.side .dh{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.side .no,.side .ct{font-size:17px}
.utbl{width:100%}.utbl td{font-size:13px;padding:4px 5px}.utbl td:last-child{white-space:nowrap}.utbl td.gps{color:#145f2c;font-weight:700}.tabs2{display:flex;gap:4px;margin-bottom:6px}.tabs2 button{flex:1}
.pickbar{background:#fff4d6;border:1px solid #e0a800;border-radius:2px;padding:6px 10px;margin-bottom:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#map.picking,#map.picking .leaflet-interactive,#map.picking.leaflet-grab{cursor:crosshair!important}
.mk{display:inline-block;white-space:nowrap;transform:translate(-50%,-100%);padding:2px 7px;border-radius:3px;font-weight:800;font-size:12px;color:#fff;background:var(--gry);border:2px solid #fff;box-shadow:0 1px 4px #0007;position:relative}
.mk:after{content:'';position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:#fff}
.mk.k-inc{background:var(--red)}.mk.k-sos{background:#ff1744;animation:blink 1s steps(2,start) infinite}.mk.k-sos.k-accepted{animation:none;background:#b71c1c}
.mk.k-unit{border-radius:2px;border-color:#14212e}.mk.k-unit.k-est{opacity:.8;border-style:dashed}.mk.k-cur{outline:3px solid #ffb300;transform:translate(-50%,-100%) scale(1.2)}.mk.k-hit{background:var(--ac)}.mk.s-指令{color:#222}
.leaflet-container{font:inherit}
/* 隊編成・記録 */
body.light{background:#fff}body.light .panel{border-color:#ccc}
.record table.kv th{width:160px;background:#eef3f8;color:#333}@media print{.noprint{display:none}body{background:#fff}.top{display:none}}
@media(max-width:1100px){.op,.info{height:auto}.opmain,.info{grid-template-columns:1fr}.pane{overflow:visible}#mapWrap{min-height:60vh}.fkeys{grid-template-columns:repeat(5,1fr)}}
#toast{position:fixed;left:50%;bottom:70px;transform:translateX(-50%) translateY(160px);background:#1b7f3b;color:#fff;padding:10px 16px;border-radius:3px;font-weight:700;transition:transform .25s;z-index:50;max-width:92vw;box-shadow:0 3px 10px #0004}
#toast.show{transform:translateX(-50%) translateY(0)}#toast.bad{background:var(--red)}
/* 4画面構成 */
.top nav a{border-radius:4px 4px 0 0;border-bottom:none;padding:5px 12px}
.quad{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start;margin-top:10px}.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#2b3b4c;padding:6px;border-radius:6px}
.q{background:#f3f6f9;border:1px solid #8796a5;border-radius:2px;padding:10px 6px;text-align:center}.q small{display:block;color:var(--sub);font-size:11px}.q b{color:var(--hd);font-size:14px}
.fleet,.elist{display:flex;flex-direction:column;gap:6px;height:calc(100vh - 90px)}.fleet .pane,.elist .pane{flex:1}
.fsum{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;flex:none}.fs{border-radius:3px;padding:4px 8px;display:flex;justify-content:space-between;align-items:baseline}.fs b{font-size:22px;font-family:Consolas,monospace}.fs.all{background:#fff;border:1px solid var(--ln)}
.ftbl td,.ltbl td{font-size:14px;padding:4px 6px;vertical-align:middle}.ftbl tr.grp td{background:#e1e8ef;color:var(--hd);font-weight:800;font-size:13px;padding:2px 8px}
.ftbl td.fst{width:72px;text-align:center;font-weight:900}.ftbl td.gps{color:#145f2c;font-weight:700}.fbtn{white-space:nowrap}.fbtn button{padding:3px 7px;font-size:12px;margin:1px}
.ltbl tr[data-row]{cursor:pointer}.ltbl tr[data-row]:hover td{background:#fff8dc}tr.selrow td{background:#fff3c4!important;font-weight:700}tr.sosrow td{background:#fde2e2;color:#8e1b1b}
.ltbl tr.wait td:first-child{border-left:5px solid var(--red)}
.sbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:16px;align-items:center;background:#2b3b4c;color:#dfe9f5;font-size:12px;padding:2px 10px;border-top:1px solid #0f3a6b}
.sbar b{color:#fff}.sbar .ok{color:#7ee2a0}.sbar .ng{color:#ff8a80;font-weight:800}.sbar .sp{flex:1}
body{padding-bottom:22px}
@media(max-width:1100px){.fleet,.elist{height:auto}.fsum{grid-template-columns:repeat(3,1fr)}.quad{grid-template-columns:1fr}}
.top .pt{display:none}.top nav a{padding:5px 10px;font-size:13px}.top select{max-width:220px}.who{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 受付フォーム：種別タブ＋少ない項目 */
.seg.ftabs{gap:0;background:#dfe6ee;border-bottom:3px solid var(--hd2);padding:6px 6px 0;flex-wrap:nowrap;overflow-x:auto}
.seg.ftabs button{flex:1;min-width:64px;border-radius:5px 5px 0 0;border:1px solid var(--ln);border-bottom:none;margin-right:2px;padding:10px 6px;font-size:17px;background:linear-gradient(#fff,#e9eef3)}
.seg.ftabs button.on{background:var(--hd2);color:#fff;border-color:var(--hd2)}
.frow{display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:start;padding:8px 0;border-bottom:1px solid var(--ln2)}.fl{font-weight:800;color:var(--hd);padding-top:7px;font-size:14px}
.frow .seg button{padding:9px 6px;font-size:16px}.fbox{min-width:0}.chosen{display:flex;align-items:center;gap:8px}.chosen b:before{content:'📍 '}
/* 緊急度でヘッダー色を変える */
body[data-tri="赤"] .top{background:linear-gradient(#e53935,#b71c1c);border-bottom-color:#ffeb3b}
body[data-tri="黄"] .top{background:linear-gradient(#ffd54f,#f9a825);border-bottom-color:#5d4037}
body[data-tri="緑"] .top{background:linear-gradient(#43a047,#1b5e20);border-bottom-color:#c8e6c9}
body[data-tri="黒"] .top{background:linear-gradient(#424242,#111);border-bottom-color:#9e9e9e}
body[data-tri="黄"] .top,body[data-tri="黄"] .top .logo,body[data-tri="黄"] .top .who,body[data-tri="黄"] .top .who a,body[data-tri="黄"] .top nav a,body[data-tri="黄"] .top .chip{color:#3a2a00}
body[data-tri="黄"] .top nav a.on{color:var(--hd)}
body[data-tri="赤"] .ph:not(.sosph){background:linear-gradient(#e53935,#c62828)}
body[data-tri="黄"] .ph:not(.sosph){background:linear-gradient(#ffd54f,#f9a825);color:#3a2a00}
body[data-tri="緑"] .ph:not(.sosph){background:linear-gradient(#43a047,#2e7d32)}
body[data-tri="黒"] .ph:not(.sosph){background:linear-gradient(#424242,#1a1a1a)}
body[data-tri="赤"] .seg.ftabs{border-bottom-color:#c62828}body[data-tri="黄"] .seg.ftabs{border-bottom-color:#f9a825}body[data-tri="緑"] .seg.ftabs{border-bottom-color:#2e7d32}body[data-tri="黒"] .seg.ftabs{border-bottom-color:#111}
body[data-tri] .side #iSel{border-top:6px solid transparent}body[data-tri="赤"] .side #iSel{border-top-color:#c62828}body[data-tri="黄"] .side #iSel{border-top-color:#f9a825}body[data-tri="緑"] .side #iSel{border-top-color:#2e7d32}body[data-tri="黒"] .side #iSel{border-top-color:#111}
/* 地図画面：マイマップ＋登録地点リスト */
.mapnone{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:30px;color:var(--sub);text-align:center;background:#f7f9fb}
.tabs2 button{padding:6px 4px;font-size:13px}.ptlist{max-height:calc(100vh - 380px);overflow:auto;margin-top:4px}
.pt{display:grid;grid-template-columns:1fr auto auto;gap:4px;align-items:center;padding:5px 2px;border-bottom:1px solid var(--ln2)}.pt:hover{background:#fff8dc}
.ptn{cursor:pointer;min-width:0}.ptn b{display:block}.ptn small{display:block;color:var(--sub);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utbl tr.clk{cursor:pointer}.utbl tr.clk:hover td{background:#fff8dc}
.info{grid-template-columns:minmax(0,1fr) 400px}
/* 事案選択（受理）画面 */
.opmain.full{grid-template-columns:1fr}.opmain.full #paneR{display:none}
.callscr{display:flex;flex-direction:column;min-height:calc(100% - 34px)}
.callgrid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:8px;padding:8px;flex:1}
.fxarea{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;align-content:start}
.fxsec{border:2px solid var(--ln);border-radius:4px;background:#fff}.fxsh{font-weight:900;font-size:14px;padding:3px 8px;color:#14212e}
.fxsec.c1{border-color:#e05a9b}.fxsec.c1 .fxsh{background:#fde4f0}.fxsec.c2{border-color:#2d4fd0;grid-row:span 2}.fxsec.c2 .fxsh{background:#e3e9ff}
.fxsec.c3{border-color:#e0b100}.fxsec.c3 .fxsh{background:#fff3c4}.fxsec.c4{border-color:#16a7c9}.fxsec.c4 .fxsh{background:#d9f3fa}.fxsec.c5{border-color:#9b59b6}.fxsec.c5 .fxsh{background:#f1e4f7}
.fxbody{padding:4px 6px 6px}.fx{margin:4px 0}.fxt{font-size:12px;font-weight:800;color:var(--sub);margin-bottom:2px}.fxt small{margin-left:6px;font-weight:400}
.fxo{display:flex;flex-wrap:wrap;gap:3px}.fxo button{padding:6px 8px;font-size:14px;border-radius:3px;background:#fff;border:1px solid #9aa8b6;box-shadow:none;font-weight:600}
.fxo button.on{background:#fce4e4;border:2px solid #d32f2f;color:#8e1b1b;font-weight:800;padding:5px 7px}
.fx.vt .fxo button{min-width:30%}
.callR{display:flex;flex-direction:column;gap:6px}.cbox{background:#f7f9fb;border:1px solid var(--ln);border-radius:4px;padding:6px 8px}.cbox .ct{font-size:12px;font-weight:800;color:var(--hd);margin-bottom:3px}
.cbox textarea{min-height:48px}.judge{background:#fff;border:2px solid #d32f2f}.jrow{display:flex;gap:8px;align-items:center}
.jlv{width:76px;height:64px;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;border-radius:4px;border:1px solid var(--ln);background:#eef2f5;color:var(--sub);flex:none}
.jlv.t-赤{background:var(--red);color:#fff}.jlv.t-黄{background:var(--yel);color:#222}.jlv.t-緑{background:var(--grn);color:#fff}.jlv.t-黒{background:#111;color:#fff}
.jcat{display:flex;flex-wrap:wrap;gap:3px}.jcat span{background:#fde4e4;border:1px solid #e3a3a3;color:#8e1b1b;border-radius:2px;padding:1px 6px;font-weight:800;font-size:13px}.jcat span.muted{background:none;border:none;color:var(--sub);font-weight:400}
.jdisp{margin-top:5px;font-weight:800;color:#0d47a1;font-size:13px}
.hintbar{background:#fffbe0;border-top:2px solid #e0b100;padding:6px 10px;display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:center}.hintbar span{font-weight:900;color:#c62828;font-size:16px}.hintbar span.muted{color:var(--sub);font-weight:400;font-size:13px}
@media(max-width:1100px){.callgrid{grid-template-columns:1fr}}

.fxo button{padding:4px 7px;font-size:13px}.fxo button.on{padding:3px 6px}.fx.vt .fxo button{min-width:0}.fx{margin:2px 0}
.fxarea{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:6px}.hintbar{position:sticky;top:34px;z-index:3}

:is(.op.calling,.supcall) .dynbar{display:none}
/* 緊急度だけの表示 */
.jlv.big{width:110px;height:80px;font-size:44px}.jrow .jcat{flex:1;justify-content:flex-end;align-items:center}
.cprbtn{background:linear-gradient(#e53935,#b71c1c);color:#fff;border-color:#7f0000;font-size:17px;padding:10px 14px}
/* 予告指令の一斉表示 */
.alarm.bconly{background:#f9a825;color:#2a1d00;animation:none}.alarm .bcline{display:flex;flex-direction:column;gap:2px;margin-top:2px}.alarm .bcline small{font-weight:400}
/* 口頭指導 */
.cprm{position:fixed;inset:0;z-index:200;background:#0008;display:flex;align-items:center;justify-content:center;padding:12px}
.cprbox{background:#fff;border:3px solid #c62828;border-radius:6px;width:min(1100px,100%);max-height:96vh;display:flex;flex-direction:column;box-shadow:0 8px 30px #0008}
.cprh{background:linear-gradient(#e53935,#b71c1c);color:#fff;padding:8px 14px;font-size:20px;display:flex;align-items:center;gap:14px}.cprh .live{font-size:14px;background:#fff;color:#c62828;border-radius:3px;padding:1px 8px;font-weight:800;animation:blink2 1s steps(2,start) infinite}
.cprbody{display:grid;grid-template-columns:360px 1fr;gap:12px;padding:12px;overflow:auto}
.metro{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff5f5;border:1px solid #e3a3a3;border-radius:6px;padding:12px}
.mdot{width:120px;height:120px;border-radius:50%;background:#ffcdd2;border:4px solid #c62828}.mdot.hit{animation:mhit .18s ease-out}@keyframes mhit{0%{background:#c62828;transform:scale(1.08)}100%{background:#ffcdd2;transform:scale(1)}}
.mcnt{font-size:44px;font-weight:900;font-family:Consolas,monospace;color:#c62828;line-height:1}.mbpm{display:flex;align-items:center;gap:8px}.mbpm b{font-size:26px;font-family:Consolas,monospace}.mbpm button{width:46px;font-size:20px}
.ctime{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.ctime div{background:#f3f6f9;border:1px solid var(--ln);border-radius:4px;padding:4px 8px;text-align:center}.ctime span{display:block;font-size:12px;color:var(--sub)}.ctime b{font-size:26px;font-family:Consolas,monospace}.ctime .swap{background:#fff3c4;border-color:#e0a800;animation:pulse 1s infinite}
.cprstart{width:100%;padding:16px;font-size:24px;font-weight:900;background:linear-gradient(#e53935,#b71c1c);color:#fff;border:2px solid #7f0000;border-radius:6px}.cprstart small{display:block;font-size:13px;font-weight:600}
.cprl .btnrow{margin:8px 0}.cprl>.sub{width:100%}
.cprr ol{margin:4px 0;padding-left:0;list-style:none;counter-reset:s}.cprr li{counter-increment:s;padding:10px 12px 10px 46px;margin:4px 0;border:1px solid var(--ln);border-radius:4px;position:relative;cursor:pointer;font-size:17px;line-height:1.45;background:#fff}
.cprr li:before{content:counter(s);position:absolute;left:10px;top:9px;width:26px;height:26px;border-radius:50%;background:#8796a5;color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center}
.cprr li.on{border:3px solid #c62828;background:#fff5f5;font-weight:800;font-size:19px}.cprr li.on:before{background:#c62828}.cprr li.done{color:var(--sub)}.cprr li.done:before{background:#2e9e4f;content:'✓'}
.cprf{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:8px 12px;border-top:1px solid var(--ln)}.cprf .muted{margin-right:auto}
.cprm.min{inset:auto 10px 70px auto;background:none;padding:0}.cprm.min .cprbox{width:360px}.cprm.min .cprr,.cprm.min .ctime,.cprm.min .cprl .btnrow,.cprm.min .cprl>.sub{display:none}.cprm.min .cprbody{grid-template-columns:1fr}
@media(max-width:900px){.cprbody{grid-template-columns:1fr}}
/* 隊端末 */
body.teamb{padding-bottom:50px}.tbar{display:flex;gap:6px;padding:6px 8px;background:#e3e9ef;border-bottom:1px solid var(--ln)}.tbar select{flex:1;margin:0}.tbar .chip{color:var(--hd);border-color:var(--ln);background:#fff}.tbar .chip.on{background:var(--go);color:#fff}
main.team{max-width:640px;margin:0 auto}.tbc{background:#fff8e1;border:2px solid #f9a825;border-radius:6px;padding:10px;margin-bottom:8px}.tbc.new{animation:pulse 1s infinite;border-color:#c62828;background:#fff3e0}
.tk{font-weight:900;color:#b71c1c}.tt{font-size:19px;font-weight:800;margin:4px 0}.tunit{background:#fff;border:1px solid var(--ln);border-left:8px solid var(--gry);border-radius:6px;padding:10px;margin-bottom:8px}
.tunit.s-待機{border-left-color:var(--grn)}.tunit.s-指令{border-left-color:var(--yel)}.tunit.s-出動{border-left-color:var(--org)}.tunit.s-現着{border-left-color:#c62828}.tunit.s-搬送{border-left-color:var(--pur)}.tunit.s-病院着{border-left-color:var(--blu)}.tunit.s-引揚{border-left-color:var(--teal)}
.tunit.s-待機,.tunit.s-指令,.tunit.s-出動,.tunit.s-現着,.tunit.s-搬送,.tunit.s-病院着,.tunit.s-引揚,.tunit.s-休止{background:#fff;color:var(--tx)}
.tuh{font-size:18px;display:flex;align-items:center;gap:6px}.tuh .st{margin-left:auto;font-size:14px}.torder{background:#fff5f5;border:1px solid #e3a3a3;border-radius:4px;padding:8px;margin:8px 0}.torder.new{border:2px solid #c62828;animation:pulse 1s infinite}
.tloc{font-size:18px;font-weight:800}.tmap{display:block;text-align:center;margin-top:6px}.tbtns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.tbtns button{padding:16px 4px;font-size:18px}
.tfoot{position:fixed;left:0;right:0;bottom:0;background:#2b3b4c;color:#dfe9f5;font-size:13px;padding:6px 10px;display:flex;align-items:center;justify-content:space-between}
body.offline .top{border-bottom-color:#ff1744}

/* 区分 → カテゴリ → 項目 */
.fxarea{display:flex;flex-direction:column;gap:6px;grid-template-columns:none}
.ctabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:#e8eef4;border:1px solid var(--ln);border-radius:4px}
.ctabs button{flex:1 1 18%;padding:9px 6px;font-size:15px;position:relative}.ctabs button.on{background:linear-gradient(#2f7fd1,#1565c0);color:#fff;border-color:#0d4a91}
.ctabs button.has:not(.on){border:2px solid #d32f2f;color:#8e1b1b}.ctabs button i{font-style:normal;position:absolute;top:-6px;right:-4px;background:#d32f2f;color:#fff;border-radius:10px;font-size:11px;padding:0 6px;line-height:18px}
.citems{background:#fff;border:2px solid var(--hd2);border-radius:4px;padding:8px;min-height:180px}.cg{margin-bottom:8px}.cgt{font-size:13px;font-weight:800;color:var(--hd);margin-bottom:3px}.cgt small{margin-left:6px;font-weight:400;color:var(--sub)}
.citems .fxo button{padding:10px 12px;font-size:16px;min-width:96px}.citems .fxo button.on{padding:9px 11px}
.cchosen{display:flex;flex-wrap:wrap;gap:4px;min-height:30px}.cchosen button{padding:3px 8px;font-size:13px;background:#fce4e4;border:1px solid #d32f2f;color:#8e1b1b;box-shadow:none}
/* スクロールなしで見える受理画面（可変） */
:is(.op.calling,.supcall) #paneL{overflow:hidden;display:flex;flex-direction:column}
:is(.op.calling,.supcall) .callscr{flex:1;min-height:0;display:flex;flex-direction:column}
:is(.op.calling,.supcall) .callgrid{flex:1;min-height:0;grid-template-rows:minmax(0,1fr)}
:is(.op.calling,.supcall) .fxarea{min-height:0;display:flex;flex-direction:column}
:is(.op.calling,.supcall) .citems{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(min(var(--g,1),3),1fr);gap:6px;align-content:stretch}
:is(.op.calling,.supcall) .cg{display:flex;flex-direction:column;min-height:0;margin:0}
:is(.op.calling,.supcall) .cg .fxo{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--bw,120px),1fr));grid-auto-rows:minmax(38px,1fr);gap:4px}
:is(.op.calling,.supcall) .citems[style*="--g:1"] .fxo{--bw:150px;grid-auto-rows:minmax(52px,1fr)}
:is(.op.calling,.supcall) .cg .fxo button{min-width:0;font-size:clamp(13px,1.15vw,18px);padding:4px 6px;white-space:normal;line-height:1.2}
:is(.op.calling,.supcall) .callR{min-height:0;overflow:hidden;gap:5px}:is(.op.calling,.supcall) .cbox{padding:4px 7px}:is(.op.calling,.supcall) .callR input,:is(.op.calling,.supcall) .callR textarea{padding:5px 8px;margin:2px 0}
:is(.op.calling,.supcall) .callR .big2{padding:9px 10px;font-size:16px;margin-top:2px}:is(.op.calling,.supcall) .jlv.big{height:58px;width:90px;font-size:36px}
.judge .seg{margin-top:4px}.judge .seg button{padding:6px}
.ctabs{display:grid;grid-template-columns:repeat(min(var(--n,10),6),1fr)}.ctabs button{flex:none}.ctabs button.sup{background:linear-gradient(#fff,#e7f6ec);border-color:#2e9e4f;color:#145f2c}.ctabs button.sup.on{background:linear-gradient(#2fb05a,#1b7f3b);color:#fff}
@media(min-width:1500px){.ctabs{grid-template-columns:repeat(var(--n,10),1fr)}}
/* 人体図 */
.btools{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.btools button{padding:7px 10px}.btools button.on{background:linear-gradient(#e53935,#b71c1c);color:#fff;border-color:#7f0000}
.bwrap{display:grid;grid-template-columns:1fr 1fr;gap:8px;height:100%;min-height:0}.citems.sup{display:flex!important;flex-direction:column}.citems.sup .bwrap{flex:1}
.bview{display:flex;flex-direction:column;align-items:center;min-height:0}.bcap{font-weight:800;color:var(--hd)}
.bstage{position:relative;height:100%;max-height:62vh;min-height:260px;aspect-ratio:100/222}.bstage svg,.bstage canvas{position:absolute;inset:0;width:100%;height:100%}.bstage canvas{touch-action:none;cursor:crosshair}
.bfig circle,.bfig rect,.bfig path{fill:#f3f6f9;stroke:#40556b;stroke-width:1.2}.bfig .spine,.bfig .mark{stroke:#9fb3c8;stroke-width:.8;stroke-dasharray:2 2}.bfig text{font-size:8px;fill:#56687a;font-weight:700}
#bodyBox2 .bstage{max-height:58vh}.ltabs{display:flex;gap:3px;padding:4px 6px 0;background:#dfe6ee;border-bottom:2px solid var(--hd2)}.ltabs button{border-radius:4px 4px 0 0;border-bottom:none;padding:6px 14px}.ltabs button.on{background:var(--hd2);color:#fff}.ltabs i{font-style:normal;color:#d32f2f;margin-left:3px}
.tbody{margin:6px 0}.tbody .bstage{min-height:220px;max-height:300px}
/* s11 調整：右列はボタンを常に下端に表示、項目は重ならない */
:is(.op.calling,.supcall) .callR{display:flex;flex-direction:column}
:is(.op.calling,.supcall) .callR>.btnrow{margin-top:auto;flex:none}
:is(.op.calling,.supcall) #callPlan{flex:0 1 auto;min-height:0;overflow:hidden}
:is(.op.calling,.supcall) .callR textarea{height:36px;min-height:36px;resize:none}
:is(.op.calling,.supcall) .callR .ct{font-size:11px;margin:0 0 1px}
:is(.op.calling,.supcall) .citems{grid-template-columns:repeat(min(var(--g,1),4),minmax(0,1fr))}
:is(.op.calling,.supcall) .cg{min-height:auto}
:is(.op.calling,.supcall) .cg .fxo{grid-template-columns:repeat(auto-fill,minmax(var(--bw,108px),1fr))}
.citems.sup .bwrap{flex:1;min-height:0}.citems.sup .bview{height:100%;min-height:0}.citems.sup .bstage{height:calc(100% - 18px);min-height:0;max-height:none}
@media (max-height:860px){
 :is(.op.calling,.supcall) .callR .cbox:nth-child(2) .ct{display:none}
 :is(.op.calling,.supcall) .jlv.big{height:40px;width:70px;font-size:26px}
 :is(.op.calling,.supcall) .judge .seg button{padding:4px}
 :is(.op.calling,.supcall) .cg .fxo{grid-auto-rows:minmax(32px,1fr)}
 :is(.op.calling,.supcall) .cg .fxo button{font-size:13px;padding:2px 4px}
 :is(.op.calling,.supcall) .ctabs button{padding:6px 4px}
 :is(.op.calling,.supcall) .callR .big2{padding:7px 8px;font-size:15px}
}
.citems.sup{flex-direction:row!important;gap:8px}.citems.sup .btools{flex-direction:column;flex:none;width:118px;margin:0}.citems.sup .btools button{text-align:left}
@media (max-height:860px){:is(.op.calling,.supcall) #callPlan{display:none}}
@media (max-height:860px){:is(.op.calling,.supcall) .cg .fxo{grid-auto-rows:minmax(29px,1fr);gap:3px}:is(.op.calling,.supcall) .citems{gap:4px}:is(.op.calling,.supcall) .cg .lbl,:is(.op.calling,.supcall) .cg>b{margin:0}}
/* s12 活動支援：ペンタブ用の別ウィンドウ */
.supwin{display:flex;flex-direction:column;gap:6px;padding:6px;min-height:420px}
.suphead{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #c5d0dc;border-radius:6px;padding:6px 10px;flex:none}
.supt{flex:1;min-width:0;display:flex;gap:8px;align-items:center;overflow:hidden;white-space:nowrap}.supt .muted{overflow:hidden;text-overflow:ellipsis}
.supk{background:var(--hd2);color:#fff;padding:3px 9px;border-radius:4px;font-weight:800}.supk.call{background:#1b7f3b}.supk.off{background:#8796a5}
.supst{font-weight:700;font-size:13px;padding:5px 9px;border-radius:4px;white-space:nowrap}.supst:empty{display:none}.supst.ok{background:#e7f6ec;color:#145f2c}.supst.wait{background:#fff6d6;color:#7a5a00}.supst.ng{background:#fde4e4;color:#b71c1c}
.suphead select{max-width:300px;padding:7px}.suphead button{padding:8px 14px}
.supbody{flex:1;min-height:0;background:#fff;border:1px solid #c5d0dc;border-radius:6px;padding:8px}
.supnone{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#56687a}.supnone b{font-size:22px;color:var(--hd)}
.supw{height:100%;display:flex;gap:12px}
.supw .btools{flex:none;width:220px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:10px;overflow:auto;margin:0}
.bt-g{display:flex;flex-direction:column;gap:4px}.bt-g small{font-weight:800;color:#56687a;font-size:12px}.bt-row{display:flex;gap:4px}.bt-row button{flex:1}
.bt-st{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.supw .btools button{padding:10px 8px;font-size:15px;text-align:left}.supw .bt-row button{text-align:center}
.btools button.sw span{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:1px solid #fff}
.btools button.sw.on{background:#fff;color:#111;border-color:#111;box-shadow:inset 0 0 0 2px #ffb300}
.supw .bwrap{flex:1;min-height:0;height:100%}.supw .bview{height:100%;min-height:0}.supw .bstage{height:calc(100% - 24px);max-height:none;min-height:0}.supw .bcap{font-size:16px}
.supbar{display:flex;align-items:center;gap:10px;background:#eef6f0;border:1px solid #9fd3ae;border-radius:5px;padding:6px 10px;margin-bottom:6px}.supbar span{flex:1;font-size:13px}.supbar button{white-space:nowrap;padding:8px 14px}
.citems.sup.ro{flex-direction:column!important}.citems.sup.ro .bprev{flex:1;min-height:0}.bprev .bwrap{height:100%}
.supprev #bodyBox2{height:55vh}.supprev #bodyBox2 .bstage{height:calc(100% - 22px);min-height:0;max-height:none}
.supw .btools button{padding:8px 7px;font-size:14px}.supw .btools{gap:7px}
.bt-g.tools2{display:grid;grid-template-columns:1fr 1fr;gap:4px}.bt-g.tools2 small{grid-column:1/-1}
#paneL:has(.supprev){display:flex;flex-direction:column;overflow:hidden}
#paneL .pbody.supprev{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.supprev #bodyBox2{flex:1;min-height:0;height:auto}
body[data-page="support"] header.top nav{display:none}
/* s15 単独ログイン・台の選択 */
body.authb{background:#e9eef4}.auth{max-width:980px;margin:24px auto;padding:0 16px}
.authp{max-width:440px;margin:30px auto}.authp.wide{max-width:none}.authp h3{margin:18px 0 8px;color:var(--hd)}
.authp input{width:100%}.okbox{background:#e7f6ec;border:1px solid #9fd3ae;color:#145f2c;padding:8px 10px;border-radius:5px;margin:8px 0}
.desks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.desks form{margin:0}
.desk{width:100%;height:100%;text-align:left;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:8px;background:#fff;border:2px solid #c5d0dc;color:#1d2b3a}
.desk b{font-size:22px;color:var(--hd)}.desk code{font-size:13px;color:#56687a}.desk span{font-size:13px;line-height:1.5}
.desk:hover:not(:disabled){border-color:var(--hd2);background:#f3f8fd}.desk.want{border-color:#ffb300;box-shadow:0 0 0 3px #ffe08a}.desk:disabled{opacity:.45}
.desk.d-control{border-left:8px solid #6a1b9a}.desk.d-dispatch{border-left:8px solid #c62828}.desk.d-intake{border-left:8px solid #1565c0}
.desk.d-aid{border-left:8px solid #2e7d32}.desk.d-security{border-left:8px solid #ef6c00}.desk.d-ops{border-left:8px solid #00838f}
header.top.desk-control{box-shadow:inset 0 -4px 0 #8e24aa}header.top.desk-dispatch{box-shadow:inset 0 -4px 0 #e53935}header.top.desk-intake{box-shadow:inset 0 -4px 0 #1e88e5}
.deskname{font-size:15px}.deskname b{font-size:24px;color:var(--hd);margin-right:6px}.deskname code{color:#56687a}
/* 指令台：指令待ち */
.wlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.wcard{text-align:left;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:6px;background:#fff;border:2px solid #c5d0dc;border-left-width:10px}
.wcard .wh{display:flex;gap:8px;align-items:center}.wcard .no{font-size:20px}.wcard em{font-style:normal;color:#56687a;font-size:13px;margin-left:auto}
.wcard .wl{font-size:17px;font-weight:800}.wcard small{color:#56687a}
.wcard.wt-赤{border-left-color:#d32f2f;background:#fff5f5}.wcard.wt-黄{border-left-color:#f9a825}.wcard.wt-緑{border-left-color:#2e7d32}.wcard.wt-黒{border-left-color:#222}
.wnone{font-size:17px;text-align:center;padding:40px 0}
body.teamb.m-aid header.top{box-shadow:inset 0 -4px 0 #43a047}body.teamb.m-security header.top{box-shadow:inset 0 -4px 0 #fb8c00}body.teamb.m-ops header.top{box-shadow:inset 0 -4px 0 #00acc1}
/* s16 増強モード・台間転送 */
.surgebar{display:flex;align-items:center;gap:12px;padding:6px 14px;background:repeating-linear-gradient(45deg,#ffd54f,#ffd54f 14px,#ffca28 14px,#ffca28 28px);color:#3e2700;font-weight:700;border-bottom:2px solid #c79100}
.surgebar b{font-size:17px}.surgebar span{flex:1}
body.surge header.top{box-shadow:inset 0 -5px 0 #ffb300!important}
.surgep .surgeon{background:#fff8e1;border:2px solid #ffb300;border-radius:6px;padding:10px 12px;font-weight:700;color:#5d4200;margin-bottom:8px}
button.warnbtn.small{padding:3px 10px;font-size:13px;margin-left:auto;margin-right:6px}
.callph #xferGo{margin-left:auto}
.xmodal{position:fixed;inset:0;z-index:210;background:#0007;display:flex;align-items:center;justify-content:center;padding:12px}
.xbox{background:#fff;border-radius:8px;width:min(620px,100%);max-height:92vh;overflow:auto;box-shadow:0 10px 40px #0006}
.xh{display:flex;align-items:center;gap:8px;background:var(--hd2);color:#fff;font-weight:800;font-size:18px;padding:10px 14px;border-radius:8px 8px 0 0}.xh button{margin-left:auto}
.xmodal.in .xh{background:linear-gradient(#ef6c00,#d84315)}
.xb{padding:12px 14px}.xb input{width:100%;margin:8px 0}
.xlist{display:grid;gap:6px}.xseat{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:12px 14px;border:2px solid #c5d0dc;border-radius:6px;background:#fff}
.xseat b{font-size:16px}.xseat span{font-size:13px;color:#56687a}.xseat.m-call span{color:#c62828;font-weight:700}.xseat.m-idle span{color:#2e7d32;font-weight:700}
.xseat.on{border-color:#1565c0;background:#e8f1fb;box-shadow:inset 0 0 0 2px #1565c0}
.xfrom{font-size:16px;margin-bottom:6px}.xsum{background:#f3f6f9;border:1px solid #c5d0dc;border-radius:5px;padding:10px;font-size:16px;line-height:1.6}
.xnote{margin-top:6px;background:#fff8e1;border:1px solid #ffe08a;border-radius:5px;padding:8px}
/* s17 ロゴ右の状態バッジ */
.opst{display:inline-flex;gap:5px;margin:0 10px 0 2px;align-items:center}
.opst b{font-size:14px;font-weight:800;padding:4px 10px;border-radius:4px;letter-spacing:.05em;white-space:nowrap;line-height:1.2}
.opst b.idle{background:#e8f5e9;color:#1b5e20;border:1px solid #81c784}
.opst b.call{background:#d32f2f;color:#fff;border:1px solid #fff;animation:opblink 1s steps(2) infinite}
.opst b.surge{background:#ffb300;color:#3e2700;border:1px solid #fff;cursor:pointer}
@keyframes opblink{50%{background:#ff7043}}
.surgebar{display:none!important}
@media(max-width:1500px){header.top .who{display:none}.opst{margin:0 6px 0 0}.opst b{padding:3px 7px;font-size:13px}}
header.top{flex-wrap:nowrap}header.top nav{flex-wrap:nowrap;overflow:hidden;min-width:0}
@media(max-width:1500px){.top nav a{padding:5px 7px;font-size:12.5px}header.top .clock{font-size:20px;min-width:100px}header.top #evSel{max-width:170px}}
/* s18 事案一覧タブ */
.tab.ilist{font-weight:800}.tab.ilist b{display:inline-block;min-width:22px;padding:0 6px;margin-left:4px;border-radius:10px;background:var(--hd2);color:#fff;text-align:center}
.tab.ilist.wait small{color:#c62828;font-weight:800}
.wsec{margin:6px 0 8px;font-size:15px;color:var(--hd);border-left:5px solid var(--hd2);padding-left:8px}.wsec+.wlist{margin-bottom:14px}
.wcard .wu{color:#1b5e20;font-weight:700}
a.desk{text-decoration:none}a.desk:hover{border-color:var(--hd2);background:#f3f8fd}span.desk.off{opacity:.45}.desk em{font-style:normal;font-size:12px;color:var(--ac);margin-top:auto;font-weight:700}
/* s19 事案一覧：行表示 */
table.irows{width:100%;border-collapse:collapse;font-size:16px}
table.irows th{background:var(--hd2);color:#fff;text-align:left;padding:7px 10px;font-size:13px}
table.irows td{padding:10px;border-bottom:1px solid #d5dde6;vertical-align:middle}
table.irows tr[data-open]{cursor:pointer;border-left:8px solid #c5d0dc}
table.irows tr[data-open]:hover{background:#eef5fd}table.irows tr.on{background:#e3effc;outline:2px solid #1565c0}
table.irows tr.wt-赤{border-left-color:#d32f2f}table.irows tr.wt-黄{border-left-color:#f9a825}table.irows tr.wt-緑{border-left-color:#2e7d32}table.irows tr.wt-黒{border-left-color:#222}
table.irows tr.wait .ist{color:#c62828;font-weight:800}table.irows .ino{font-family:ui-monospace,Consolas,monospace;font-weight:800;font-size:17px;white-space:nowrap}
table.irows .ist{font-size:14px;color:#37474f}
/* s20 プロ向け：解説なし・キー操作・選択状態を明確に */
.hintbar{display:none!important}
.ctabs button kbd,.cg .fxo button kbd{font:700 11px/1 ui-monospace,Consolas,monospace;padding:2px 4px;border-radius:3px;border:1px solid #9fb0c2;background:#f4f7fa;color:#40556b}
.ctabs button kbd{margin-right:6px}.ctabs button.on kbd{background:#ffffff33;border-color:#ffffff88;color:#fff}
:is(.op.calling,.supcall) .cg .fxo button{position:relative;padding-left:24px;padding-right:24px}
:is(.op.calling,.supcall) .cg .fxo button kbd{position:absolute;right:4px;top:4px;opacity:.75}
:is(.op.calling,.supcall) .cg .fxo button.on kbd{background:#ffffff33;border-color:#ffffff88;color:#fff}
:is(.op.calling,.supcall) .cg .fxo button::before{content:'';position:absolute;left:7px;top:50%;width:11px;height:11px;margin-top:-6px;border:2px solid #8aa0b6;border-radius:3px;background:#fff}
:is(.op.calling,.supcall) .cg .fxo.one button::before{border-radius:50%}
:is(.op.calling,.supcall) .cg .fxo button.on::before{border-color:#fff;background:#fff;box-shadow:inset 0 0 0 3px #1565c0}
:is(.op.calling,.supcall) .cg .fxo button.on{background:linear-gradient(#1e88e5,#1565c0);color:#fff;border-color:#0d47a1;font-weight:800}
:is(.op.calling,.supcall) .cgt{font-size:12px;color:#56687a;font-weight:800;margin-bottom:3px;letter-spacing:.05em}
/* s21 消防庁プロトコル準拠・タブの大きさをそろえる */
.ctabs{display:grid!important;grid-template-columns:repeat(min(var(--n,6),6),minmax(0,1fr))!important;gap:4px}
.ctabs button{width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:1500px){.ctabs{grid-template-columns:repeat(min(var(--n,6),11),minmax(0,1fr))!important}}
.tabsbar .tab{min-width:150px;justify-content:center;text-align:center}
.seg.urg6{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:4px}.seg.urg6 button{padding:6px 0;font-weight:800}
.seg.urg6 button.v-R1,.seg.urg6 button.v-R2,.seg.urg6 button.v-R3{color:#b71c1c}.seg.urg6 button.v-Y1,.seg.urg6 button.v-Y2{color:#8a6d00}.seg.urg6 button.v-G{color:#1b5e20}
.seg.urg6 button.on.v-R1,.seg.urg6 button.on.v-R2,.seg.urg6 button.on.v-R3{background:#d32f2f;color:#fff}.seg.urg6 button.on.v-Y1,.seg.urg6 button.on.v-Y2{background:#fbc02d;color:#3e2700}.seg.urg6 button.on.v-G{background:#2e7d32;color:#fff}
.jname{display:block;font-size:13px;margin-bottom:3px}.jtags i{font-style:normal;display:inline-block;background:#fff3e0;border:1px solid #ef6c00;color:#e65100;font-size:12px;font-weight:800;padding:1px 6px;border-radius:3px;margin:0 3px 3px 0}
.seg.hide{display:none!important}
:is(.op.calling,.supcall) .citems{grid-template-columns:repeat(min(var(--g,1),5),minmax(0,1fr))!important;align-content:start}
:is(.op.calling,.supcall) .cg .fxo{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-auto-rows:minmax(40px,58px);align-content:start}
:is(.op.calling,.supcall) .citems[style*="--g:1"] .fxo{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:minmax(44px,58px)}
.seg.urg6{grid-template-columns:repeat(6,minmax(0,1fr))}.seg.urg6 button{min-width:0;margin:0}
@media (max-height:860px){:is(.op.calling,.supcall) .cg .fxo{grid-auto-rows:minmax(34px,50px)}}
:is(.op.calling,.supcall) .citems.sym{display:flex!important;flex-direction:column;gap:6px}
:is(.op.calling,.supcall) .citems.sym .fxo{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:minmax(42px,52px)}
/* s21 タブの大きさを統一（各段で同じ幅・全段で同じ高さ） */
.tabsbar .tab,.ftabs button,.ctabs button,.ltabs button{height:44px;box-sizing:border-box;font-size:15px;line-height:1.2;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabsbar{align-items:flex-end}
.tabsbar .tab{flex:0 0 176px;width:176px;min-width:0;padding:0 8px}
.tabsbar .tab small{font-size:11px}.tabsbar .tab.hist{margin-left:auto}
.ftabs{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.ftabs button{min-width:0;margin:0;padding:0 4px}
.ctabs button{padding:0 6px;position:relative}.ctabs button i{position:absolute;top:2px;right:3px}
.ltabs button{flex:0 0 150px;padding:0 8px}
/* s22 キーワード選択：項目は文字のボタン（押せば選択）。行に並べてスクロールなしで収める */
:is(.op.calling,.supcall) .citems,:is(.op.calling,.supcall) .citems.sym{display:flex!important;flex-direction:column;gap:0;overflow:auto;align-content:stretch}
:is(.op.calling,.supcall) .cg{display:flex;flex-direction:row;align-items:flex-start;gap:8px;padding:5px 2px;border-bottom:1px solid #e3e9ef;margin:0;min-height:0}
:is(.op.calling,.supcall) .cg:last-child{border-bottom:none}
:is(.op.calling,.supcall) .cgt{flex:0 0 118px;margin:0;padding-top:7px;font-size:13px;color:#33475b;font-weight:800;line-height:1.25}
:is(.op.calling,.supcall) .cg .fxo,:is(.op.calling,.supcall) .citems.sym .fxo,:is(.op.calling,.supcall) .citems[style*="--g:1"] .fxo{display:flex!important;flex-wrap:wrap;gap:5px;flex:1;min-width:0;grid-auto-rows:auto}
:is(.op.calling,.supcall) .cg .fxo button{flex:0 0 auto;width:auto;min-width:64px;height:auto;min-height:34px;padding:5px 12px!important;font-size:clamp(13px,1.05vw,17px);border-radius:17px;border:1.5px solid #9fb0c2;background:#fff;color:#1d2b3a;font-weight:700;white-space:nowrap}
:is(.op.calling,.supcall) .cg .fxo button::before{display:none!important}
:is(.op.calling,.supcall) .cg .fxo button kbd{display:none}
:is(.op.calling,.supcall) .cg .fxo button:hover{border-color:#1565c0;background:#f0f6fd}
:is(.op.calling,.supcall) .cg .fxo button.on{background:#1565c0;border-color:#0d47a1;color:#fff}
:is(.op.calling,.supcall) .cg .fxo.one button.on{background:#0d47a1}
:is(.op.calling,.supcall) .citems[style*="--g:1"] .cgt{display:none}
:is(.op.calling,.supcall) .citems[style*="--g:1"] .fxo button{min-height:44px;font-size:clamp(14px,1.15vw,18px);padding:6px 16px!important}
:is(.op.calling,.supcall) .ctabs button kbd{display:none}
/* 小さい画面（4分割など）でも収める */
@media (max-height:700px),(max-width:1100px){
 :is(.op.calling,.supcall) .cgt{flex-basis:84px;font-size:12px;padding-top:5px}
 :is(.op.calling,.supcall) .cg{padding:3px 1px;gap:5px}
 :is(.op.calling,.supcall) .cg .fxo{gap:3px}
 :is(.op.calling,.supcall) .cg .fxo button{min-height:28px;padding:3px 9px!important;font-size:12.5px;min-width:44px}
 :is(.op.calling,.supcall) .citems[style*="--g:1"] .fxo button{min-height:32px;font-size:13px}
 .tabsbar .tab,.ftabs button,.ctabs button{height:34px;font-size:13px}
 .tabsbar .tab{flex-basis:130px;width:130px}
 :is(.op.calling,.supcall) .callgrid{grid-template-columns:minmax(0,1fr) 250px}
 :is(.op.calling,.supcall) .callR input,:is(.op.calling,.supcall) .callR textarea{padding:3px 6px;font-size:13px}
 :is(.op.calling,.supcall) .jlv.big{height:38px;width:60px;font-size:22px}
 :is(.op.calling,.supcall) .callR .big2{padding:6px;font-size:13px}
 :is(.op.calling,.supcall) #callPlan{display:none}
 .cchosen{display:none}
}
@media (max-width:1100px){header.top nav,header.top .who{display:none}header.top .clock{font-size:17px;min-width:84px}header.top #evSel{max-width:150px}header.top .chip{padding:3px 6px;font-size:12px}}
@media (max-height:700px){
 .fkeys{padding:2px;gap:2px}.fkeys button{padding:2px 1px;font-size:11px;flex-direction:row;gap:3px;justify-content:center}.fkeys i{margin:0;font-size:10px}
 header.top{min-height:0;padding-top:3px;padding-bottom:3px}.callph{padding:3px 8px!important;font-size:13px}
 :is(.op.calling,.supcall) .callR .cbox{padding:3px 6px}:is(.op.calling,.supcall) .callR .ct{display:none}
 :is(.op.calling,.supcall) .seg.urg6 button{padding:3px 0;font-size:12px}
 .sbar{font-size:11px;padding:1px 8px}
}
:is(.op.calling,.supcall) .cg{flex-shrink:0}
:is(.op.calling,.supcall) .callR{overflow:auto}:is(.op.calling,.supcall) .callR>.btnrow{position:sticky;bottom:0;background:#fff;padding-top:3px}
@media (max-height:700px){:is(.op.calling,.supcall) .fkeys{display:none}:is(.op.calling,.supcall) .tabsbar .tab{height:30px}:is(.op.calling,.supcall) .ftabs button{height:32px}:is(.op.calling,.supcall) .ctabs button{height:30px}:is(.op.calling,.supcall) .cg .fxo button{min-height:26px;padding:2px 8px!important}}
/* s22 項目 → キーワードの2段選択（スクロールなし） */
:is(.op.calling,.supcall) .citems.twol{display:grid!important;grid-template-columns:minmax(170px,22%) 1fr!important;gap:8px;align-content:stretch;overflow:hidden}
:is(.op.calling,.supcall) .citems.one1{display:flex!important;overflow:hidden}
.kgrp{display:grid;grid-template-rows:repeat(var(--k,5),minmax(0,1fr));gap:4px;min-height:0}
.kgrp button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;text-align:left;padding:4px 10px;min-height:0;max-height:76px;border:1px solid var(--ln);border-left:6px solid #b0bec5;background:linear-gradient(#fff,#eef2f6);overflow:hidden}
.kgrp button b{font-size:16px}.kgrp button small{font-size:12px;color:#1565c0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.kgrp button.has{border-left-color:#1e88e5}.kgrp button.on{background:var(--hd2);color:#fff;border-color:var(--hd2);border-left-color:#ffb300}.kgrp button.on small{color:#ffe082}
:is(.op.calling,.supcall) .kopts{flex:1;min-height:0;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important;grid-auto-rows:minmax(48px,72px)!important;gap:6px;align-content:start;overflow:hidden}
:is(.op.calling,.supcall) .kopts button{position:relative;min-width:0;font-size:clamp(14px,1.2vw,19px);padding:4px 26px;white-space:normal;line-height:1.2}
:is(.op.calling,.supcall) .kopts button kbd{position:absolute;right:4px;top:4px;opacity:.75}
:is(.op.calling,.supcall) .kopts button::before{content:'';position:absolute;left:8px;top:50%;width:11px;height:11px;margin-top:-6px;border:2px solid #8aa0b6;border-radius:3px;background:#fff}
:is(.op.calling,.supcall) .kopts.one button::before{border-radius:50%}
:is(.op.calling,.supcall) .kopts button.on{background:linear-gradient(#1e88e5,#1565c0);color:#fff;border-color:#0d47a1;font-weight:800}
:is(.op.calling,.supcall) .kopts button.on::before{border-color:#fff;box-shadow:inset 0 0 0 3px #1565c0}:is(.op.calling,.supcall) .kopts button.on kbd{background:#ffffff33;color:#fff;border-color:#ffffff88}
@media (max-height:860px){:is(.op.calling,.supcall) .kopts{grid-auto-rows:minmax(40px,58px)!important}.kgrp button b{font-size:14px}}
/* 4分割・半画面（960×520 程度）でもスクロールなし */
@media (max-height:620px),(max-width:1100px){
 .tabsbar .tab,.ftabs button,.ctabs button,.ltabs button{height:34px;font-size:13px}
 .tabsbar .tab{flex-basis:132px;width:132px}.tabsbar .tab small{display:none}
 :is(.op.calling,.supcall) .callph{padding:3px 8px;font-size:13px}
 .ctabs button kbd{display:none}
 :is(.op.calling,.supcall) .callR{gap:3px}:is(.op.calling,.supcall) .cbox{padding:3px 6px}:is(.op.calling,.supcall) .callR .ct{display:none}
 :is(.op.calling,.supcall) .callR input{padding:4px 6px;font-size:13px}:is(.op.calling,.supcall) .callR textarea{height:28px;min-height:28px;font-size:13px;padding:3px 6px}
 :is(.op.calling,.supcall) .jlv.big{height:34px;width:58px;font-size:20px}.jname{font-size:11px}.jtags i{font-size:10px}
 :is(.op.calling,.supcall) .cprbtn{padding:4px 8px;font-size:13px}.seg.urg6 button{padding:3px 0;font-size:12px}
 :is(.op.calling,.supcall) .callR .big2{padding:6px;font-size:13px}
 :is(.op.calling,.supcall) .kopts{grid-auto-rows:minmax(34px,46px)!important;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important}
 :is(.op.calling,.supcall) .kopts button{font-size:13px}.kgrp button b{font-size:13px}.kgrp button small{font-size:11px}
 :is(.op.calling,.supcall) #dup .warnbox{font-size:11px;padding:3px}
}
@media (max-height:620px),(max-width:1100px){
 :is(.op.calling,.supcall) .jname,:is(.op.calling,.supcall) .jtags{display:none}
 :is(.op.calling,.supcall) .jrow{display:flex;align-items:center;gap:6px}:is(.op.calling,.supcall) .jcat{flex:1;display:flex;justify-content:flex-end}
 :is(.op.calling,.supcall) .locrow button{height:auto;align-self:stretch;padding:2px 8px}:is(.op.calling,.supcall) .locrow{align-items:stretch}
 :is(.op.calling,.supcall) .callR .big2{padding:5px 4px;font-size:12px;line-height:1.2}
 :is(.op.calling,.supcall) .ftabs{padding-top:3px}.ftabs button{height:30px!important}
 :is(.op.calling,.supcall) .callR input{margin:1px 0}
}
/* s23 指令台の4装置（①自動出動指定 ②地図等検索 ③受付補助 ④多目的表示） */
.multi{display:flex;flex-direction:column;gap:6px;padding:6px;min-height:420px}
.mtabs,.suptabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;border-bottom:3px solid var(--hd2);flex:none}
.suptabs{grid-template-columns:repeat(2,minmax(0,180px));margin-bottom:6px}
.mtabs button,.suptabs button{height:44px;font-size:15px;font-weight:800;border-radius:5px 5px 0 0;border:1px solid var(--ln);border-bottom:none;background:linear-gradient(#fff,#e9eef3);position:relative}
.mtabs button.on,.suptabs button.on{background:var(--hd2);color:#fff;border-color:var(--hd2)}
.mtabs button i{position:absolute;top:3px;right:6px;font-style:normal;background:#d32f2f;color:#fff;border-radius:9px;padding:0 6px;font-size:12px}
.mbody{flex:1;min-height:0;display:flex;flex-direction:column}.mbody>.pane,.mbody>.fleet,.mbody>.elist{flex:1;min-height:0}
.mbody .fleet,.mbody .elist{height:100%!important}
.supbody{display:flex;flex-direction:column}.supbody .supw{flex:1;min-height:0}
.bwrap.bmemo{grid-template-columns:1fr}.bstage.memo{aspect-ratio:auto!important;width:100%;height:100%!important;max-height:none!important;background:#fff repeating-linear-gradient(#fff 0 39px,#d7e3ef 39px 40px);border:1px solid #c5d0dc;border-radius:4px}
.supw.memo .bview{height:100%}

/* s24 ③受付補助で聴取（①自動出動指定は聴取内容の一覧だけ） */
.suptabs{grid-template-columns:repeat(var(--t,2),minmax(0,180px))}
.supcall{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}
.supct{display:flex;align-items:stretch;gap:8px;flex:none}.supct .ftabs{flex:1;margin:0}
.supjudge{flex:none;display:flex;align-items:center;gap:6px;padding:0 10px;border:2px solid #c5d0dc;border-radius:6px;background:#fff;min-width:200px}
.supjudge .ct{font-size:12px;font-weight:800;color:#56687a}.supjudge .jlv{font-size:24px;padding:2px 10px;border-radius:4px;min-width:56px;text-align:center}.supjudge small{font-size:11px;font-weight:700}
.supcall .fxarea{flex:1;min-height:0;display:flex;flex-direction:column}
.supcall .citems{flex:1;min-height:0}
.fxsum{display:flex;flex-direction:column;height:100%;border:2px solid var(--hd2);border-radius:6px;background:#fff;overflow:hidden}
.fxsumh{display:flex;align-items:center;gap:10px;background:var(--hd2);color:#fff;font-weight:800;padding:6px 10px;font-size:15px}.fxsumh span{flex:1;font-size:12px;color:#ffe082}
.fxsum table{width:100%;border-collapse:collapse;font-size:16px}.fxsum th{width:150px;text-align:left;color:#40556b;font-size:13px;padding:7px 10px;border-bottom:1px solid #e3e9ef;vertical-align:top}
.fxsum td{padding:5px 8px;border-bottom:1px solid #e3e9ef}.fxsum td b{display:inline-block;margin:2px 4px 2px 0;padding:3px 10px;border-radius:4px;background:#1565c0;color:#fff;font-size:15px}
.fxsum th{background:#f3f6f9!important;color:#40556b!important}
.callscr.remote>.ftabs{display:none!important}
/* ===== s25 指令台4装置（①自動 ②地図 ③受補 ④支援）の画面構成 ===== */
body.jd{background:#d9dee4}
body.jd header.top nav{display:none}
body.jd .tabsbar,body.jd .dynbar,body.jd .fkeys{display:none!important}
.jdwrap{display:flex;gap:6px;padding:4px 4px 0;align-items:stretch}
.jdwrap>#app{flex:1;min-width:0}
.jdmenu{flex:0 0 138px;display:flex;flex-direction:column;gap:4px;background:#2f343b;padding:6px;border-radius:4px;margin-bottom:28px;overflow:auto}
.jdmenu button{position:relative;min-height:40px;padding:4px 6px;border-radius:3px;border:1px solid #1d2126;background:linear-gradient(#5a616b,#3f454d);color:#fff;font-weight:800;font-size:14px;text-align:center;line-height:1.15}
.jdmenu button small{display:block;font-size:10px;font-weight:600;color:#c9d1da}
.jdmenu button:hover:not(:disabled){background:linear-gradient(#6c7480,#4a5059)}
.jdmenu button.on{background:linear-gradient(#2a7bd3,#1559a8)}
.jdmenu button.go{background:linear-gradient(#2fa45a,#1b7f3b)}
.jdmenu button.warn{background:linear-gradient(#f5c33b,#d39b06);color:#2b1d00}.jdmenu button.warn small{color:#5b4300}
.jdmenu button.red{background:#fff;color:#c62828;border:3px solid #e53935}.jdmenu button.red small{color:#c62828}
.jdmenu button.red.blink{animation:opblink 1s steps(2) infinite;background:#e53935;color:#fff}
.jdmenu button.dark{background:linear-gradient(#2b2f35,#1d2126);color:#dfe5ec}
.jdmenu button:disabled{opacity:.45}
.jdsep{height:6px}
.jdtag{position:fixed;top:4px;right:330px;z-index:40;background:#cdb58c;color:#3b2a10;border:2px solid #8e7a55;font:800 15px/1 ui-monospace,Consolas,monospace;padding:5px 10px;letter-spacing:.08em;border-radius:2px;pointer-events:none}
body.jd .sbar{background:#141a22;color:#dfe5ec;gap:0;padding:0;font-size:13px;height:26px}
body.jd .sbar span{padding:4px 12px;border-right:1px solid #3a4452;white-space:nowrap}
body.jd .sbar .c1{font-weight:800;min-width:110px;background:#0b1016}body.jd .sbar .c2{font-family:ui-monospace,Consolas,monospace;font-weight:800;min-width:90px}
body.jd .sbar .msg{flex:1;overflow:hidden;text-overflow:ellipsis}
body.jd .op{height:auto}
/* ① 自動出動指定 */
.jd1{display:grid;grid-template-rows:auto minmax(0,1fr) 168px;height:100%;gap:6px;background:#e9edf1;padding:8px;border:1px solid #b9c3ce;border-radius:4px}
.jdtop{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;border-bottom:4px solid #3a3f47;padding-bottom:8px}
.jdf,.jdf2,.jdr{display:grid;grid-template-columns:72px 1fr 2fr;gap:4px 6px;align-items:center;font-size:14px}
.jdf2,.jdr{grid-template-columns:72px 1fr}
.jdf label,.jdf2 label,.jdr label{color:#5c6a78;font-size:12px;text-align:right;font-weight:700}
.fv{background:#fff;border:1px solid #9fb0c2;box-shadow:inset 0 1px 2px #0002;padding:5px 8px;min-height:30px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fv.w3{grid-column:2/4}.fv.sm{font-size:12px;font-weight:500}.fv small{color:#56687a;font-weight:500}.fv.mono{font-family:ui-monospace,Consolas,monospace}
.chips{grid-column:2/4;display:flex;gap:4px}.chips span{width:34px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid #9fb0c2;background:#f4f6f8;color:#9aa6b2;font-weight:800;border-radius:2px}
.chips span.on{background:#1565c0;color:#fff;border-color:#0d47a1}
.jdmode{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.jdmode>span:first-child{border:1px solid #9fb0c2;background:#fff;padding:5px 10px;font-weight:800;color:#1565c0;border-radius:3px}
.mainst{margin-left:auto;font-size:15px}
.jdno{display:flex;align-items:stretch;border:1px solid #3a3f47;border-radius:3px;overflow:hidden}.jdno button{border:none;border-radius:0;background:#e0e5ea;padding:0 10px;font-size:16px}
.jdno div{background:#1d2733;color:#fff;padding:3px 14px;text-align:center}.jdno small{display:block;font-size:10px;color:#9fb3c8}.jdno b{font:800 20px/1.1 ui-monospace,Consolas,monospace}
.jdmid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;min-height:0}
.jdl{display:flex;flex-direction:column;gap:5px;min-height:0}
.jdh{display:flex;align-items:center;gap:10px}.jdh b{font-size:15px;color:#1d2b3a;white-space:nowrap}.jdh span{font-size:12px;color:#5c6a78;white-space:nowrap}.jdh input{flex:1;min-width:0;padding:5px 8px}
.jdplan{display:flex;align-items:center;gap:8px;font-size:13px}.jdplan>span:first-child{color:#5c6a78;font-weight:700}.jdplan b{background:#fff;border:1px solid #9fb0c2;padding:3px 10px}.jdplan em{color:#c62828;font-style:normal;font-weight:800}.jdplan .chk{margin-left:auto}
.jdtbls{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:auto;align-items:start}
table.jdt{width:100%;border-collapse:collapse;background:#fff;font-size:14px}
table.jdt th{background:#c9d1da;color:#33475b;font-size:12px;padding:5px 6px;border:1px solid #9fb0c2;text-align:center}
table.jdt td{border:1px solid #c5d0dc;padding:4px 6px;height:32px}
table.jdt tr.grp td{background:#1e88e5;color:#fff;font-weight:800}table.jdt tr.grp.dark td{background:#222;color:#fff}
table.jdt td.nm{font-weight:700;white-space:nowrap}table.jdt td.nm label{display:flex;align-items:center;gap:6px;cursor:pointer}
table.jdt td.st{width:54px;text-align:center;font-weight:800;background:#f6c6cf}table.jdt td.kd{width:64px;text-align:center;font-size:12px;color:#40556b}
table.jdt td.ds,table.jdt td.tm{width:72px;text-align:right;font-family:ui-monospace,Consolas,monospace}table.jdt td.ds.near{color:#c62828;font-weight:800}
table.jdt tr.on td.nm{background:#d6e8fb}
table.jdt tr.s-出動 td.st,table.jdt tr.s-現着 td.st{background:#ffcc80}table.jdt tr.s-搬送 td.st,table.jdt tr.s-病院着 td.st{background:#ff8a65;color:#fff}table.jdt tr.s-引揚 td.st{background:#aed581}
.jdr{align-content:start;border-left:1px solid #c5d0dc;padding-left:10px}
.jdtg{grid-column:1/-1;display:grid;grid-template-columns:72px 1fr auto auto;gap:6px;align-items:center;border:1px solid #9fb0c2;background:#f7f9fb;padding:6px;border-radius:3px}
.jdtg b{background:#fff;border:1px solid #9fb0c2;padding:4px 8px}.jdtg span{background:#fff;border:1px solid #9fb0c2;padding:4px 8px;font-weight:700}
.jdchk{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.jdbtns{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:5px}.jdbtns button{padding:9px 4px;font-weight:800}
.jdgo{grid-column:1/-1;height:64px;font-size:22px;font-weight:900;background:#fff;color:#b71c1c;border:4px solid #e53935;border-radius:4px;margin-top:4px}
.jdgo:hover:not(:disabled){background:#ffebee}
.jdbot{display:flex;flex-direction:column;min-height:0;border:1px solid #b9c3ce;background:#fff;border-radius:3px}
.jdbt{display:flex;align-items:center;gap:3px;background:#dfe5eb;padding:3px 4px 0;border-bottom:2px solid #3a3f47}.jdbt button{border-radius:3px 3px 0 0;border-bottom:none;padding:5px 14px;font-weight:800}.jdbt button.on{background:#3a3f47;color:#fff}
.jdbt .sp{flex:1}.jdbt a{font-size:13px;margin:0 6px}
.jdbb{flex:1;min-height:0;overflow:auto;padding:6px}.jdbb .times{margin:0 0 6px}.jdbb .log{max-height:none}
.jdbb .ulist{display:flex;flex-wrap:wrap;gap:6px}.jdbb .ulist .u{border:1px solid #c5d0dc;border-radius:3px;padding:3px 8px;background:#f7f9fb}
.jdidle{display:flex;flex-direction:column;gap:8px;height:100%;background:#e9edf1;padding:10px;border:1px solid #b9c3ce;border-radius:4px}
.jdcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;align-content:start;overflow:auto}
.jdc{text-align:left;padding:0;border:1px solid #9fb0c2;background:#fff;border-radius:3px;overflow:hidden}
.jdc .ch{background:#f3c5cf;color:#7f0f22;font-weight:800;padding:5px 8px;font-size:13px;text-align:center}
.jdc.s-出動 .ch,.jdc.s-現着 .ch,.jdc.s-搬送 .ch,.jdc.s-病院着 .ch{background:#a5d6a7;color:#124d1c}.jdc.s-引揚 .ch{background:#cfd8dc;color:#263238}
.jdc .cb{padding:8px 10px;display:flex;flex-direction:column;gap:3px}.jdc .cb b{font-size:16px}.jdc .cb small{color:#56687a}
.jdc.wt-赤{border-left:8px solid #d32f2f}.jdc.wt-黄{border-left:8px solid #f9a825}.jdc.wt-緑{border-left:8px solid #2e7d32}
/* ④ 多目的表示 */
body.jd .mtabs{display:none}
.jdunits{display:flex;flex-direction:column;gap:8px;height:100%;background:#fff;border:1px solid #b9c3ce;border-radius:4px;padding:10px}
.jduh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.jduh select{min-width:200px}
.jduh .cnt{display:flex;align-items:center;gap:6px;font-size:12px;color:#5c6a78}.jduh .cnt b{background:#fff;border:1px solid #9fb0c2;padding:4px 12px;font:800 16px ui-monospace,Consolas,monospace;color:#1d2b3a}
.jdug{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-content:start}
table.jdut{width:100%;border-collapse:collapse;font-size:15px}
table.jdut th{background:#222;color:#fff;text-align:left;padding:7px 10px;font-size:15px}
table.jdut td{border:1px solid #c5d0dc;padding:6px 10px;height:34px;background:#f4f6f8}
table.jdut td:nth-child(2){width:70px;text-align:center;font-weight:800}table.jdut td.fl{width:46px;text-align:center;font-weight:800}
table.jdut tr.t-go td:not(.fl){background:#ffcc80}table.jdut tr.t-tr td:not(.fl){background:#ff7043;color:#fff}table.jdut tr.t-back td:not(.fl){background:#9ccc65}
table.jdut tr.t-off td.fl{background:#f4b6c2;color:#7f0f22}table.jdut tr.t-off td{color:#8a96a3}
.jdtalk .pbody{display:flex;flex-direction:column;gap:8px;height:100%}
#talkWrap{flex:1;min-height:0;display:flex}.talk{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:4px}
.tb{max-width:72%;border-radius:8px;padding:8px 12px;background:#eef3f8;border:1px solid #c5d0dc}.tb.pre{background:#fff3e0;border-color:#ef6c00}
.tbh{font-size:12px;color:#56687a}.tbh b{margin-right:6px;color:#1d2b3a}.tbt{font-size:15px;font-weight:700;margin:3px 0}.tba{font-size:12px;color:#1b5e20;font-weight:700}
.talkf{display:flex;gap:8px;align-items:center}.talkf input{flex:1}
.memopad{width:100%;height:100%;min-height:300px;font-size:16px;line-height:1.6;resize:none}
.mbody>.pane{height:100%}
/* ② 地図等検索 */
.jdfk{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;background:#2f343b;padding:3px;border-radius:3px}
.jdfk button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 2px;min-height:40px;font-weight:800;font-size:13px;background:linear-gradient(#f6f8fa,#d9dfe6);border:1px solid #1d2126;border-radius:2px}
.jdfk button small{font-size:10px;color:#5c6a78}.jdfk button:disabled{opacity:.35}
body.jd .info .maptools{display:none}
.jdzoom{position:absolute;left:8px;top:90px;z-index:500;display:flex;flex-direction:column;gap:3px}.jdzoom button{width:52px;padding:5px 0;font-weight:800;background:#f4f6f8;border:1px solid #6f7d8b}
.jdvt{position:absolute;right:0;top:0;bottom:24px;z-index:500;display:flex;flex-direction:column;gap:2px;background:#3a3f47;padding:2px}
.jdvt button{writing-mode:vertical-rl;flex:1;max-height:150px;background:linear-gradient(90deg,#5a616b,#3f454d);color:#fff;font-weight:800;border:1px solid #1d2126;padding:6px 3px;letter-spacing:.2em}
.jdll{position:absolute;left:0;bottom:0;right:34px;z-index:500;background:#1d2733;color:#dfe5ec;font:700 12px ui-monospace,Consolas,monospace;padding:4px 10px}
body.noside .info{grid-template-columns:minmax(0,1fr)!important}body.noside .info aside.side{display:none}
.mk.k-near{background:#fff;color:#1d2b3a;border:2px solid #1d2b3a;transform:translate(-50%,-50%);border-radius:2px;padding:0 5px}
.mk.k-rally{background:#1565c0}
/* ③ 受付補助 */
.jd3{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:8px;height:100%;min-height:0}
.jd3l,.jd3r{display:flex;flex-direction:column;gap:5px;min-height:0;background:#eef1f4;border:1px solid #b9c3ce;border-radius:4px;padding:6px}
.jd3h{font-weight:800;color:#1d2b3a}
.jd3tb{display:flex;gap:4px;align-items:stretch;flex-wrap:wrap}.jd3tb button{padding:6px 12px;font-weight:700;background:linear-gradient(#fff,#dfe5eb)}
.jd3st{margin-left:auto;display:flex;flex-direction:column;align-items:center;background:#c9d1da;padding:2px 10px;border-radius:3px;min-width:140px}.jd3st small{font-size:10px;color:#33475b;font-weight:800}
.jd3msg{display:flex;align-items:center;gap:8px;font-size:13px}.jd3msg>span{color:#5c6a78;font-weight:700;white-space:nowrap}.msgbox{flex:1;background:#fff;border:1px solid #9fb0c2;padding:4px 8px;min-height:30px;display:flex;align-items:center;gap:6px}
.jd3b{flex:1;min-height:0;display:flex;gap:6px}
.tplsel,.ptools{flex:0 0 120px;display:flex;flex-direction:column;gap:4px}.ptools{flex-basis:110px;background:#dfe5eb;padding:6px;border-radius:3px}
.pth{font-size:12px;font-weight:800;color:#33475b;margin-top:4px}
.tplsel button,.ptools button[data-pm]{display:flex;align-items:center;gap:6px;padding:7px 8px;font-weight:700;text-align:left;background:linear-gradient(#fff,#e3e8ee)}
.tplsel button i,.ptools button[data-pm] i{width:12px;height:12px;border-radius:50%;border:2px solid #8aa0b6;background:#fff;flex:none}
.tplsel button.on i,.ptools button[data-pm].on i{box-shadow:inset 0 0 0 3px #1565c0;border-color:#1565c0}.tplsel button.on,.ptools button.on{border-color:#1565c0}
.pws,.pcs{display:flex;flex-direction:column;gap:3px}.pws button,.pcs button{height:30px;display:flex;align-items:center;justify-content:center;background:#fff}
.pws button b{display:block;border-radius:50%;background:#111}.pcs button b{display:block;width:40px;height:20px}
.pws button.on,.pcs button.on{outline:3px solid #1565c0}
.padbox{flex:1;min-width:0;min-height:0;background:#fff;border:1px solid #9fb0c2;padding:6px;display:flex}
.pads{flex:1;display:flex;gap:6px;min-height:0;justify-content:center}
.pst{position:relative;background:#fff;border:1px solid #c5d0dc;min-height:0;height:100%}
.pads.v1 .pst{flex:1}.pads.te .pst[data-v=te]{flex:1.4}
.pst[data-v=f],.pst[data-v=b]{aspect-ratio:100/222;flex:none}
.pst svg,.pst canvas{position:absolute;inset:0;width:100%;height:100%}.pst canvas{touch-action:none;cursor:crosshair}
.pst[data-v=f] svg,.pst[data-v=b] svg{top:18px;height:calc(100% - 18px)}
.pcap{position:absolute;top:0;left:0;right:0;text-align:center;font-weight:800;font-size:12px;color:#33475b}
.pst[data-v=m]{background:#fff repeating-linear-gradient(#fff 0 39px,#d7e3ef 39px 40px)}
.prect{position:absolute;border:2px dashed #c62828;background:#c628281a;pointer-events:none}
svg.tpl line,svg.tpl .fr{stroke:#7d8b99;stroke-width:.6;fill:none}svg.tpl text{font-size:8px;fill:#37474f;font-weight:600}svg.tpl .cb{fill:#fff;stroke:#5c6a78;stroke-width:.6}
.helpbar{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.helpbar select{flex:1;min-width:0}
.helppad{flex:1;min-height:0;display:flex;background:#fff;border:1px solid #9fb0c2}.helppad .pads{padding:0}.helppad .pst{flex:1}
.msgpop{position:fixed;right:160px;bottom:40px;width:460px;height:360px;z-index:220;background:#fff;border:3px solid #1565c0;border-radius:6px;box-shadow:0 8px 30px #0006;display:flex;flex-direction:column}
.mph{display:flex;align-items:center;gap:8px;background:#1565c0;color:#fff;font-weight:800;padding:6px 10px}.mph button{margin-left:auto}.mpb{flex:1;display:flex;padding:6px}.mpb .pst{flex:1}
body.jd .supwin{padding:0}
.jdtag{position:static;margin:0 8px}
table.jdt tr td{color:#1d2b3a}
body.jd{display:flex;flex-direction:column;height:100vh;overflow:hidden}
body.jd .jdwrap{flex:1;min-height:0;padding-bottom:28px}
body.jd .jdmenu{margin-bottom:0}
body.jd #app{min-height:0;overflow:hidden}
@media (max-height:860px){.jdmenu button{min-height:30px;font-size:12.5px;padding:2px 4px}.jdmenu button small{font-size:9px}.jdsep{height:2px}}
/* s26 1枚の画面に4分割（指令台）・埋め込み画面 */
.quad4{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px;background:#1b1f24;padding:4px;border-radius:4px}
.quad4 iframe{width:100%;height:100%;border:2px solid #3a3f47;border-radius:2px;background:#d9dee4;transition:border-color .2s}
.quad4 iframe.flash{border-color:#ffb300;box-shadow:0 0 0 3px #ffb300}
body.embed header.top,body.embed .alarm{display:none!important}
body.embed .jdtag.fixed{position:fixed;top:2px;right:146px;z-index:60;font-size:12px;padding:3px 7px;opacity:.95}
body.embed .jdwrap{padding:2px 2px 0}
body.embed .sbar{height:22px;font-size:11px}body.embed .sbar span{padding:3px 8px}
/* 小さい画面（4分割の1面など）での①〜④ */
@media (max-width:1100px),(max-height:620px){
 .jdmenu{flex-basis:92px;padding:3px;gap:2px}.jdmenu button{min-height:26px;font-size:11px;padding:2px 3px}.jdmenu button small{display:none}.jdsep{height:2px}
 .jd1{padding:4px;gap:3px;grid-template-rows:auto minmax(0,1fr) 92px}
 .jdtop{gap:8px;padding-bottom:4px;border-bottom-width:3px}
 .jdf,.jdf2,.jdr{grid-template-columns:52px 1fr 2fr;gap:2px 4px;font-size:11.5px}.jdf2,.jdr{grid-template-columns:52px 1fr}
 .jdf label,.jdf2 label,.jdr label{font-size:10px}
 .fv,.jdf input,.jdf textarea,.jdf2 input{min-height:22px;padding:2px 5px;font-size:11.5px}
 .chips span{width:22px;height:20px;font-size:10px}
 .jdno b{font-size:14px}.jdno div{padding:1px 8px}.jdmode{gap:3px}.jdmode>span:first-child{padding:2px 5px}.mainst{font-size:11px}
 .jdmid{grid-template-columns:minmax(0,1fr) 190px;gap:6px}
 .jdh b{font-size:11.5px}.jdh span{display:none}.jdh input{padding:2px 5px;font-size:11px}.jdplan{font-size:10.5px;gap:4px}
 table.jdt{font-size:11px}table.jdt td{height:20px;padding:1px 4px}table.jdt th{font-size:10px;padding:2px}
 table.jdt td.st{width:34px}table.jdt td.kd{width:42px;font-size:10px}table.jdt td.ds,table.jdt td.tm{width:46px}
 .jdtg{grid-template-columns:52px 1fr auto auto;padding:3px;gap:3px}.jdtg b,.jdtg span{padding:2px 4px;font-size:11px}
 .jdbtns{gap:3px}.jdbtns button{padding:4px 2px;font-size:11px}.jdgo{height:40px;font-size:16px;border-width:3px;margin-top:2px}
 .jdbt button{padding:2px 8px;font-size:11px}.jdbt a{font-size:11px}.jdbb{padding:3px}
 .jdbb .times .tm{min-width:58px;padding:2px}.jdbb .times .tm b{font-size:11px}
 .jdcall .ftabs button{height:24px!important;font-size:11px}
 .jdcall .judge .jlv.big{height:28px;width:46px;font-size:15px}.jdcall .seg.urg6 button{padding:1px 0;font-size:10px}
 .jdcards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:5px}.jdc .cb{padding:4px 6px}.jdc .cb b{font-size:13px}
 .jdfk button{min-height:28px;font-size:10px}.jdfk button small{display:none}
 .jd3{grid-template-columns:minmax(0,1fr) 180px;gap:4px}.jd3tb button{padding:3px 6px;font-size:11px}.jd3st{min-width:90px}
 .tplsel,.ptools{flex-basis:78px}.tplsel button,.ptools button[data-pm]{padding:3px 4px;font-size:11px}.pws button,.pcs button{height:20px}
 .suptabs button,.mtabs button{height:30px;font-size:12px}
 .jdunits{padding:5px}table.jdut{font-size:12px}table.jdut td{height:24px;padding:2px 6px}table.jdut th{padding:3px 6px;font-size:12px}
 .jduh .cnt b{font-size:12px;padding:2px 6px}
}
/* ① 受理中（受付）の画面 */
.jdcall{grid-template-rows:auto minmax(0,1fr) minmax(0,150px)}
.jdcall:not(.remote){grid-template-rows:auto minmax(0,.8fr) minmax(0,1.3fr)}
.jdcall .ctrow .ftabs{margin:0;padding:0;border:none;background:none}.jdcall .ctrow .ftabs button{height:32px!important;font-size:14px;border-radius:3px;border:1px solid #9fb0c2}
.jdcall .locrow{display:flex;gap:4px}.jdcall .locrow .srch{flex:1;position:relative}.jdcall .locrow input{width:100%}
.jdcall .jdf input,.jdcall .jdf textarea,.jdcall .jdf2 input{width:100%;background:#fff;border:1px solid #9fb0c2}
.jdcall .jdf2 .pt{display:flex;gap:4px;align-items:center}.jdcall .jdf2 .row2{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.jdcall .callon{background:#c62828!important;color:#fff!important;border:none!important;animation:opblink 1.2s steps(2) infinite}
.jdcall .judge{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.jdcall .judge #judgeBox .ct{display:none}.jdcall .judge #judgeBox .jrow{display:flex;align-items:center;gap:6px}
.jdcall .judge .jlv.big{height:34px;width:60px;font-size:20px}.jdcall .judge .seg{margin:0;flex:1;min-width:200px}
.jdcallplan{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px}
.jdr2{display:grid;grid-template-columns:72px 1fr;gap:4px 6px;align-items:center}
.jdcall .jdbb{padding:0}.jdcall .jdbb .fxarea{height:100%;display:flex;flex-direction:column}
/* ② 検索 */
.jdsrch{display:flex;gap:4px;align-items:stretch;margin:4px 0}.jdsrch .srch{flex:1;position:relative}.jdsrch input{width:100%}
.jdsrch .srchr{position:absolute;left:0;right:0;top:100%;z-index:900;background:#fff;border:1px solid #9fb0c2;box-shadow:0 4px 14px #0003;max-height:320px;overflow:auto}
.jdsrch .srchr button{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid #eef1f4;border-radius:0;padding:7px 10px;background:#fff}.jdsrch .srchr small{color:#1565c0;font-weight:800;margin-right:4px}
.jdsrch>button{padding:4px 10px;font-weight:800}
.timg{display:block;margin:8px 0;text-decoration:none}.timg img{width:100%;border:1px solid #c5d0dc;border-radius:4px;background:#fff}.timg small{color:#56687a}
.jdf .w3{grid-column:2/4;min-width:0}
.jdcall .jdf .ctrow .ftabs{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
@media (max-width:1100px),(max-height:620px){
 .info{grid-template-columns:minmax(0,1fr) 280px!important}
 .jdcall .ctrow .ftabs button{height:24px!important;font-size:11px}
 .jdcall .locrow button{padding:2px 6px;font-size:11px}
 .jdcall{grid-template-rows:auto minmax(0,1fr) 96px!important}
 .jdcall:not(.remote){grid-template-rows:auto minmax(0,.7fr) minmax(0,1.3fr)!important}
 .jdcall .jdmode{font-size:11px}.jdcall .jdmode button{padding:1px 6px;font-size:11px}
 .jdr2{grid-template-columns:52px 1fr;gap:2px 4px;font-size:11px}
 .jdsrch>button{padding:2px 6px;font-size:11px}
}
.jdcall #callPlan{display:flex!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden}
.jdcall .jdr{display:flex;flex-direction:column;gap:4px}
.jdcall .jdl{min-height:0;overflow:hidden}
@media (max-width:1100px),(max-height:620px){
 .jdcall .jdf input,.jdcall .jdf textarea,.jdcall .jdf2 input{height:24px!important;min-height:24px!important;padding:1px 6px!important;font-size:12px!important;margin:0!important;resize:none}
 .jdcall .jdtop{gap:6px}.jdcall .jdf,.jdcall .jdf2{gap:2px 4px}
 .jdcall .chosen{padding:1px 6px;font-size:13px}.jdcall .chosen b{font-size:13px}
 .jdcall .judge{gap:3px}.jdcall .judge .seg{min-width:150px}.jdcall .cprbtn{padding:2px 6px!important;font-size:11px!important}
 .jdcall{grid-template-rows:auto minmax(0,1fr) 70px!important}
 .jdcall .jdr2 label:nth-of-type(1),.jdcall .jdr2 .fv:nth-of-type(1),.jdcall .jdr2 label:nth-of-type(2),.jdcall .jdr2 .fv:nth-of-type(2){display:none}
 .jdcall .jdbtns button{padding:3px 2px}
 .jdcall .fxsum table{font-size:11px}.jdcall .fxsum td b{font-size:11px;padding:1px 6px}.jdcall .fxsumh{padding:2px 8px;font-size:12px}
}
/* s27 指令台（3画面）：多目的情報｜自動出動｜地図 */
.tri3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;background:#1b1f24;padding:4px;border-radius:4px}
.tri3 iframe{width:100%;height:100%;border:2px solid #3a3f47;border-radius:2px;background:#d9dee4}
.tri3 iframe.flash{border-color:#ffb300;box-shadow:0 0 0 3px #ffb300}
.tel{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:6px;height:100%;background:#cfe0f4;padding:6px;border-radius:4px}
.telL{display:flex;flex-direction:column;gap:4px;min-height:0;background:#fff;border:1px solid #8fa9c8;padding:6px}
.telq{display:flex;align-items:center;gap:6px}.telq span{font-weight:800;color:#33475b;font-size:13px}.telq input{flex:1;font-size:16px;padding:4px 8px}
.telT{flex:1;min-height:0;overflow:auto}
table.telt{width:100%;border-collapse:collapse;font-size:13px}table.telt th{background:#e3ecf6;border:1px solid #8fa9c8;padding:4px;font-size:12px;position:sticky;top:0}
table.telt td{border:1px solid #c5d0dc;padding:5px 4px;height:28px;vertical-align:top}table.telt td small{display:block;color:#56687a;font-size:11px}
table.telt tr[data-tel]{cursor:pointer}table.telt tr[data-tel]:hover{background:#eef5fd}table.telt tr.on{background:#d6e8fb}table.telt tr.fin td{color:#8a96a3}
table.telt tr.now td{background:#ffebee;color:#c62828;font-weight:800;animation:opblink 1.2s steps(2) infinite}
.telR{min-height:0;overflow:auto;background:#2a4f8a;border-radius:4px;padding:6px}
.tpg{display:flex;flex-direction:column;gap:6px}.tph{color:#cfe0f4;font-weight:800;font-size:12px;border-bottom:1px solid #5c7fb5;padding-bottom:2px}
.tstat{display:flex;gap:4px;flex-wrap:wrap}.tstat span{background:#173763;color:#dfe9f5;font-weight:800;padding:4px 8px;border-radius:3px;font-size:12px}.tstat span.on{background:#c62828;color:#fff}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.tgrid.big{grid-template-columns:repeat(2,1fr)}
.tgrid button{min-height:40px;font-weight:800;font-size:13px;border-radius:3px;border:1px solid #0f2442;line-height:1.15}.tgrid button small{display:block;font-size:10px;font-weight:600}
.tgrid.big button{min-height:54px;font-size:16px}
.tgrid button.b{background:linear-gradient(#e9f3fb,#9fc3e6);color:#0f2442}
.tgrid button.blue{background:linear-gradient(#3d7fe0,#1f56b0);color:#fff}
.tgrid button.amber{background:linear-gradient(#ffe082,#f2b705);color:#3b2a00}
.tgrid button.red{background:linear-gradient(#ef5350,#c62828);color:#fff}
.tgrid button:disabled{opacity:.45}
.tri1{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:8px;height:100%;background:#cfe0f4;padding:6px;border-radius:4px}
.t1l,.t1r{display:flex;flex-direction:column;gap:6px;min-height:0;background:#fff;border:1px solid #8fa9c8;padding:6px}
.t1l table{flex:1}.t1b{display:flex;gap:4px;margin-top:auto}.t1b button{flex:1;padding:8px 4px;font-weight:800}
table.jdt.nt td{height:26px;font-size:13px}
.t1now{background:#fff8c4;border:1px solid #c9b200;padding:6px 10px;font-weight:800}
.t1inc{display:grid;grid-template-columns:72px 1fr 72px 1fr;gap:3px 6px;align-items:center;font-size:13px}.t1inc label{color:#5c6a78;font-size:12px;text-align:right;font-weight:700}.t1inc .fv{min-height:26px;padding:3px 6px}
.t1grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bboard{display:flex;flex-direction:column;gap:4px;min-height:0;overflow:auto;background:#1b1f24;border-radius:4px;padding:6px}
.bbh{display:flex;align-items:center;gap:4px;color:#fff}.bbh b{flex:1;background:#1565c0;padding:3px 8px}.bbh button{padding:2px 8px;font-size:12px}.bbh span{font-size:12px}
.bbi{background:#2b313a;color:#dfe9f5;border-radius:3px;padding:6px 8px;font-weight:700;font-size:13px}.bbi small{display:block;color:#9fb3c8;font-weight:500;font-size:11px}
#callTimer{transition:none}.hold #callTimer,span.hold{color:#f2b705}span.ended{color:#8a96a3}
@media (max-width:700px){.tel{grid-template-columns:1fr}.tri1{grid-template-columns:1fr}}
/* s28 3画面をそれぞれのウィンドウで起動 */
.trilaunch{max-width:1100px;margin:20px auto;padding:0 12px}
.trimon{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}
.trimon .mon{background:#1b1f24;color:#fff;border:6px solid #3a3f47;border-radius:6px;padding:16px 12px;min-height:130px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;text-align:center}
.trimon .mon small{color:#9fb3c8}.trimon .mon b{font-size:22px}.trimon .mon span{font-size:12px;color:#c9d1da}
/* ===== AVM表示モニター（専用ウィンドウ） ===== */
body.avm{background:#0b1622;color:#e6eef7;overflow:hidden;height:100vh}
body.avm header.top,body.avm .sbar,body.avm #alarm{display:none!important}
body.avm main#app{padding:0;margin:0;max-width:none;height:100vh}
.avm{display:flex;flex-direction:column;height:100vh}
.avmtop{display:flex;align-items:center;gap:12px;padding:6px 12px;background:#0f2133;border-bottom:2px solid #1f3b57;flex-wrap:nowrap}
.avmtop .sp{flex:1}
.avmlogo{background:#1565c0;color:#fff;padding:2px 10px;border-radius:3px;letter-spacing:3px;font-size:20px}
.avmt{font-weight:800;font-size:19px;white-space:nowrap}
.avmev{color:#9fb7cf;font-weight:700;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.avmsum{display:flex;gap:4px}
.avmsum .as{display:flex;flex-direction:column;align-items:center;min-width:60px;padding:2px 6px;border-radius:3px;font-weight:800}
.avmsum .as span{font-size:12px}.avmsum .as b{font-size:22px;line-height:1.1}
.avmsum .as.z{opacity:.28}
.avmops{display:flex;gap:4px;align-items:center;flex-shrink:0}
.avmops button,.avmops select{background:#163049;color:#cfe0f1;border:1px solid #2c4d6e;border-radius:3px;padding:0 12px;height:34px;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;width:auto}
.avmops button.on{background:#1e88e5;color:#fff;border-color:#64b5f6}
.avmclock{flex-shrink:0;font-size:28px;font-variant-numeric:tabular-nums;letter-spacing:1px;color:#fff;min-width:118px;text-align:right}
.avmmain{flex:1;display:grid;grid-template-columns:1fr minmax(440px,34%);min-height:0}
.avmmap{background:#1a2836;min-height:0}
.avmmap .leaflet-tile-pane{filter:invert(.92) hue-rotate(185deg) brightness(.95) contrast(.88) saturate(.55)}
.avmmap .leaflet-tooltip{font-weight:700}
.avmside{display:flex;flex-direction:column;min-height:0;border-left:2px solid #1f3b57;background:#0d1a27}
.avmh{padding:7px 12px;font-weight:800;font-size:16px;background:#132a40;border-bottom:1px solid #1f3b57}
.avmh span{color:#9fb7cf;font-weight:700;font-size:14px}
.avmlist{flex:1;overflow:auto}
.avmnone{padding:30px 16px;color:#9fb7cf;font-weight:700;text-align:center}
table.avt{width:100%;border-collapse:collapse;font-size:15px}
table.avt td{padding:6px 7px;border-bottom:1px solid #1d3247;vertical-align:middle}
table.avt tr.grp td{background:#16314a;color:#9fc3e6;font-weight:800;font-size:13px;padding:3px 10px}
table.avt tr[data-au]{cursor:pointer}table.avt tr[data-au]:hover td{background:#15293c}
table.avt tr.on td{background:#1d3d5c}table.avt tr.on td.c{box-shadow:inset 4px 0 #ffb300}
table.avt td.c{font-weight:900;font-size:17px;white-space:nowrap}
table.avt td.n{white-space:nowrap;color:#d6e3f0}
table.avt td.w{line-height:1.25}table.avt td.w small{display:block;color:#9fb7cf;font-size:12px}
table.avt td.el{font-variant-numeric:tabular-nums;color:#b8cbe0;text-align:right;white-space:nowrap}
table.avt .ast{display:inline-block;min-width:56px;text-align:center;padding:3px 5px;border-radius:3px;font-weight:800}
table.avt i{font-style:normal;font-size:11px;font-weight:800;padding:1px 4px;border-radius:2px}
table.avt i.gp{background:#2e7d32;color:#fff}table.avt i.es{border:1px dashed #7f97ad;color:#b8cbe0}table.avt i.no{color:#66788a}
table.avt tr.fl td{animation:avfl 1s steps(2,start) 10}
@keyframes avfl{50%{background:#ffb300;color:#000}}
.mk.k-fl{animation:avmk 1s steps(2,start) 10}@keyframes avmk{50%{outline:4px solid #ffb300}}
.avmlog{display:flex;gap:10px;align-items:center;padding:6px 12px;background:#0f2133;border-top:2px solid #1f3b57;overflow:hidden;white-space:nowrap}
.avmlog>b{color:#9fc3e6;font-size:13px}
.avmlog div{display:flex;gap:6px;overflow:hidden}
.avmlog span{padding:2px 8px;border-radius:3px;font-weight:700;font-size:13px}
@media (max-width:1100px){.avmsum .as{min-width:44px}.avmsum .as b{font-size:17px}.avmt{display:none}}

.mk.k-unit.s-待機{background:var(--grn)}.mk.k-unit.s-指令{background:var(--yel);color:#222}.mk.k-unit.s-出動{background:var(--org)}.mk.k-unit.s-現着{background:#c62828}.mk.k-unit.s-搬送{background:var(--pur)}.mk.k-unit.s-病院着{background:var(--blu)}.mk.k-unit.s-引揚{background:var(--teal)}.mk.k-unit.s-休止{background:var(--gry)}
.avmmap .mk{font-size:13px;padding:2px 8px}.avmmap .mk.k-inc{font-size:14px}
/* 受理中の予告指令（自動送信・音声読み上げ） */
.callpre{display:flex;align-items:center;gap:8px;padding:4px 8px;margin:3px 0;border:1px solid var(--ln2);border-radius:3px;background:#f3f6f9;font-size:13px;min-height:30px}
.callpre .cp{font-weight:800;white-space:nowrap}
.callpre .cpt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tx)}
.callpre .cp.wait{color:var(--sub);font-weight:700}
.callpre.m-count{background:#fff4d6;border-color:#f0b400;animation:pulse 1s infinite}.callpre.m-count .cp{color:#8a5a00}
.callpre.m-sent{background:#e6f4ea;border-color:#2e9e4f}.callpre.m-sent .cp{color:#1b6b34}
.callpre.m-changed{background:#fdeaea;border-color:var(--red)}.callpre.m-changed .cp{color:#8e1b1b}
.callpre button{white-space:nowrap}
.jdf2 .callpre{grid-column:1/-1}
/* 3画面の役割分担：左＝通報・通話・情報（操作台状況・掲示板）／中央＝受付〜指令（対応中の事案） */
.tgrid.big{grid-template-columns:repeat(3,1fr)}
.t1act{flex:1;min-height:0;overflow:auto}
.t1act table.jdt tr.clk{cursor:pointer}.t1act table.jdt tr.on td{background:#fff3c4}
.tpg table.telseat{background:#fff;font-size:12px}.tpg table.telseat th{font-size:11px}
.tpg .telbb{flex:1;min-height:120px}
/* 3画面：左（多目的情報）＝事案の入力・操作／中央（自動出動）＝入力内容からの自動判定・自動選択の表示 */
.telList{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}
.tel.calling{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.tel.calling .telList{display:none}
.telIn{display:none;flex:1;min-height:0;overflow:auto}
.tel.calling .telIn{display:flex;flex-direction:column}
.telin{display:flex;flex-direction:column;gap:5px;flex:1;min-height:0}
.telin .tih{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}
.telin .tih .callon{background:#c62828;color:#fff;font-weight:800;padding:2px 8px;border-radius:3px}
.telin .tigrid{display:grid;grid-template-columns:72px 1fr;gap:4px 6px;align-items:center}
.telin .tigrid>label{font-size:12px;font-weight:800;color:var(--sub);text-align:right}
.telin .tigrid input{width:100%}
.telin .row2{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.telin .locrow{display:flex;gap:4px}.telin .locrow .srch{flex:1;position:relative}
.telin #telLocName{min-height:30px;display:flex;align-items:center;color:var(--sub)}.telin #telLocName.set{color:var(--tx);font-weight:800}
.telin .supct{display:flex;gap:8px;align-items:center}.telin .supct .seg{flex:1}
.telin .fxarea{flex:1;min-height:260px}
.tgrid.big.ops button{min-height:46px;font-size:14px}
body.tri3 #incGo,body.tri3 #incGoPre,body.tri3 #incDisp,body.tri3 #preGo,body.tri3 #dispGo,body.tri3 #cprOpen2,body.tri3 #jdClr,body.tri3 #xferInc,body.tri3 #xferGo,body.tri3 #callStop,body.tri3 .callpre button{display:none!important}
body.tri3 #incForm .jdtop{pointer-events:none}
body.tri3 #incForm .jdtop input,body.tri3 #incForm .jdtop textarea{background:#f3f6f9}
/* 左の入力：①通報区分・災害地点（確定で収納・▼で開く）→ ②詳細 */
.callpre:empty,.callpre.m-wait{display:none}
.tpanel{border:1px solid #8fa9c8;border-radius:4px;background:#fff;display:flex;flex-direction:column;min-height:0}
.tpanel.hide{display:none}
.tpbar{display:flex;align-items:center;gap:10px;background:#e3edf8;border-bottom:1px solid #8fa9c8;padding:4px 8px;min-height:34px}
.tpbar>b{color:#0f3a6b;white-space:nowrap}
.tpsum{flex:1;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tptog{margin-left:auto;min-width:44px;height:28px;font-size:15px;font-weight:900;background:#fff;border:1px solid #8fa9c8;border-radius:3px;cursor:pointer}
.tptog.hide{display:none}
.tpanel .tpbody{padding:6px}
.tpanel.closed .tpbody{display:none}
.tpanel.closed .tpbar{border-bottom:0;cursor:pointer}
#tpB{flex:1}
#tpB .tpbar .supjudge{margin-left:auto}
#tpB .fxarea{flex:1;min-height:240px;padding:4px}
#tpB .tigrid{padding:6px;border-top:1px solid var(--ln2)}
body.tri3 .jdcall .jdf>label:nth-of-type(2),body.tri3 .jdcall .jdf .locrow,body.tri3 .jdcall .jdh span,body.tri3 .jdcall #selMsg,body.tri3 #locClear{display:none!important}
/* 災害種別・災害地点の欄：確定したら1行にしまう（▼で開く） */
.tifold{display:flex;flex-direction:column;gap:4px}
.tifbar{display:flex;align-items:center;gap:10px;background:#e3edf8;border:1px solid #8fa9c8;border-radius:3px;padding:3px 8px;min-height:36px}
.tifbar.hide{display:none}
.tifold.closed .tifbody{display:none}
.tifold:not(.closed) .tifbar .supjudge{display:none}
.tifbar .supjudge{display:flex;align-items:center;gap:6px}
/* s33 の並びのまま、聴取タブより上をしまう */
.telin #telLocName{min-height:30px;display:flex;align-items:center;color:var(--sub)}.telin #telLocName.set{color:var(--tx);font-weight:800}
.telin>.fxarea{flex:1;min-height:260px}
.tifold .tifbody+.tifbody{margin-top:2px}
/* ===== コンパクト表示（指令台の各画面）：文字に対して枠・パネル・タブを小さく ===== */
body.jd button{padding:3px 8px}
body.jd input,body.jd select,body.jd textarea{padding:3px 6px;margin:1px 0}
body.jd textarea{min-height:0}
body.jd .tabsbar .tab,body.jd .ftabs button,body.jd .ctabs button,body.jd .ltabs button{height:30px!important;font-size:13px!important}
body.jd .seg.ftabs{padding:3px 3px 0}
body.jd .seg button{padding:3px 4px;min-width:0}
body.jd .seg.urg6 button{padding:2px 0!important;font-size:12px}
body.jd .ctabs{padding:2px;gap:2px}
body.jd .kgrp{gap:2px}body.jd .kgrp button{padding:2px 8px;max-height:44px}body.jd .kgrp button b{font-size:13px}body.jd .kgrp button small{font-size:11px}
body.jd :is(.op.calling,.supcall,.telin) .kopts,body.jd .telin .kopts{grid-auto-rows:minmax(28px,36px)!important;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))!important;gap:3px}
body.jd :is(.op.calling,.supcall,.telin) .kopts button,body.jd .telin .kopts button{font-size:13px!important;padding:2px 22px!important;min-height:0}
body.jd .citems .fxo button{padding:3px 8px;font-size:13px;min-width:0}
body.jd .citems{padding:4px;min-height:0}
body.jd .cchosen{min-height:0;gap:3px}body.jd .cchosen button{padding:1px 6px;font-size:12px}
body.jd .jlv.big{width:56px!important;height:34px!important;font-size:20px!important}
body.jd .jdmenu{flex-basis:112px;gap:3px;padding:4px}
body.jd .jdmenu button{min-height:30px;padding:2px 4px;font-size:12px}body.jd .jdmenu button small{font-size:9px}
body.jd table.jdt{font-size:13px}body.jd table.jdt th{padding:2px 4px;font-size:11px}body.jd table.jdt td{padding:2px 4px;height:24px}
body.jd .jdbtns button{padding:4px}
body.jd .jdgo{height:40px;font-size:17px;border-width:3px}
body.jd .jdbt button{padding:3px 10px}
body.jd .jdh{padding:2px 4px}
body.jd .tgrid{gap:3px}body.jd .tgrid button{min-height:30px;font-size:12px}
body.jd .tgrid.big button,body.jd .tgrid.big.ops button{min-height:34px;font-size:13px}
body.jd .tpg{gap:3px}
body.jd .tifbar,body.jd .tpbar{min-height:26px;padding:2px 6px}
body.jd .tptog{height:22px;min-width:34px;font-size:12px}
body.jd .callpre{min-height:24px;padding:2px 6px;margin:1px 0}
body.jd .telin{gap:3px}body.jd .telin .tigrid{gap:2px 4px}
body.jd .tel{gap:4px;padding:4px}body.jd .telL{padding:4px}body.jd .telR{padding:4px}
body.jd .jdf,body.jd .jdf2{gap:2px 4px}
body.jd .chosen{gap:4px}
body.jd .sbar{min-height:0}
body.jd .supjudge .jlv{width:44px;height:28px;font-size:16px}body.jd .supjudge small{font-size:11px}
body.jd .jdtop{gap:4px}body.jd .jdf>*{min-height:0}
/* 災害地点：⭕️の中に「災」 */
.mksai{position:relative;transform:translate(-15px,-50%);display:flex;align-items:center;white-space:nowrap}
.mksai b{width:30px;height:30px;border-radius:50%;border:3px solid #d32f2f;background:#fff;color:#d32f2f;font-size:17px;font-weight:900;line-height:24px;text-align:center;box-shadow:0 1px 4px #0006;flex:none}
.mksai span{margin-left:3px;padding:0 5px;border-radius:2px;background:#d32f2f;color:#fff;font-size:11px;font-weight:800;line-height:18px;box-shadow:0 1px 3px #0005}
.mksai.t-黄 b{border-color:#f9a825;color:#b07800}.mksai.t-黄 span{background:#f9a825;color:#2b1d00}
.mksai.t-緑 b{border-color:#2e7d32;color:#2e7d32}.mksai.t-緑 span{background:#2e7d32}
.mksai.k-cur b{outline:3px solid #ffb300;outline-offset:1px}
.avmmap .mksai span{font-size:13px;line-height:20px}
.mksai b{box-sizing:border-box;flex:none}
/* 地図モニター：災害地点の候補（確定で予告指令） */
.candbar{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#fff4d6;border:2px solid #f0b400;border-radius:3px;margin:2px 0}
.candbar.hide{display:none}
.candbar .cl{font-size:12px;font-weight:800;color:#8a5a00}.candbar b{font-size:16px}
.candbar .cw{color:#c62828;font-weight:700;font-size:12px}
.candbar #candOk{margin-left:auto;min-width:90px;font-size:15px;padding:4px 14px}
.mksai.cand b{border-style:dashed;border-color:#ef6c00;color:#ef6c00;animation:candpulse 1s steps(2) infinite}
.mksai.cand span{background:#ef6c00}
@keyframes candpulse{50%{outline:3px solid #ffb300}}
/* ===== 多目的情報（左）の聴取入力盤：全カテゴリを1画面で（横浜消防の入力画面の並び） ===== */
.tel .telin>.fxarea{display:block;min-height:0;overflow:auto}
.ybd{display:grid;gap:4px;font-size:12px}
.ybd.y119{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 150px;grid-template-areas:"pt vit res" "in in ex" "sym sym hx"}
.ybd.ygen{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.yb{border:2px solid #8fa9c8;border-radius:4px;background:#f4f7fa;min-width:0;display:flex;flex-direction:column}
.ybt{font-weight:800;font-size:12px;padding:1px 6px;color:#fff;background:#56687a}
.ybb{padding:3px;display:flex;flex-direction:column;gap:3px}
.yg{display:flex;gap:4px;align-items:flex-start;background:#fff;border:1px solid #cfd8e2;border-radius:3px;padding:2px 3px}
.ygt{flex:0 0 64px;font-weight:800;color:#33475b;font-size:11px;line-height:1.2;padding-top:3px}
.ygo{flex:1;display:flex;flex-wrap:wrap;gap:2px 3px;min-width:0}
.yo{position:relative;padding:1px 6px 1px 17px;font-size:12px;font-weight:700;line-height:1.35;border:1px solid #c5d0dc;border-radius:2px;background:#fff;box-shadow:none;color:#1d2b3a}
.yo::before{content:'';position:absolute;left:4px;top:50%;width:9px;height:9px;margin-top:-5px;border:1.5px solid #7f93a8;border-radius:2px;background:#fff}
.yo.r::before{border-radius:50%}
.yo.on{background:#1565c0;border-color:#0d47a1;color:#fff}.yo.on::before{border-color:#fff;background:#ffe082}
.y-pt{grid-area:pt;border-color:#8fa9c8}.y-pt .ybt{background:#5c7491}
.y-vit{grid-area:vit;border-color:#e0608f;background:#fdeef4}.y-vit .ybt{background:#d64b80}
.y-vit .yg.cpa{border-color:#e53935}.y-vit .yg.cpa .ygt{color:#c62828}
.y-res{grid-area:res;border-color:#3a3f47;background:#fff}.y-res .ybt{background:#3a3f47}
.y-res .supjudge{flex-direction:column;align-items:center;gap:2px}.y-res .supjudge .jlv{width:96px!important;height:50px!important;font-size:30px!important}
.y-res .supjudge small{text-align:center}
.yrt{display:flex;justify-content:space-between;font-size:11px;border-top:1px solid #dde3ea;padding-top:2px}.yrt b{font-family:ui-monospace,Consolas,monospace}
.y-in{grid-area:in;border-color:#d8a800;background:#fff9dd}.y-in .ybt{background:#c79a00}
.y-ex{grid-area:ex;border-color:#1aa3c2;background:#e6f7fb}.y-ex .ybt{background:#1690ad}
.y-in .ygt,.y-ex .ygt{display:none}
.y-sym{grid-area:sym;border-color:#ef8a00;background:#fff3e3}.y-sym .ybt{background:#e07b00}.y-sym.none{opacity:.55}
.y-hx{grid-area:hx;border-color:#4e9a5a;background:#edf7ee}.y-hx .ybt{background:#3f8a4b}
.y-c0 .ybt{background:#5c7491}.y-c1 .ybt{background:#d64b80}.y-c2 .ybt{background:#c79a00}.y-c3 .ybt{background:#1690ad}.y-c4 .ybt{background:#e07b00}.y-c5 .ybt{background:#3f8a4b}
.ybd .yo{padding:1px 6px 1px 18px!important;min-width:0;white-space:nowrap}
.ybd.y119{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) 220px}
.y-hx .yg,.y-res .yg{flex-direction:column;gap:1px}.y-hx .ygt{flex:none;padding:0}
.y-res .supjudge small{font-size:11px;line-height:1.3}
.tel.calling{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr)}
.ybd.y119{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"pt vit" "in ex" "sym hx"}
.y-in .ygt,.y-ex .ygt{display:block}
.y-sym.none .ybb{display:none}
.telres{background:#fff;border-radius:3px;padding:4px 6px;display:flex;flex-direction:column;gap:2px}
.telres .supjudge{display:flex;align-items:center;gap:8px}.telres .supjudge .jlv{width:70px!important;height:38px!important;font-size:24px!important}
.telres .supjudge small{font-size:12px;font-weight:700}
.telwhy{font-size:11px;color:#40556b}
.ybd{gap:3px}.ybb{padding:2px;gap:2px}.yg{padding:1px 3px}.ygt{flex-basis:52px}
.ybd .yo{font-size:11.5px;line-height:1.25;padding:1px 5px 1px 16px!important}
.yo::before{left:3px;width:8px;height:8px;margin-top:-4.5px}
.y-hx .yg{flex-direction:row;gap:4px}.y-hx .ygt{flex:0 0 52px;padding-top:3px}
/* マイマップのレイヤー */
.mmwrap{position:relative;display:inline-block;margin-left:auto}
.mmbtn{padding:2px 10px}
.mmpanel{position:absolute;right:0;top:100%;z-index:1500;min-width:260px;max-height:60vh;overflow:auto;background:#fff;color:#1d2b3a;border:1px solid #8fa9c8;border-radius:4px;box-shadow:0 4px 14px #0004;padding:6px;font-size:13px;text-align:left}
.mmpanel.hide{display:none}
.mmh{display:flex;align-items:center;gap:6px;margin-bottom:4px}.mmh b{flex:1}
.mmm{border-top:1px solid #e1e7ee;padding:4px 0}.mmn{font-weight:800;font-size:12px;color:#0f3a6b}
.mme{color:#c62828;font-size:12px;margin:2px 0}
.mmpanel .chk{display:flex;align-items:center;gap:6px;padding:1px 0}.mmpanel .chk input{width:auto;margin:0}.mmpanel small{color:#56687a}
.avmops .mmwrap{margin-left:0}
/* 災害地点（⭕災）を見やすく：大きな白地の赤い円・太字・白縁取りのラベル・脈打つ輪 */
.mksai{transform:translate(-24px,-50%)}
.mksai b{position:relative;width:48px;height:48px;border:5px solid #d32f2f;border-radius:50%;background:#fff;color:#d32f2f;font-size:26px;font-weight:900;line-height:38px;text-align:center;box-sizing:border-box;box-shadow:0 0 0 3px #fff,0 3px 10px #000b}
.mksai b::after{content:'';position:absolute;left:-9px;top:-9px;width:56px;height:56px;border-radius:50%;border:3px solid currentColor;opacity:0;animation:saipulse 1.6s ease-out infinite;pointer-events:none}
@keyframes saipulse{0%{transform:scale(.7);opacity:.85}100%{transform:scale(1.5);opacity:0}}
.mksai span{margin-left:5px;padding:0 9px;border-radius:3px;font-size:15px;line-height:26px;font-weight:900;border:2px solid #fff;box-shadow:0 2px 6px #0009}
.avmmap .mksai span{font-size:15px;line-height:26px}
.mksai.k-cur b{width:56px;height:56px;line-height:46px;font-size:30px;outline:4px solid #ffb300;outline-offset:2px}
.mksai.k-cur{transform:translate(-28px,-50%)}
.mksai.cand b{border-style:dashed}
.rlab{transform:translate(-50%,-50%);font-size:11px;font-weight:800;color:#c62828;background:#fffffff0;border:1px solid #c62828;border-radius:8px;padding:0 5px;white-space:nowrap;line-height:15px}
.jdvt .mmpanel{right:100%;left:auto;top:0;margin-right:6px}
.jdvt{position:absolute}
.leaflet-tooltip.mmlab{background:#ffffffe8;border:1px solid #8fa9c8;border-radius:3px;padding:0 4px;font-size:11px;font-weight:700;color:#1d2b3a;box-shadow:none}
.leaflet-tooltip.mmlab::before{display:none}
.jdvt .mmpanel{min-width:300px;writing-mode:horizontal-tb}
.jdvt .mmpanel button,.mmpanel button{writing-mode:horizontal-tb;flex:none;width:auto;height:auto;min-height:0;padding:2px 10px;font-size:12px;background:#fff;color:#1565c0;border:1px solid #8fa9c8;border-radius:3px}
.mmh b{white-space:nowrap}
/* 1画面（タブ切替）・2画面の左ウィンドウ */
body.onewin main#app{padding:4px}
.onew{display:grid;grid-template-columns:118px minmax(0,1fr);gap:4px;height:100%}
.onetabs{display:flex;flex-direction:column;gap:3px;background:#2f343b;padding:4px;border-radius:4px}
.onetabs button{min-height:44px;font-weight:800;font-size:14px;background:linear-gradient(#5a616b,#3f454d);color:#fff;border:1px solid #1d2126}
.onetabs button.on{background:linear-gradient(#2a7bd3,#1559a8)}
.onetabs .sp{flex:1}
.onetabs .onesup{background:linear-gradient(#2fa45a,#1b7f3b);min-height:56px}.onetabs .onesup small{display:block;font-size:10px;font-weight:600;color:#d8f3df}
.onebody{position:relative;min-height:0}
.onebody iframe{width:100%;height:100%;border:0;background:#fff;display:block}
.onebody iframe.hide{display:none}
/* 受付補助：手書きの切替・キーボード入力 */
.hwsw{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:6px}.hwsw button.on{background:var(--hd2);color:#fff;border-color:var(--hd2)}
.supkbd{flex:1;display:flex;flex-direction:column;gap:6px;padding:6px;min-height:0;overflow:auto;background:#fff;border:1px solid #8fa9c8;border-radius:4px}
.skh{font-weight:800;color:#0f3a6b}
.kbdf{display:grid;grid-template-columns:80px 1fr;gap:6px 8px;align-items:start}
.kbdf>label{font-weight:800;font-size:13px;color:#33475b;padding-top:6px;text-align:right}
.kbdf .srch{position:relative}.kbdf .row2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.kbdf textarea{font-size:16px;line-height:1.5;min-height:180px}
.kbdf input{font-size:16px}
.supcall .fxarea{overflow:auto;display:block}
.jd3tb.hide{display:none}
/* ===== レスポンシブ（ウィンドウの幅に合わせて並びを変える） ===== */
.tel,.onew{min-height:0}
@media (max-width:1280px){
  .tel.calling{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr)}
  .ybd.y119{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"pt" "vit" "in" "ex" "sym" "hx"!important}
  body.jd .jdmenu{flex-basis:96px}
}
@media (max-width:860px){
  .tel,.tel.calling{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto;overflow:auto}
  .tel .telL{min-height:78vh}.tel .telR{max-height:none;overflow:visible}
}
@media (max-width:980px){
  .onew{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .onetabs{flex-direction:row;flex-wrap:wrap}.onetabs button{min-height:34px;flex:1 1 auto}.onetabs .sp{display:none}.onetabs .onesup{min-height:34px}
  .opmain.full{grid-template-columns:1fr}
  .kbdf{grid-template-columns:1fr}.kbdf>label{text-align:left;padding-top:0}
}
@media (max-width:640px){
  body.jd .jdwrap{flex-direction:column}
  body.jd .jdmenu{flex-basis:auto;flex-direction:row;flex-wrap:wrap}
  body.jd .jdmenu button{flex:1 1 30%}
}
.telin .ftabs{grid-template-columns:repeat(auto-fit,minmax(58px,1fr))!important;row-gap:2px}
/* ===== s48 隊員用モバイル ===== */
body.mob{background:#e9eef3;padding-bottom:calc(64px + env(safe-area-inset-bottom));overscroll-behavior-y:contain}
.mtop{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:6px;background:linear-gradient(#0f3a6b,#0b2b50);color:#fff;padding:calc(6px + env(safe-area-inset-top)) 8px 6px;box-shadow:inset 0 -3px 0 #ffb300}
body.mob.m-aid .mtop{box-shadow:inset 0 -3px 0 #43a047}body.mob.m-security .mtop{box-shadow:inset 0 -3px 0 #fb8c00}body.mob.m-ops .mtop{box-shadow:inset 0 -3px 0 #00acc1}
.mtop .logo{color:#fff;font-weight:900;letter-spacing:2px;text-decoration:none;font-size:16px}.mtop .mlab{font-size:13px;font-weight:700;opacity:.9;white-space:nowrap}.mtop .sp{flex:1}.mtop .clock{font-size:17px;background:none;border:0;padding:0;min-width:0}
.mnet{display:flex;gap:3px}.mnet b{font-size:10px;padding:1px 5px;border-radius:8px;background:#2e7d32;white-space:nowrap}.mnet b.off{background:#c62828}.mnet b.gpsw{background:#6d4c41}
.msos{--p:0;position:relative;width:60px;padding:0;white-space:nowrap;flex:none;height:40px;border-radius:20px;border:2px solid #fff;background:conic-gradient(#ffeb3b calc(var(--p)*360deg),#d32f2f 0);color:#fff;font-weight:900;font-size:14px;letter-spacing:1px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.msos.hold{transform:scale(1.08)}
.mbar{display:flex;gap:6px;padding:6px 8px;background:#dfe6ed;border-bottom:1px solid var(--ln2)}.mbar select{flex:1;margin:0;min-width:0}.mbar .chip{color:var(--hd);border:1px solid var(--ln);background:#fff;white-space:nowrap}.mbar .chip.on{background:#1b7f3b;color:#fff;border-color:#1b7f3b}
.mmain{max-width:680px;margin:0 auto;padding:8px}.mt{display:none}.mt.on{display:block}
.mbtabs{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-template-columns:repeat(6,1fr);background:#0b2b50;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 6px #0004}
.mbtabs button{position:relative;background:none;border:0;color:#b9cbe0;font-size:11px;font-weight:700;padding:6px 0 7px;display:flex;flex-direction:column;align-items:center;gap:1px;border-radius:0;min-height:56px}
.mbtabs button i{font-style:normal;font-size:20px;line-height:1.2}.mbtabs button.on{color:#fff;background:#1d5a9a}
.mbtabs button[data-badge]:not([data-badge=""])::after{content:attr(data-badge);position:absolute;top:4px;right:calc(50% - 22px);min-width:16px;height:16px;border-radius:8px;background:#e53935;color:#fff;font-size:10px;line-height:16px;padding:0 3px}
.mrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.mob a.button,.mob label.button{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--ac);border:1px solid #8fb0d6;border-radius:3px;padding:7px 12px;font-weight:700;text-decoration:none}.mrow>*{flex:1;text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center}
.mnote b{font-size:16px}.mdist{display:block;font-size:13px;color:var(--sub);font-weight:600}
.tbtns button{min-height:56px;font-size:17px}
/* 帯 */
.mban{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border-radius:6px;padding:8px 10px;margin-bottom:8px;color:#fff;font-size:14px}
.mban b{font-size:16px}.mban span{flex:1;min-width:150px}.mban button{background:#fff;color:#b71c1c;border:0;font-weight:800;min-height:40px;padding:4px 12px}.mban button.sub{background:#ffcdd2}
.mban.me{background:#c62828;animation:mpulse 1s infinite}.mban.me.ack{animation:none;background:#ad1457}.mban.other{background:#e53935}.mban.msg{background:#1565c0;cursor:pointer}
@keyframes mpulse{50%{background:#7f0000}}
/* 指令の全画面アラート */
.malert{position:fixed;inset:0;z-index:300;background:#b71c1c;display:flex;align-items:center;justify-content:center;padding:16px;animation:mflash .8s infinite}
.malert.sos{background:#4a0000;animation:none}
@keyframes mflash{50%{background:#ff1744}}
.mab{background:#fff;border-radius:10px;padding:18px 16px;width:100%;max-width:520px;text-align:center;box-shadow:0 8px 30px #0008}
.mah{font-size:30px;font-weight:900;color:#b71c1c}.mau{font-size:17px;font-weight:800;margin:4px 0}.mat{font-size:26px;font-weight:900;margin:6px 0}.mal{font-size:21px;font-weight:800;margin:6px 0 10px}.mas{font-size:14px;color:var(--sub);text-align:left;white-space:pre-wrap;margin-bottom:10px}
.mab button{display:block;width:100%;min-height:58px;font-size:19px;font-weight:900;margin-top:8px}.mab .go.red{background:#d32f2f;border-color:#b71c1c}
/* 地図 */
.mmapw{position:relative;margin:-8px;height:calc(100vh - 165px);height:calc(100dvh - 165px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}#mMap{position:absolute;inset:0;background:#dde3ea}
.mmapb{position:absolute;z-index:500;top:8px;right:8px;display:flex;flex-direction:column;gap:6px}.mmapb button,.mmapb a{background:#fff;color:var(--hd);border:1px solid var(--ln);border-radius:6px;font-weight:800;padding:8px 10px;box-shadow:0 1px 4px #0003;font-size:13px;text-decoration:none;text-align:center}
.mmapi{position:absolute;z-index:500;left:8px;right:8px;bottom:8px;background:#fffffff0;border-radius:6px;padding:6px 10px;font-weight:700;font-size:14px;box-shadow:0 1px 4px #0003}
.mmk{background:none;border:0}.mmk.sai{width:40px!important;height:40px!important;border-radius:50%;background:#fff;border:4px solid #d32f2f;color:#d32f2f;font-weight:900;font-size:19px;line-height:32px;text-align:center;box-shadow:0 0 0 4px #d32f2f55;animation:mring 1.4s infinite}
@keyframes mring{50%{box-shadow:0 0 0 12px #d32f2f00}}
.mmk.me{width:18px!important;height:18px!important;border-radius:50%;background:#1e88e5;border:3px solid #fff;box-shadow:0 0 0 2px #1e88e5}
.mmk.mku{border-radius:4px;font-size:12px;line-height:18px;text-align:center;border:2px solid #fff;box-shadow:0 1px 3px #0006;white-space:nowrap}.mmk.mku.mine{outline:3px solid #1e88e5}
.mmk.emg{font-size:30px;line-height:40px;text-align:center;animation:mring 1s infinite;border-radius:50%}
.mmk.mm{white-space:nowrap}.mmk.mm i{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0005;vertical-align:middle}.mmk.mm span{font-size:11px;font-weight:700;color:#222;text-shadow:0 0 3px #fff,0 0 3px #fff;margin-left:2px;vertical-align:middle}
/* 無線 */
.rch{display:flex;gap:6px;margin-bottom:8px;overflow-x:auto}.rch button{flex:1;min-height:44px;background:#fff;border:1px solid var(--ln);color:var(--hd);font-weight:800;white-space:nowrap}.rch button.on{background:var(--hd);color:#fff;border-color:var(--hd)}
.rptt{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(70vw,240px);height:min(70vw,240px);margin:12px auto;border-radius:50%;border:6px solid #fff;background:radial-gradient(#1e88e5,#0d47a1);color:#fff;box-shadow:0 6px 20px #0d47a166;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.rptt b{font-size:24px}.rptt small{font-size:12px;opacity:.85}.rptt.rec{background:radial-gradient(#ff5252,#b71c1c);box-shadow:0 0 0 14px #ff525244;transform:scale(.97)}
.rst{text-align:center;font-size:13px;color:var(--sub);min-height:20px;margin-bottom:8px}.rrec{color:#c62828}
.rlist{display:flex;flex-direction:column;gap:6px}.ritem{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ln2);border-radius:6px;padding:6px 8px}.ritem.mine{background:#eef5ff}.ritem.rdesk{border-left:5px solid #0f3a6b}.ritem.play{border-color:#1e88e5;box-shadow:0 0 0 2px #1e88e555}
.ritem small{display:block;color:var(--sub);font-size:12px}.rplay{width:44px;height:44px;border-radius:50%;padding:0;font-size:16px;flex:none}.rnew{font-style:normal;background:#e53935;color:#fff;border-radius:8px;padding:0 5px;font-size:10px}
/* 報告 */
.mrep{background:#fff;border:1px solid var(--ln2);border-radius:6px;padding:10px}.mreph{font-weight:800;color:var(--hd);margin-bottom:8px}
.mrep label{display:block;font-weight:800;font-size:13px;color:var(--sub);margin:10px 0 4px}.mrep input,.mrep textarea{width:100%;font-size:16px}
.mseg{display:flex;gap:4px;flex-wrap:wrap}.mseg button{flex:1;min-height:44px;background:#fff;border:1px solid var(--ln);color:var(--tx);font-weight:700;padding:4px 6px;min-width:56px}.mseg button.on{background:var(--hd);border-color:var(--hd);color:#fff}
.mseg button.t-赤.on{background:var(--red);border-color:var(--red)}.mseg button.t-黄.on{background:var(--yel);border-color:#c9a000;color:#222}.mseg button.t-緑.on{background:var(--grn);border-color:var(--grn)}.mseg button.t-黒.on{background:#222;border-color:#222}
.mseg button.t-赤,.mseg button.t-黄,.mseg button.t-緑,.mseg button.t-黒{background:#fff;color:var(--tx)}
.mvit{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mvit input:first-child{grid-column:1/-1}
.mchk{display:grid;grid-template-columns:1fr 1fr;gap:4px}.mrep .mchk label{display:flex;align-items:center;gap:6px;margin:0;font-weight:600;color:var(--tx);background:#f3f6f9;border-radius:4px;padding:8px;font-size:14px}.mchk input{width:22px!important;height:22px}
.mrep .go.big{width:100%;min-height:54px;font-size:17px;margin-top:12px}
/* 連絡 */
.clist{display:flex;flex-direction:column;gap:8px;max-height:calc(100dvh - 330px);min-height:180px;overflow-y:auto;padding:4px 2px}
.cmsg{max-width:85%;border-radius:10px;padding:6px 10px;background:#fff;border:1px solid var(--ln2)}.cmsg.up{align-self:flex-end;background:#dcf2e1;border-color:#a5d6a7}.cmsg.down{align-self:flex-start;background:#fff;border-left:5px solid #0f3a6b}
.cm{font-size:12px;color:var(--sub)}.cm small{margin-left:6px}.ct{white-space:pre-wrap;font-size:16px}.cimg{display:block;max-width:100%;max-height:260px;border-radius:6px;margin-top:4px}
.cin{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));background:#e9eef3;padding:8px 0 0}.cin textarea{width:100%;font-size:16px}.cprev{display:flex;align-items:center;gap:8px;margin-bottom:6px}.cprev img{max-height:90px;border-radius:6px}.cphoto{cursor:pointer}
/* 設定 */
.mset h3{margin-top:0}.mset .ok{color:#1b7f3b}.mset .ng{color:#c62828}.mtg{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--ln2)}.mtg input{width:26px;height:26px;flex:none;margin-top:2px}.mtg small{display:block;color:var(--sub);font-weight:400}
.mhow{margin:4px 0;padding-left:20px}.mhow li{margin:4px 0}
body.mob .panel{border-radius:6px}body.mob.offline .mtop{background:#5d4037}
@media (max-width:380px){.mtop .mlab{display:none}.mbtabs button{font-size:10px}}
/* ===== s48 指令台：緊急通報・隊連絡・無線 ===== */
#emBar{position:fixed;left:0;right:0;top:0;z-index:400;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.emrow{pointer-events:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#c62828;color:#fff;padding:6px 12px;font-size:15px;box-shadow:0 2px 8px #0006}
.emrow.open{animation:mpulse 1s infinite}.emrow.ack{background:#ad1457}.emrow.closed{background:#6d4c41}.emrow b{font-size:17px}.emrow span{flex:1}
.emrow button{background:#fff;color:#b71c1c;border:0;font-weight:800;padding:4px 12px;min-height:30px}
.mmk.emgd{font-size:28px;line-height:36px;text-align:center;background:none;border:0;animation:mring 1s infinite;border-radius:50%}
.radiop{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:8px;height:calc(100vh - 110px)}.radiop .panel{overflow:auto;margin:0}
.radiop .rptt{width:200px;height:200px}.radiop .ritem{cursor:pointer}
.tmlist{display:flex;flex-direction:column;gap:6px}.tmthread{border:1px solid var(--ln2);border-radius:4px;background:#fff}.tmthread h4{margin:0;padding:4px 8px;background:#eef3f8;font-size:14px;display:flex;gap:8px;align-items:center}.tmthread h4 .new{background:#e53935;color:#fff;border-radius:8px;padding:0 6px;font-size:11px}
.tmthread .cmsg{max-width:92%;margin:4px 8px}.tmthread form{display:flex;gap:4px;padding:6px 8px}.tmthread form input{flex:1}
.tmthread .cimg{max-width:320px;max-height:200px}
/* ===== s49 リアルタイム無線 ===== */
.rlive{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#fff;border:1px solid var(--ln2);border-radius:6px;padding:6px 10px;margin-bottom:8px;font-size:13px}
.rlive b.on{color:#1b7f3b}.rlive b.wait{color:#8d6e00}.rlive .off{color:#c62828}.rlive em{font-style:normal;color:#c62828;font-weight:700}
.rmode{margin-bottom:8px}.rchl{align-self:center;font-size:12px;font-weight:800;color:var(--sub);white-space:nowrap;padding:0 2px}
.rspk{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;justify-content:center;margin:4px 0}.rspk span{background:#1565c0;color:#fff;border-radius:14px;padding:3px 10px;font-weight:800;font-size:14px;animation:mpulse2 1s infinite}
.rspk span.desk{background:#0f3a6b}.rspk span.me{background:#c62828}.rspk small{margin-left:4px;font-weight:600;opacity:.85}
@keyframes mpulse2{50%{opacity:.7}}
.rptt.dup{background:radial-gradient(#90a4ae,#546e7a)}.rptt.dup.live{background:radial-gradient(#43a047,#1b5e20);box-shadow:0 0 0 10px #43a04733}.rptt.dup.rec{background:radial-gradient(#ff5252,#b71c1c);box-shadow:0 0 0 14px #ff525244}
.rmeter{height:8px;background:#cfd8dc;border-radius:4px;overflow:hidden;max-width:260px;margin:0 auto 6px}.rmeter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#43a047,#fdd835 70%,#e53935);transition:width .08s}
.rlh{margin:12px 0 6px}
.mnet b.rtx{background:#c62828;animation:mpulse2 .8s infinite}.mnet b.rrx{background:#1565c0;animation:mpulse2 1s infinite}.mnet b.rdx{background:#2e7d32}
.rlisten{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 8px;font-size:14px}.rlisten label{display:flex;align-items:center;gap:4px;font-weight:700}
.rptt:active:not(:disabled){background:radial-gradient(#1e88e5,#0d47a1)}.rptt.rec,.rptt.rec:active:not(:disabled){background:radial-gradient(#ff5252,#b71c1c)}.rptt.dup:active:not(:disabled){background:radial-gradient(#90a4ae,#546e7a)}.rptt.dup.live:active:not(:disabled){background:radial-gradient(#43a047,#1b5e20)}
.rlisten label{white-space:nowrap;margin:0}.rlisten input{width:18px;height:18px;margin:0}
/* ===== s50 無線画面（PTT） ===== */
.bc{--bg:#15191e;--pn:#1f252c;--ln:#2d353f;--tx:#e8edf2;--sub:#8b97a3;margin:-8px;height:calc(100vh - 168px);height:calc(100dvh - 168px - env(safe-area-inset-top) - env(safe-area-inset-bottom));display:flex;flex-direction:column;background:var(--bg);color:var(--tx)}
.bch{display:flex;align-items:center;gap:6px;padding:8px;background:#0f1317;border-bottom:1px solid var(--ln)}
.bcg{display:flex;gap:6px;flex:1;overflow-x:auto}.bcg button{flex:none;min-width:84px;height:38px;border-radius:19px;background:var(--pn);color:var(--sub);border:1px solid var(--ln);font-weight:800;font-size:15px;box-shadow:none}
.bcg button.on{background:#00a884;border-color:#00a884;color:#fff}
.bcn{flex:none;height:38px;border-radius:19px;background:var(--pn);color:var(--tx);border:1px solid var(--ln);font-weight:800;padding:0 12px;display:flex;align-items:center;gap:6px;box-shadow:none}
.bcn i{width:9px;height:9px;border-radius:50%;background:#e53935}.bcn i.cok{background:#00e676;box-shadow:0 0 6px #00e676}.bcn i.cwait{background:#ffb300}
.bcm{display:none;gap:10px;overflow-x:auto;padding:8px 10px;background:#11161b;border-bottom:1px solid var(--ln)}.bcm.open{display:flex}
.bcm span{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;width:56px}.bcm small{font-size:10px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56px}
.bc .av{flex:none;width:40px;height:40px;border-radius:50%;background:#37474f;color:#fff;font-style:normal;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;border:2px solid transparent}
.bcm span.tk .av{border-color:#00e676;box-shadow:0 0 0 3px #00e67655}.bcm span.me .av{background:#00796b}.bc .dk .av{background:#1565c0}
.bct{flex:1;overflow-y:auto;padding:10px 8px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
#rList,#bcLive{display:flex;flex-direction:column;gap:10px}
.bcmsg{display:flex;align-items:flex-end;gap:8px;max-width:88%}.bcmsg.mine{align-self:flex-end;flex-direction:row-reverse}
.bcmsg .bb{display:flex;flex-direction:column;gap:2px;min-width:0}.bcmsg.mine .bb{align-items:flex-end}
.bn{font-size:12px;color:var(--sub);font-weight:700}.bn small{margin-left:6px;font-weight:400}.bn .bchn{background:#37474f;color:#fff;border-radius:6px;padding:0 5px}
.bv{display:flex;align-items:center;gap:8px;height:44px;min-width:150px;border-radius:22px;background:var(--pn);border:1px solid var(--ln);color:var(--tx);padding:0 14px 0 6px;box-shadow:none;font-weight:700}
.bv b{width:32px;height:32px;border-radius:50%;background:#00a884;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
.bcmsg.mine .bv{background:#005c4b;border-color:#00735d}.bcmsg.dk .bv b{background:#1e88e5}
.bv em{font-style:normal;font-size:13px;color:var(--sub);margin-left:auto}.bv.new{border-color:#00e676}.bv.play{border-color:#00e676;box-shadow:0 0 0 2px #00e67644}
.wv{flex:1;min-width:60px;height:18px;background:repeating-linear-gradient(90deg,#78909c 0 3px,transparent 3px 6px);-webkit-mask:linear-gradient(0deg,#000 0,#000 100%);mask-image:radial-gradient(ellipse 60% 100% at 50% 50%,#000 40%,#0008 70%,#0003 100%);border-radius:2px}
.bv.live{border-color:#00e676}.bv.live b{background:#00c853;animation:mpulse2 .8s infinite}.bv.live.tx{border-color:#ff5252;background:#4a1515}.bv.live.tx b{background:#e53935}
.wv.anim{background:repeating-linear-gradient(90deg,#00e676 0 3px,transparent 3px 6px);animation:wvm .5s linear infinite;background-size:12px 100%}
.bv.tx .wv.anim{background:repeating-linear-gradient(90deg,#ff8a80 0 3px,transparent 3px 6px);background-size:12px 100%}
@keyframes wvm{to{background-position:12px 0}}
.bcst{min-height:0;text-align:center;font-size:12px;color:var(--sub)}.bcst:empty{display:none}
.bcb{display:flex;align-items:center;gap:10px;padding:10px 10px 8px;background:#0f1317;border-top:1px solid var(--ln)}
.bci{flex:none;width:64px;height:64px;border-radius:16px;background:var(--pn);border:1px solid var(--ln);color:var(--sub);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;box-shadow:none;font-size:10px}
.bci i{font-style:normal;font-size:22px;filter:grayscale(1);opacity:.7}.bci.on{background:#004d40;border-color:#00a884;color:#fff}.bci.on i,.bci:not(.off) i{filter:none;opacity:1}.bci.off{color:#ef9a9a}
.bptt{flex:1;height:92px;border-radius:46px;border:0;background:linear-gradient(#26c6a2,#00897b);color:#fff;font-size:22px;letter-spacing:2px;box-shadow:0 6px 16px #0007,inset 0 2px 0 #ffffff40;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.bptt b{pointer-events:none}.bptt:active:not(:disabled){background:linear-gradient(#26c6a2,#00897b)}
.bptt.rec,.bptt.rec:active:not(:disabled){background:linear-gradient(#ff5252,#c62828);box-shadow:0 0 0 8px #ff525244,0 6px 16px #0007;transform:scale(.98)}
.bptt.dup,.bptt.dup:active:not(:disabled){background:linear-gradient(#546e7a,#37474f)}.bptt.dup.live,.bptt.dup.live:active:not(:disabled){background:linear-gradient(#26c6a2,#00897b)}.bptt.dup.rec{background:linear-gradient(#ff5252,#c62828)}
.bclv{height:4px;background:#0f1317}.bclv i{display:block;height:100%;width:0;background:#00e676;transition:width .08s}
.dbc{margin:0;height:calc(100vh - 100px);border-radius:4px;overflow:hidden}
.dbcw{flex:1;display:flex;min-height:0}.dmem{width:220px;flex:none;overflow-y:auto;background:#11161b;border-right:1px solid var(--ln);padding:8px;display:flex;flex-direction:column;gap:6px}
.dmem span{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:4px;border-radius:8px}.dmem span .av{grid-row:1/3}.dmem b{font-size:13px}.dmem small{font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dmem span.tk{background:#003d2e}.dmem span.tk .av{border-color:#00e676;box-shadow:0 0 0 3px #00e67655}.dmem span.me .av{background:#00796b}
.dlis{display:flex;gap:8px;color:var(--sub);font-size:13px;font-weight:700}.dlis label{display:flex;align-items:center;gap:3px;white-space:nowrap;margin:0}.dlis input{width:16px;height:16px;margin:0;accent-color:#00a884}
.dbc .bptt{max-width:520px}.dbc .bcb{justify-content:center}.dbc .bcmsg{max-width:70%}
/* ===== s50 無線：待受・話者表示（録音一覧なし） ===== */
.bcstage{flex:1;min-height:150px;display:flex;align-items:center;justify-content:center;padding:10px;overflow:hidden}
.bcs{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.bcs.idle b{font-size:34px;font-weight:900;letter-spacing:2px}.bcs.idle span{color:var(--sub);font-size:15px;font-weight:700}
.bcs.rx{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:18px}
.bcsp{display:flex;flex-direction:column;align-items:center;gap:4px}.bcsp b{font-size:17px}.bcsp span,.bcs.tx span{font-size:13px;color:var(--sub);font-weight:700}
.bc .av.big{width:96px;height:96px;font-size:26px;border:4px solid #00e676;box-shadow:0 0 0 0 #00e67688;animation:bcring 1.1s infinite}
.bcsp.dk .av.big{background:#1565c0}.bcs.tx .av.big{background:#c62828;border-color:#ff8a80;font-size:34px;animation:bcring2 1.1s infinite}.bcs.tx b{font-size:24px;color:#ff8a80}
@keyframes bcring{70%{box-shadow:0 0 0 22px #00e67600}100%{box-shadow:0 0 0 0 #00e67600}}
@keyframes bcring2{70%{box-shadow:0 0 0 22px #ff525200}100%{box-shadow:0 0 0 0 #ff525200}}
.bcm,.bcm.open{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;padding:8px 10px;background:#11161b;border-top:1px solid var(--ln);min-height:72px}
.bcm span.tk small{color:#00e676;font-weight:800}
.bcn{cursor:default}
.bcb{justify-content:center;gap:22px;padding:14px 10px 12px}
.bptt{flex:none;width:132px;height:132px;border-radius:50%;font-size:24px;letter-spacing:3px}
.bptt:disabled{opacity:.4}
.dbc .bptt{width:150px;height:150px;max-width:none}
.dbc .bcstage{background:radial-gradient(ellipse at center,#1d242c 0,#15191e 70%)}
body.mob .mt[data-t=radio]{margin:0}
.bcsp.tx .av.big{background:#c62828;border-color:#ff8a80;font-size:34px;animation:bcring2 1.1s infinite}.bcsp.tx b{color:#ff8a80}
/* ===== s51 無線：シンプル ===== */
.bc.sm .bcstage{flex-direction:column;gap:10px}
.bcdot{flex:none;width:12px;height:12px;border-radius:50%;background:#ffb300;margin:0 6px}.bcdot.cok{background:#00e676;box-shadow:0 0 8px #00e676}
.bst{font-weight:900;text-align:center;line-height:1.2}.bst.idle{font-size:40px;letter-spacing:3px}.bst.rx{font-size:30px;color:#00e676}.bst.tx{font-size:30px;color:#ff5252}
.bst small{display:block;font-size:14px;color:var(--sub);font-weight:700;letter-spacing:0}.bss{color:var(--sub);font-size:15px;font-weight:700}
.bc.sm .bcb{border-top:0;background:transparent;padding:6px 10px 4px}
.bc.sm .bptt{width:170px;height:170px;font-size:28px}.dbc.sm .bptt{width:180px;height:180px}
.bcf{display:flex;justify-content:center;padding:6px 0 14px}
.bctg{background:transparent;border:1px solid var(--ln);color:var(--sub);border-radius:18px;padding:6px 18px;font-size:14px;box-shadow:none}.bctg.on{background:#004d40;border-color:#00a884;color:#fff}
.dbc.sm .bch{justify-content:space-between}
/* ===== s52 部屋 ===== */
.mbar .mroom{flex:1;min-width:0;font-weight:800;color:var(--hd);align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:4px}
header.top .roomchip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ffffff1f;color:#fff;border-color:#ffffff55}.demo-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;background:#fff8dc;border-bottom:1px solid #dbc16a;color:#533e00;font-size:13px}
.demo-bar strong{font-size:14px}.demo-bar button{padding:4px 10px;font-size:13px}.demo-bar a{margin-left:auto;color:#0f3a6b;font-weight:700}
body.jd .jdtag{top:54px}.demo-bar+header.top{top:0}