/* lunamap styles */
:root { --bg:#fff; --fg:#111; --muted:#555; --accent:#c62828; --line:#ddd; }
html, body { margin:0; height:100%; background:var(--bg); color:var(--fg);
  font:15px/1.35 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
#map { position:absolute; inset:0; }
.bar { position:absolute; top:10px; left:10px; right:10px; z-index:1000;
  display:flex; gap:6px; flex-wrap:wrap; pointer-events:none; }
.bar > * { pointer-events:auto; }
.bar select { max-width:44vw; }
.bar select, .bar button { font:inherit; font-size:14px; padding:6px 9px; border:1px solid #999;
  border-radius:7px; background:#fff; color:#111; box-shadow:0 1px 4px rgba(0,0,0,.25); }
#goto { flex:1 1 170px; display:flex; margin:0; }
#goto input { flex:1; min-width:0; font:inherit; font-size:16px; padding:5px 9px; border:1px solid #999;
  border-radius:8px; background:#fff; color:#111; box-shadow:0 1px 4px rgba(0,0,0,.25); }
#more { display:block; width:100%; margin-top:4px; border:0; background:none; color:#1565c0;
  font:inherit; font-size:13px; text-align:left; padding:4px 0; cursor:pointer; }
#results { flex:1 1 100%; display:none; max-height:45vh; overflow-y:auto; background:#fff;
  border:1px solid #999; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.3); }
#results button { display:block; width:100%; text-align:left; border:0; border-top:1px solid #eee;
  background:#fff; box-shadow:none; border-radius:0; padding:10px 12px; font-size:14px; }
#results button:first-child { border-top:0; }
#results button small { color:#777; }
#results .note { padding:6px 12px; font-size:12px; color:#777; background:#fafafa; }
.bar button.on { background:#1565c0; color:#fff; border-color:#1565c0; }
#panel { position:absolute; left:10px; right:10px; bottom:22px; z-index:1000; max-width:460px;
  background:#fff; border:1px solid #999; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.3);
  padding:10px 12px; display:none; max-height:55vh; overflow-y:auto; }
#panel h2 { margin:0 0 6px; font-size:14px; font-weight:600; color:var(--muted);
  display:flex; justify-content:space-between; align-items:center; }
#panel h2 button { border:0; background:none; font-size:20px; line-height:1; padding:0 4px; cursor:pointer; }
#panel h2 button.fold { font-size:13px; color:#1565c0; padding:2px 10px; margin-right:6px; border:1px solid #bbb; border-radius:6px; }
#summary { display:none; font-size:14px; line-height:1.3; margin:0 0 2px; }
#panel.collapsed #summary { display:block; }
#panel.collapsed #rows { display:none; }
#bigger { display:none; }
#panel.routed #bigger { display:block; }
.row { display:flex; align-items:center; gap:8px; padding:5px 0; border-top:1px solid var(--line); }
.row:first-of-type { border-top:0; }
.rhead { font-size:11px; font-weight:600; color:#666; text-transform:uppercase; letter-spacing:.04em; padding:8px 0 2px; }
.rhead + .row { border-top:0; }
.row .k { width:92px; flex:none; font-size:12px; color:var(--muted); }
.row .v a { color:#1565c0; }
.windarrow { pointer-events:none; }
.row .v { flex:1; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:14px; user-select:all; }
.row button { flex:none; font-size:12px; padding:4px 8px; border:1px solid #bbb; border-radius:6px;
  background:#f5f5f5; cursor:pointer; }
.acts { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.acts button { flex:1; font:inherit; font-size:13px; padding:6px; border:1px solid #999;
  border-radius:8px; background:#f5f5f5; cursor:pointer; }
.menubox { display:none; flex:1 1 100%; flex-wrap:wrap; gap:5px; align-items:center; padding:6px; background:rgba(255,255,255,.96);
  border:1px solid #999; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.25); }
.menubox.open { display:flex; }
.menubox .mhead { flex:1 1 100%; font-size:11px; font-weight:600; color:#666; text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }
.menubox .mhead:first-child { margin-top:0; }
.menubox button { box-shadow:none !important; }
.bar button.open { background:#e3f2fd; border-color:#1565c0; }
.sheet { position:absolute; left:10px; right:10px; bottom:22px; z-index:1001; max-width:460px; display:none;
  background:#fff; border:1px solid #999; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.3);
  padding:10px 12px; max-height:70vh; overflow-y:auto; }
.sheet h2 { margin:0 0 6px; font-size:14px; font-weight:600; color:var(--muted);
  display:flex; justify-content:space-between; align-items:center; }
.sheet h2 button { border:0; background:none; font-size:20px; line-height:1; padding:0 4px; cursor:pointer; }
.sheet .small, .sheet label { font-size:13px; color:#333; }
.sheet p { margin:0 0 8px; }
#offbases label { display:inline-block; margin:2px 10px 2px 0; }
#offest, #offprog, #offstat { margin-top:6px; }
body.drawing #panel { display:none !important; }
#dsel { border:1px solid var(--line); border-radius:8px; padding:6px 8px; margin:6px 0; }
.dfield { display:flex; align-items:center; gap:8px; margin-top:6px; }
.dfield input { flex:1; min-width:0; font:inherit; font-size:16px; padding:6px 8px; border:1px solid #999; border-radius:6px; }
#dcount { margin-top:6px; }
#dprof { display:none; margin-top:6px; }
#dprof svg { display:block; touch-action:none; background:#fafafa; border:1px solid var(--line); border-radius:6px; }
#dprofread { min-height:1.3em; color:#e65100; font-weight:600; }
#dprofcredit { color:#777; font-size:11px; margin-top:4px; }
.leaflet-tooltip.dlab { background:rgba(255,255,255,.85); border:1px solid #6a1b9a; color:#3a0e4a; font:600 12px/1.2 system-ui, sans-serif;
  padding:1px 5px; box-shadow:none; }
.leaflet-tooltip.dlab:before { display:none; }
#toast { position:absolute; left:50%; top:60px; transform:translateX(-50%); z-index:1100;
  background:#222; color:#fff; padding:6px 12px; border-radius:6px; font-size:13px; display:none; }
#glabels { position:absolute; inset:0; z-index:650; pointer-events:none; overflow:hidden; }
.glab { position:absolute; font:700 14px/1 ui-monospace, Menlo, Consolas, monospace; color:#0d47a1;
  white-space:nowrap; text-shadow:0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff; }
.glab small { font-size:10px; font-weight:400; }
.glab.t { transform:translate(-50%, 0); }
.glab.b { transform:translate(-50%, -100%); }
.glab.l { transform:translate(0, -50%); }
.glab.r { transform:translate(-100%, -50%); }
.on-ortho .plab { color:#fff; text-shadow:0 0 2px #000, 0 0 3px #000, 0 0 4px rgba(0,0,0,.8); }
.plab { font:600 11px/1.1 system-ui, sans-serif; color:#4a2c00; white-space:nowrap; text-align:center;
  text-shadow:0 0 2px #fff, 0 0 2px #fff, 0 0 3px #fff; transform:translate(-50%, -50%); pointer-events:none; }
.wsym { display:flex; align-items:center; justify-content:center; font:700 10px/1 system-ui, sans-serif;
  color:#fff; border:1.5px solid #fff; box-shadow:0 0 2px rgba(0,0,0,.7); box-sizing:border-box; }
.wsym.hyd { background:#1565c0; border-radius:50%; }
.wsym.tw { background:#0d3c73; border-radius:3px; }
.wsym.ti { background:#00796b; border-radius:3px; }
.wsym.gate { background:#fdd835; color:#000; border-color:#000; border-radius:2px; transform:rotate(45deg); }
.wsym.gate > * { transform:rotate(-45deg); }
.wsym.fire { background:#c62828; border-radius:3px; }
.wsym.amb { background:#2e7d32; border-radius:3px; }
.wsym.pol { background:#1a237e; border-radius:3px; }
.wsym.ses { background:#ef6c00; border-radius:3px; }
.wsym.emp { background:#00838f; border-radius:50%; }
.wsym.evac { background:#6a1b9a; border-radius:3px; }
#printhead { display:none; }
@media print {
  @page { margin:8mm; }
  .bar, #toast, .leaflet-control-zoom, #panel .acts, #panel h2 button, .row button, #more, .sheet { display:none !important; }
  #printhead { display:block; position:absolute; top:0; left:0; right:0; z-index:1000;
    background:#fff; padding:4px 8px; font-size:12px; border-bottom:1px solid #000; }
  #panel { box-shadow:none; border:1px solid #000; bottom:8px; }
  .leaflet-control-attribution { font-size:9px; }
}
