/* Overlord Web · P1 «Mapa vivo de desarrollo» (mapa.js; docs/259 §P1). Mismo lenguaje que el centro: losas con
   esquina cortada y el cuadro de estado (lleno = lista, naranja = construyéndose, hueco = falta). */
.o-mapa{display:flex;flex-direction:column;gap:10px;margin-top:6px;padding-top:14px;border-top:2px solid var(--tinta)}
body.modo-empresa .o-mapa,body.modo-miembro .o-mapa{display:none}
/* Con el mapa abajo, la línea «Overlord Corp · N departamentos» deja de pegarse al fondo y queda justo encima. */
.centro:has(> .o-mapa) > .c-creador{position:static}
.m-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.m-tit{margin:0;font:800 1.15rem/1.1 var(--f-tit)}
.m-proyectos{display:flex;gap:4px;flex-wrap:wrap}
.m-tab{all:unset;cursor:pointer;padding:5px 10px;font:500 .78rem var(--f-mono);color:var(--suave);box-shadow:inset 0 -2px 0 transparent}
.m-tab[aria-selected="true"]{color:var(--tinta);box-shadow:inset 0 -2px 0 var(--campo)}
.m-tab:focus-visible{outline:3px solid var(--iris)}
.m-leyenda{list-style:none;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap;font:400 .74rem var(--f-mono);color:var(--suave)}
.m-leyenda li{display:flex;align-items:center;gap:5px}
.m-q{display:inline-block;width:12px;height:12px;flex:none}
.m-q--lista{background:var(--tinta)}
.m-q--curso{background:var(--campo)}
.m-q--duda{background:transparent;box-shadow:inset 0 0 0 2px var(--campo)}
.m-q--falta{background:transparent;box-shadow:inset 0 0 0 1.5px var(--suave)}
.m-vacio,.m-pista{margin:0;font:400 .78rem var(--f-mono);color:var(--suave)}

.m-marco{position:relative;overflow:auto;scrollbar-width:thin;background:#f4f2ee;box-shadow:inset 0 3px 0 var(--tinta)}
.m-tam{position:relative}
.o-mapa.m-grande{position:fixed;inset:16px;z-index:50;margin:0;padding:16px;background:var(--fondo);overflow:auto;box-shadow:0 0 0 100vmax rgba(20,24,28,.55)}
.m-lienzo{position:absolute;left:0;top:0;transform-origin:0 0}
.m-carril{position:absolute;top:12px;font:600 .72rem var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.m-lineas{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.m-lineas marker path{fill:#9a968f}
.m-lineas marker path.on{fill:var(--campo)}
.m-con path{fill:none;stroke:#b9b4ab;stroke-width:1.4;transition:stroke .2s,opacity .2s}
.m-con.on path{stroke:var(--campo);stroke-width:2.4}
.m-con.apagada path{opacity:.18}
.m-con.manual path{stroke-dasharray:5 4}
.m-con text{font:500 11px var(--f-mono);fill:var(--tinta);paint-order:stroke;stroke:#f4f2ee;stroke-width:4px}

.m-parte{all:unset;box-sizing:border-box;position:absolute;display:flex;align-items:center;gap:9px;padding:6px 18px 6px 10px;
  background:var(--fondo);cursor:grab;touch-action:none;user-select:none;box-shadow:inset 3px 0 0 var(--tinta),0 1px 0 #d9d5ce;
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);transition:opacity .2s,box-shadow .2s}
.m-parte:hover{background:#fff}
.m-parte:focus-visible{outline:3px solid var(--iris);outline-offset:-3px}
.m-parte.sel{box-shadow:inset 3px 0 0 var(--campo),inset 0 0 0 2px var(--campo)}
.m-parte.apagada{opacity:.35}
.m-parte.arrastrando{cursor:grabbing;opacity:.9;z-index:2}
.m-parte--datos{box-shadow:inset 3px 0 0 var(--iris),0 1px 0 #d9d5ce}
.m-parte--externo{background:#ebe8e2;box-shadow:inset 3px 0 0 var(--suave),0 1px 0 #d9d5ce}
.m-parte--falta,.m-parte--duda{background:transparent;box-shadow:inset 0 0 0 1.5px var(--suave)}
.m-parte--curso::after{content:"";position:absolute;top:0;right:0;width:12px;height:12px;background:var(--campo);clip-path:polygon(0 0,100% 100%,0 100%)}
.m-parte__txt{display:flex;flex-direction:column;min-width:0}
.m-parte__txt b{font:700 .84rem/1.15 var(--f-tit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-parte__txt small{font:400 .68rem var(--f-mono);color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.m-ficha{background:#f4f2ee;padding:12px 14px;box-shadow:inset 0 3px 0 var(--campo);display:flex;flex-direction:column;gap:8px}
.m-ficha__cab{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.m-ficha__cab h3{margin:0;font:800 1rem var(--f-tit)}
.m-ficha__nota{margin:0;font:400 .8rem/1.4 var(--f-txt)}
.m-ficha__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.m-ficha__t{margin:0 0 4px;font:600 .72rem var(--f-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--suave)}
.m-ficha ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:.8rem}
.m-ficha li{display:flex;flex-direction:column}
.m-ficha li small{font:400 .7rem var(--f-mono);color:var(--suave);overflow-wrap:anywhere}
.m-ficha__acc{display:flex;gap:6px}
.m-pie{display:flex;flex-direction:column;gap:6px}
.m-agregar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.m-agregar input{flex:1 1 200px}
@media (prefers-reduced-motion: reduce){.m-con path,.m-parte{transition:none}}
