/* AurA【逢羅】マップ — styles (AurA brand tokens v0.1 継承)  WM-03 / 2026-09-08 */
:root{--g:#1a7a4a;--g-dark:#0f5c36;--g-light:#e6f4ec;--g-mid:#bfe3cf;--bg:#f7faf8;--card:#fff;--text:#1c2b23;--text2:#5b6f63;
  --border:#dde8e1;--amber:#c47f17;--red:#c0392b;--blue:#2563a8;--shadow:0 2px 10px rgba(16,60,38,.08);--r:14px}
body.dark{--bg:#101815;--card:#18231d;--text:#e4efe8;--text2:#93a89b;--border:#27352d;--g-light:#16351f;--g-mid:#1f4a30;--shadow:0 2px 10px rgba(0,0,0,.4)}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:'Noto Sans JP','Segoe UI',system-ui,-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-text-size-adjust:100%}
.hide{display:none!important}
/* JA/EN TOGGLE STANDARD (html-lang-toggle v1.0 / BAN-11) */
.en{display:none}body.lang-en .ja{display:none}body.lang-en .en{display:block}
span.en{display:none}body.lang-en span.ja{display:none}body.lang-en span.en{display:inline}
.lang-toggle{display:flex;border:1px solid rgba(255,255,255,.4);border-radius:20px;overflow:hidden}
.lang-btn{padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;background:transparent;color:#d8eee2;border:none;font-family:inherit}
.lang-btn.active{background:#fff;color:var(--g-dark)}

header.top{background:linear-gradient(135deg,var(--g-dark),var(--g));color:#fff;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);flex-wrap:wrap}
.logo{font-size:20px;font-weight:800;letter-spacing:1px}.logo small{font-weight:600;font-size:12px;opacity:.9;margin-left:6px}
.bname{font-size:11.5px;opacity:.9}.sp{flex:1}
.icon-btn{background:rgba(255,255,255,.15);border:none;color:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:15px}
nav{display:flex;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:58px;z-index:40;overflow-x:auto;scrollbar-width:none}
.tab{flex:1;min-width:92px;padding:11px 4px;text-align:center;font-size:12px;font-weight:700;color:var(--text2);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.tab.on{color:var(--g);border-bottom-color:var(--g)}
.page{display:none;max-width:1180px;margin:0 auto;padding:14px}.page.on{display:block}
h2{font-size:16px;margin:6px 0 10px;display:flex;align-items:center;gap:8px}h3{font-size:13.5px;margin:0 0 8px}
.chip{font-size:10px;background:var(--g-light);color:var(--g-dark);padding:2px 8px;border-radius:10px;font-weight:700}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px;box-shadow:var(--shadow);margin-bottom:12px}
.note{font-size:11.5px;color:var(--text2);line-height:1.6;margin-top:6px}.note.wm{text-align:center;padding:10px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:12px;box-shadow:var(--shadow)}
.kpi .v{font-size:24px;font-weight:800;color:var(--g-dark)}.kpi.a .v{color:var(--red)}.kpi .l{font-size:11px;color:var(--text2);margin-top:2px;line-height:1.5}

.maplayout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:12px}
.mapwrap{position:relative;min-height:62dvh;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}
#map{position:absolute;inset:0}.leaflet-container{font-family:inherit;background:#e9f0ec}
.legend{position:absolute;left:10px;bottom:12px;z-index:560;background:color-mix(in srgb,var(--card) 92%,transparent);border:1px solid var(--border);border-radius:10px;padding:6px 9px;font-size:10.5px;box-shadow:var(--shadow)}
.legend div{display:flex;align-items:center;gap:6px;margin:2px 0}.legend i{width:10px;height:10px;border-radius:3px}
.pin{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--c,#1a7a4a);border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4);position:relative}
.pin span{position:absolute;inset:0;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;font-size:12px}
.pin.bldg{width:34px;height:34px}
.pickmode{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:580;background:var(--red);color:#fff;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:700;box-shadow:var(--shadow);display:none;gap:8px;align-items:center}
.pickmode.on{display:flex}.pickmode button{background:rgba(255,255,255,.25);border:0;color:#fff;border-radius:8px;padding:3px 8px;font-weight:700;cursor:pointer}
.side .card{margin-bottom:10px}
.unitgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.unitgrid.big{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.unit{border:1px solid var(--border);border-radius:12px;padding:10px 8px;text-align:center;cursor:pointer;background:var(--card);position:relative}
.unit:hover{border-color:var(--g)}.unit.sel{outline:2px solid var(--g)}
.unit .rn{font-size:18px;font-weight:800;color:var(--g-dark)}.unit .m{font-size:10.5px;color:var(--text2);margin-top:3px;line-height:1.5}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:800;white-space:nowrap}
.b-ok{background:#e2f3e9;color:#177245}.b-mid{background:#fdf3e0;color:#a86a0a}.b-low,.b-vac{background:#fdeaea;color:#b03030}.b-vac{background:#eef1f5;color:#556}
.due{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:9px}.due.ok{background:#e2f3e9;color:#177245}.due.soon{background:#fdf3e0;color:#a86a0a}.due.past{background:#fdeaea;color:#b03030}
.alertbox{border-left:4px solid var(--red);background:var(--card);border-radius:0 10px 10px 0;padding:8px 10px;margin-bottom:8px;font-size:12.5px}
.alertbox.a-amber{border-left-color:var(--amber)}.alertbox.a-green{border-left-color:var(--g)}.alertbox .d{font-size:11px;color:var(--text2);margin-top:2px}
.floor{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:start;margin-bottom:12px}
.fl{background:var(--g-light);color:var(--g-dark);font-weight:800;border-radius:10px;text-align:center;padding:10px 0;font-size:13px}
table{width:100%;border-collapse:collapse;font-size:12.5px}th{background:var(--g-light);color:var(--g-dark);text-align:left;padding:7px;font-size:11px}td{padding:7px;border-bottom:1px solid var(--border);vertical-align:top}
.routehead{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:10px}
.progress{height:10px;background:var(--g-light);border-radius:6px;overflow:hidden}.progress .bar{height:100%;background:var(--g);width:0;transition:width .3s}
.rrow{display:grid;grid-template-columns:52px 1fr 1fr 96px auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}
.rrow .rn{font-weight:800;font-size:16px;color:var(--g-dark)}.rrow .last{font-size:11px;color:var(--text2)}
.rrow input,.rrow select,.formrow input,.formrow select,.routehead input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:7px 8px;font-size:13px}
.rrow .done{color:var(--g);font-weight:800}
.formrow{display:grid;grid-template-columns:1.2fr 1.2fr 1.4fr auto;gap:8px;align-items:end}.formrow.two{grid-template-columns:1fr auto}
.formrow label{display:block;font-size:11px;font-weight:700;color:var(--text2);margin-bottom:3px}.formrow .btns{display:flex;gap:6px}
.btn{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:8px 12px;font-weight:700;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:inherit}
.btn.primary{background:var(--g);border-color:var(--g);color:#fff}.btn.danger{background:#fdeaea;border-color:transparent;color:#b03030}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.poi{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.poi .ic{font-size:20px}.poi .b{flex:1}.poi .n{font-weight:700}.poi .a{font-size:11px;color:var(--text2)}
.kv{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0;border-bottom:1px dashed var(--border)}
.modal{position:fixed;inset:0;z-index:800;background:rgba(8,15,25,.55);display:none;align-items:flex-end;justify-content:center}.modal.open{display:flex}
@media(min-width:740px){.modal{align-items:center}}
.box{background:var(--card);width:100%;max-width:640px;max-height:92dvh;overflow:auto;border-radius:20px 20px 0 0;box-shadow:0 18px 48px rgba(0,0,0,.35)}
@media(min-width:740px){.box{border-radius:20px}}
.mhead{position:sticky;top:0;background:var(--card);display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);z-index:2}
.mhead h3{margin:0;font-size:15px}.mhead .x{margin-left:auto;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:16px;cursor:pointer}
.mbody{padding:14px}
.banner{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:880;background:var(--g);color:#fff;border-radius:14px;padding:8px 12px;display:none;align-items:center;gap:8px;box-shadow:var(--shadow);font-size:12.5px;font-weight:600}
.banner.show{display:flex}.banner button{background:#fff;color:var(--g-dark);border:0;border-radius:8px;padding:4px 9px;font-weight:800;cursor:pointer}.banner .ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:9px 14px;border-radius:12px;font-size:12.5px;font-weight:600;opacity:0;transition:.25s;z-index:900;pointer-events:none;max-width:92vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.photo{width:100%;max-height:200px;object-fit:cover;border-radius:10px;border:1px solid var(--border);margin-top:6px}
@media(max-width:860px){.maplayout{grid-template-columns:1fr}.mapwrap{min-height:52dvh}.rrow{grid-template-columns:44px 1fr 1fr;grid-auto-rows:auto}.rrow .cf,.rrow .ph{grid-column:2/4}.formrow{grid-template-columns:1fr 1fr}.formrow .btns{grid-column:1/-1}.routehead{grid-template-columns:1fr}.bname{display:none}}
